File tree Expand file tree Collapse file tree 2 files changed +28
-2
lines changed
Tests/WebViewJavascriptBridgeTests Expand file tree Collapse file tree 2 files changed +28
-2
lines changed Original file line number Diff line number Diff line change @@ -121,6 +121,23 @@ - (void)classSpecificTestObjectEncoding:(Class)cls webView:(id)webView {
121121 loadEchoSample (webView);
122122}
123123
124+ - (void )testJavascriptReceiveResponse {
125+ [self classSpecificTestJavascriptReceiveResponse: [WebViewJavascriptBridge class ] webView: _uiWebView];
126+ [self classSpecificTestJavascriptReceiveResponse: [WKWebViewJavascriptBridge class ] webView: _wkWebView];
127+ [self waitForExpectationsWithTimeout: 3 handler: NULL ];
128+ }
129+ - (void )classSpecificTestJavascriptReceiveResponse : (Class )cls webView : (id )webView {
130+ WebViewJavascriptBridge *bridge = [self bridgeForCls: cls webView: webView];
131+ loadEchoSample (webView);
132+ XCTestExpectation *callbackInvocked = [self expectationWithDescription: @" Callback invoked" ];
133+ [bridge registerHandler: @" objcEchoToJs" handler: ^(id data, WVJBResponseCallback responseCallback) {
134+ responseCallback (data);
135+ }];
136+ [bridge callHandler: @" jsRcvResponseTest" data: nil responseCallback: ^(id responseData) {
137+ XCTAssertEqualObjects (responseData, @" Response from JS" );
138+ [callbackInvocked fulfill ];
139+ }];
140+ }
124141
125142- (WebViewJavascriptBridge*)bridgeForCls : (Class )cls webView : (id )webView {
126143 if (cls == [WebViewJavascriptBridge class ]) {
Original file line number Diff line number Diff line change 1515 }
1616
1717 setupWebViewJavascriptBridge ( function ( bridge ) {
18- WebViewJavascriptBridge . callHandler ( 'Greet' , 'Hello world' ) ;
19- WebViewJavascriptBridge . registerHandler ( 'echoHandler' , function ( data , responseCallback ) {
18+ bridge . callHandler ( 'Greet' , 'Hello world' ) ;
19+ bridge . registerHandler ( 'echoHandler' , function ( data , responseCallback ) {
2020 responseCallback ( data )
2121 } )
22+ bridge . registerHandler ( 'jsRcvResponseTest' , function ( data , responseCallback ) {
23+ bridge . callHandler ( 'objcEchoToJs' , { foo :'bar' } , function ( response ) {
24+ if ( response && response . foo == 'bar' ) {
25+ responseCallback ( "Response from JS" )
26+ } else {
27+ responseCallback ( "Failed" )
28+ }
29+ } )
30+ } )
2231 } )
2332 </ script >
2433</ body > </ html >
You can’t perform that action at this time.
0 commit comments