@@ -1575,6 +1575,36 @@ function testExecuteScript_scriptReturnsAnError() {
1575
1575
}
1576
1576
1577
1577
1578
+ function testExecuteScript_failsIfArgumentIsARejectedPromise ( ) {
1579
+ var testHelper = TestHelper . expectingSuccess ( ) . replayAll ( ) ;
1580
+
1581
+ var callback = callbackHelper ( assertIsStubError ) ;
1582
+
1583
+ var arg = webdriver . promise . rejected ( STUB_ERROR ) ;
1584
+ arg . thenCatch ( goog . nullFunction ) ; // Suppress default handler.
1585
+
1586
+ var driver = testHelper . createDriver ( ) ;
1587
+ driver . executeScript ( goog . nullFunction , arg ) . thenCatch ( callback ) ;
1588
+ testHelper . execute ( ) ;
1589
+ callback . assertCalled ( ) ;
1590
+ }
1591
+
1592
+
1593
+ function testExecuteAsyncScript_failsIfArgumentIsARejectedPromise ( ) {
1594
+ var testHelper = TestHelper . expectingSuccess ( ) . replayAll ( ) ;
1595
+
1596
+ var callback = callbackHelper ( assertIsStubError ) ;
1597
+
1598
+ var arg = webdriver . promise . rejected ( STUB_ERROR ) ;
1599
+ arg . thenCatch ( goog . nullFunction ) ; // Suppress default handler.
1600
+
1601
+ var driver = testHelper . createDriver ( ) ;
1602
+ driver . executeAsyncScript ( goog . nullFunction , arg ) . thenCatch ( callback ) ;
1603
+ testHelper . execute ( ) ;
1604
+ callback . assertCalled ( ) ;
1605
+ }
1606
+
1607
+
1578
1608
function testFindElement_elementNotFound ( ) {
1579
1609
var testHelper = TestHelper .
1580
1610
expectingFailure ( expectedError ( ECode . NO_SUCH_ELEMENT , 'Unable to find element' ) ) .
@@ -2058,6 +2088,23 @@ function testElementEquals_sendsRpcIfElementsHaveDifferentIds() {
2058
2088
callback . assertCalled ( ) ;
2059
2089
}
2060
2090
2091
+
2092
+ function testElementEquals_failsIfAnInputElementCouldNotBeFound ( ) {
2093
+ var testHelper = TestHelper . expectingSuccess ( ) . replayAll ( ) ;
2094
+
2095
+ var callback = callbackHelper ( assertIsStubError ) ;
2096
+ var id = webdriver . promise . rejected ( STUB_ERROR ) ;
2097
+ id . thenCatch ( goog . nullFunction ) ; // Suppress default handler.
2098
+
2099
+ var driver = testHelper . createDriver ( ) ;
2100
+ var a = new webdriver . WebElement ( driver , { 'ELEMENT' : 'foo' } ) ;
2101
+ var b = new webdriver . WebElementPromise ( driver , id ) ;
2102
+
2103
+ webdriver . WebElement . equals ( a , b ) . thenCatch ( callback ) ;
2104
+ testHelper . execute ( ) ;
2105
+ callback . assertCalled ( ) ;
2106
+ }
2107
+
2061
2108
function testWaiting_waitSucceeds ( ) {
2062
2109
var testHelper = TestHelper . expectingSuccess ( ) .
2063
2110
expect ( CName . FIND_ELEMENTS , { 'using' :'id' , 'value' :'foo' } ) .
@@ -2245,3 +2292,122 @@ function testFetchingLogs() {
2245
2292
testHelper . execute ( ) ;
2246
2293
pair . assertCallback ( ) ;
2247
2294
}
2295
+
2296
+
2297
+ function testCommandsFailIfInitialSessionCreationFailed ( ) {
2298
+ var testHelper = TestHelper . expectingSuccess ( ) . replayAll ( ) ;
2299
+ var navigateResult = callbackPair ( null , assertIsStubError ) ;
2300
+ var quitResult = callbackPair ( null , assertIsStubError ) ;
2301
+
2302
+ var session = webdriver . promise . rejected ( STUB_ERROR ) ;
2303
+
2304
+ var driver = testHelper . createDriver ( session ) ;
2305
+ driver . get ( 'some-url' ) . then ( navigateResult . callback , navigateResult . errback ) ;
2306
+ driver . quit ( ) . then ( quitResult . callback , quitResult . errback ) ;
2307
+
2308
+ testHelper . execute ( ) ;
2309
+ navigateResult . assertErrback ( ) ;
2310
+ quitResult . assertErrback ( ) ;
2311
+ }
2312
+
2313
+
2314
+ function testWebElementCommandsFailIfInitialDriverCreationFailed ( ) {
2315
+ var testHelper = TestHelper . expectingSuccess ( ) . replayAll ( ) ;
2316
+
2317
+ var session = webdriver . promise . rejected ( STUB_ERROR ) ;
2318
+ var callback = callbackHelper ( assertIsStubError ) ;
2319
+
2320
+ var driver = testHelper . createDriver ( session ) ;
2321
+ driver . findElement ( By . id ( 'foo' ) ) . click ( ) . thenCatch ( callback ) ;
2322
+ testHelper . execute ( ) ;
2323
+ callback . assertCalled ( ) ;
2324
+ }
2325
+
2326
+
2327
+ function testWebElementCommansFailIfElementCouldNotBeFound ( ) {
2328
+ var testHelper = TestHelper .
2329
+ expectingSuccess ( ) .
2330
+ expect ( CName . FIND_ELEMENT , { 'using' :'id' , 'value' :'foo' } ) .
2331
+ andReturnError ( ECode . NO_SUCH_ELEMENT ,
2332
+ { 'message' :'Unable to find element' } ) .
2333
+ replayAll ( ) ;
2334
+
2335
+ var callback = callbackHelper (
2336
+ expectedError ( ECode . NO_SUCH_ELEMENT , 'Unable to find element' ) ) ;
2337
+
2338
+ var driver = testHelper . createDriver ( ) ;
2339
+ driver . findElement ( By . id ( 'foo' ) ) . click ( ) . thenCatch ( callback ) ;
2340
+ testHelper . execute ( ) ;
2341
+ callback . assertCalled ( ) ;
2342
+ }
2343
+
2344
+
2345
+ function testCannotFindChildElementsIfParentCouldNotBeFound ( ) {
2346
+ var testHelper = TestHelper .
2347
+ expectingSuccess ( ) .
2348
+ expect ( CName . FIND_ELEMENT , { 'using' :'id' , 'value' :'foo' } ) .
2349
+ andReturnError ( ECode . NO_SUCH_ELEMENT ,
2350
+ { 'message' :'Unable to find element' } ) .
2351
+ replayAll ( ) ;
2352
+
2353
+ var callback = callbackHelper (
2354
+ expectedError ( ECode . NO_SUCH_ELEMENT , 'Unable to find element' ) ) ;
2355
+
2356
+ var driver = testHelper . createDriver ( ) ;
2357
+ driver . findElement ( By . id ( 'foo' ) )
2358
+ . findElement ( By . id ( 'bar' ) )
2359
+ . findElement ( By . id ( 'baz' ) )
2360
+ . thenCatch ( callback ) ;
2361
+ testHelper . execute ( ) ;
2362
+ callback . assertCalled ( ) ;
2363
+ }
2364
+
2365
+
2366
+ function testActionSequenceFailsIfInitialDriverCreationFailed ( ) {
2367
+ var testHelper = TestHelper . expectingSuccess ( ) . replayAll ( ) ;
2368
+
2369
+ var session = webdriver . promise . rejected ( STUB_ERROR ) ;
2370
+
2371
+ // Suppress the default error handler so we can verify it propagates
2372
+ // to the perform() call below.
2373
+ session . thenCatch ( goog . nullFunction ) ;
2374
+
2375
+ var callback = callbackHelper ( assertIsStubError ) ;
2376
+
2377
+ var driver = testHelper . createDriver ( session ) ;
2378
+ driver . actions ( ) .
2379
+ mouseDown ( ) .
2380
+ mouseUp ( ) .
2381
+ perform ( ) .
2382
+ thenCatch ( callback ) ;
2383
+ testHelper . execute ( ) ;
2384
+ callback . assertCalled ( ) ;
2385
+ }
2386
+
2387
+
2388
+ function testAlertCommandsFailIfAlertNotPresent ( ) {
2389
+ var testHelper = TestHelper
2390
+ . expectingSuccess ( )
2391
+ . expect ( CName . GET_ALERT_TEXT )
2392
+ . andReturnError ( ECode . NO_SUCH_ALERT , { 'message' : 'no alert' } )
2393
+ . replayAll ( ) ;
2394
+
2395
+ var driver = testHelper . createDriver ( ) ;
2396
+ var alert = driver . switchTo ( ) . alert ( ) ;
2397
+
2398
+ var expectError = expectedError ( ECode . NO_SUCH_ALERT , 'no alert' ) ;
2399
+ var callbacks = [ ] ;
2400
+ for ( var key in webdriver . Alert . prototype ) {
2401
+ if ( webdriver . Alert . prototype . hasOwnProperty ( key ) ) {
2402
+ var helper = callbackHelper ( expectError ) ;
2403
+ callbacks . push ( key , helper ) ;
2404
+ alert [ key ] . call ( alert ) . thenCatch ( helper ) ;
2405
+ }
2406
+ }
2407
+
2408
+ testHelper . execute ( ) ;
2409
+ for ( var i = 0 ; i < callbacks . length - 1 ; i += 2 ) {
2410
+ callbacks [ i + 1 ] . assertCalled (
2411
+ 'Error did not propagate for ' + callbacks [ i ] ) ;
2412
+ }
2413
+ }
0 commit comments