@@ -13,9 +13,10 @@ import webViewModule = require("ui/web-view");
1313// ### Declaring a WebView.
1414//```XML
1515// <Page>
16- // <WebView url ="{{ someUrl }}" />
16+ // <WebView src ="{{ someUrl | pathToLocalFile | htmlString }}" />
1717// </Page>
1818//```
19+
1920// </snippet>
2021
2122var _createWebViewFunc = function ( ) : webViewModule . WebView {
@@ -76,6 +77,128 @@ export var testLoadExistingUrl = function () {
7677 }
7778}
7879
80+ export var testLoadLocalFile = function ( ) {
81+ var newPage : page . Page ;
82+ var webView = _createWebViewFunc ( ) ;
83+ var pageFactory = function ( ) : page . Page {
84+ newPage = new page . Page ( ) ;
85+ newPage . content = webView ;
86+ return newPage ;
87+ } ;
88+
89+ helper . navigate ( pageFactory ) ;
90+
91+ var testFinished = false ;
92+ var actualHtml ;
93+ var actualTitle ;
94+ var actualError ;
95+
96+ var expectedTitle = 'MyTitle' ;
97+ var expectedHtml = '<span style="color:red">Test</span>' ;
98+
99+ // <snippet module="ui/web-view" title="WebView">
100+ // ### Using WebView
101+ // ``` JavaScript
102+ webView . on ( webViewModule . WebView . loadFinishedEvent , function ( args : webViewModule . LoadEventData ) {
103+ // <hide>
104+ if ( webView . ios ) {
105+ actualHtml = webView . ios . stringByEvaluatingJavaScriptFromString ( "document.body.innerHTML" ) . trim ( ) ;
106+ } else if ( webView . android ) {
107+ actualTitle = webView . android . getTitle ( )
108+ }
109+
110+ actualError = args . error ;
111+ testFinished = true ;
112+ // </hide>
113+ var message ;
114+ if ( ! args . error ) {
115+ message = "WebView finished loading " + args . url ;
116+ }
117+ else {
118+ message = "Error loading " + args . url + ": " + args . error ;
119+ }
120+ //console.log(message);
121+ } ) ;
122+ webView . src = "~/ui/web-view/test.html" ;
123+
124+ TKUnit . wait ( 4 ) ;
125+
126+ helper . goBack ( ) ;
127+
128+ if ( testFinished ) {
129+ if ( webView . ios ) {
130+ TKUnit . assert ( actualHtml === expectedHtml , "File ~/ui/web-view/test.html not loaded properly. Actual: " + actualHtml ) ;
131+ } else if ( webView . android ) {
132+ TKUnit . assert ( actualTitle === expectedTitle , "File ~/ui/web-view/test.html not loaded properly. Actual: " + actualTitle ) ;
133+ }
134+ TKUnit . assert ( actualError === undefined , actualError ) ;
135+ }
136+ else {
137+ TKUnit . assert ( false , "TIMEOUT" ) ;
138+ }
139+ }
140+
141+ export var testLoadHTMLString = function ( ) {
142+ var newPage : page . Page ;
143+ var webView = _createWebViewFunc ( ) ;
144+ var pageFactory = function ( ) : page . Page {
145+ newPage = new page . Page ( ) ;
146+ newPage . content = webView ;
147+ return newPage ;
148+ } ;
149+
150+ helper . navigate ( pageFactory ) ;
151+
152+ var testFinished = false ;
153+ var actualHtml ;
154+ var actualTitle ;
155+ var actualError ;
156+
157+ var expectedTitle = 'MyTitle' ;
158+ var expectedHtml = '<span style="color:red">Test</span>' ;
159+
160+ // <snippet module="ui/web-view" title="WebView">
161+ // ### Using WebView
162+ // ``` JavaScript
163+ webView . on ( webViewModule . WebView . loadFinishedEvent , function ( args : webViewModule . LoadEventData ) {
164+ // <hide>
165+ if ( webView . ios ) {
166+ actualHtml = webView . ios . stringByEvaluatingJavaScriptFromString ( "document.body.innerHTML" ) . trim ( ) ;
167+ } else if ( webView . android ) {
168+ actualTitle = webView . android . getTitle ( )
169+ }
170+
171+ actualError = args . error ;
172+ testFinished = true ;
173+ // </hide>
174+ var message ;
175+ if ( ! args . error ) {
176+ message = "WebView finished loading " + args . url ;
177+ }
178+ else {
179+ message = "Error loading " + args . url + ": " + args . error ;
180+ }
181+ //console.log(message);
182+ } ) ;
183+ webView . src = '<!DOCTYPE html><html><head><title>MyTitle</title><meta charset="utf-8" /></head><body><span style="color:red">Test</span></body></html>' ;
184+
185+ TKUnit . wait ( 4 ) ;
186+
187+ helper . goBack ( ) ;
188+
189+ if ( testFinished ) {
190+ if ( webView . ios ) {
191+ TKUnit . assert ( actualHtml === expectedHtml , "HTML string not loaded properly. Actual: " + actualHtml ) ;
192+ } else if ( webView . android ) {
193+ TKUnit . assert ( actualTitle === expectedTitle , "HTML string not loaded properly. Actual: " + actualTitle ) ;
194+ }
195+ TKUnit . assert ( actualError === undefined , actualError ) ;
196+ }
197+ else {
198+ TKUnit . assert ( false , "TIMEOUT" ) ;
199+ }
200+ }
201+
79202export var testLoadInvalidUrl = function ( ) {
80203 var newPage : page . Page ;
81204 var webView = _createWebViewFunc ( ) ;
0 commit comments