OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 GEN('#include "chrome/browser/ui/webui/options/options_browsertest.h"'); | 5 GEN('#include "chrome/browser/ui/webui/options/options_browsertest.h"'); |
6 | 6 |
7 /** @const */ var MANAGED_USERS_PREF = 'profile.managed_users'; | 7 /** @const */ var MANAGED_USERS_PREF = 'profile.managed_users'; |
8 | 8 |
9 /** | 9 /** |
10 * Wait for the method specified by |methodName|, on the |object| object, to be | 10 * Wait for the method specified by |methodName|, on the |object| object, to be |
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
380 /** | 380 /** |
381 * Verifies that the correct pages are currently open/visible. | 381 * Verifies that the correct pages are currently open/visible. |
382 * @param {!Array.<string>} expectedPages An array of page names expected to | 382 * @param {!Array.<string>} expectedPages An array of page names expected to |
383 * be open, with the topmost listed last. | 383 * be open, with the topmost listed last. |
384 * @param {string=} expectedUrl The URL path, including hash, expected to be | 384 * @param {string=} expectedUrl The URL path, including hash, expected to be |
385 * open. If undefined, the topmost (last) page name in |expectedPages| | 385 * open. If undefined, the topmost (last) page name in |expectedPages| |
386 * will be used. In either case, 'chrome://settings-frame/' will be | 386 * will be used. In either case, 'chrome://settings-frame/' will be |
387 * prepended. | 387 * prepended. |
388 * @private | 388 * @private |
389 */ | 389 */ |
390 verifyOpenPages_: function(expectedPages, expectedUrl) { | 390 verifyOpenPages_: function(expectedPages, expectedUrl) { |
Dan Beam
2014/05/19 23:06:49
nit: opt_expectedUrl
davidben
2014/05/19 23:32:28
Done.
| |
391 // Check the topmost page. | 391 // Check the topmost page. |
392 assertEquals(null, OptionsPage.getVisibleBubble()); | 392 assertEquals(null, OptionsPage.getVisibleBubble()); |
393 var currentPage = OptionsPage.getTopmostVisiblePage(); | 393 var currentPage = OptionsPage.getTopmostVisiblePage(); |
394 | 394 |
395 var lastExpected = expectedPages[expectedPages.length - 1]; | 395 var lastExpected = expectedPages[expectedPages.length - 1]; |
396 assertEquals(lastExpected, currentPage.name); | 396 assertEquals(lastExpected, currentPage.name); |
397 // We'd like to check the title too, but we have to load the settings-frame | 397 // We'd like to check the title too, but we have to load the settings-frame |
398 // instead of the outer settings page in order to have access to | 398 // instead of the outer settings page in order to have access to |
399 // OptionsPage, and setting the title from within the settings-frame fails | 399 // OptionsPage, and setting the title from within the settings-frame fails |
400 // because of cross-origin access restrictions. | 400 // because of cross-origin access restrictions. |
401 // TODO(pamg): Add a test fixture that loads chrome://settings and uses | 401 // TODO(pamg): Add a test fixture that loads chrome://settings and uses |
402 // UI elements to access sub-pages, so we can test the titles and | 402 // UI elements to access sub-pages, so we can test the titles and |
403 // search-page URLs. | 403 // search-page URLs. |
404 var fullExpectedUrl = 'chrome://settings-frame/' + | 404 expectedUrl = (expectedUrl == undefined) ? lastExpected : expectedUrl; |
Dan Beam
2014/05/19 23:06:49
can L395-404 be:
expectedUrl = expectedUrl || e
davidben
2014/05/19 23:32:28
Problem is the empty string is falsey.
Dan Beam
2014/05/19 23:49:10
yeah, ok, can you use `=== undefined` or `typeof e
davidben
2014/05/20 00:12:55
Done.
| |
405 (expectedUrl ? expectedUrl : lastExpected); | 405 var fullExpectedUrl = 'chrome://settings-frame/' + expectedUrl; |
406 assertEquals(fullExpectedUrl, window.location.href); | 406 assertEquals(fullExpectedUrl, window.location.href); |
Dan Beam
2014/05/19 23:06:49
i think these should be expect*() rather than asse
davidben
2014/05/19 23:32:28
...that would explain why they failed by hanging r
| |
407 | 407 |
408 // Collect open pages. | 408 // Collect open pages. |
409 var allPageNames = Object.keys(OptionsPage.registeredPages).concat( | 409 var allPageNames = Object.keys(OptionsPage.registeredPages).concat( |
410 Object.keys(OptionsPage.registeredOverlayPages)); | 410 Object.keys(OptionsPage.registeredOverlayPages)); |
411 var openPages = []; | 411 var openPages = []; |
412 for (var i = 0; i < allPageNames.length; ++i) { | 412 for (var i = 0; i < allPageNames.length; ++i) { |
413 var name = allPageNames[i]; | 413 var name = allPageNames[i]; |
414 var page = OptionsPage.registeredPages[name] || | 414 var page = OptionsPage.registeredPages[name] || |
415 OptionsPage.registeredOverlayPages[name]; | 415 OptionsPage.registeredOverlayPages[name]; |
416 if (page.visible) | 416 if (page.visible) |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
476 // Test disabled because it's flaky. crbug.com/303841 | 476 // Test disabled because it's flaky. crbug.com/303841 |
477 TEST_F('OptionsWebUIExtendedTest', 'DISABLED_ShowSearchPageNoQuery', | 477 TEST_F('OptionsWebUIExtendedTest', 'DISABLED_ShowSearchPageNoQuery', |
478 function() { | 478 function() { |
479 OptionsPage.showPageByName('search'); | 479 OptionsPage.showPageByName('search'); |
480 this.verifyOpenPages_(['settings']); | 480 this.verifyOpenPages_(['settings']); |
481 this.verifyHistory_(['settings'], testDone); | 481 this.verifyHistory_(['settings'], testDone); |
482 }); | 482 }); |
483 | 483 |
484 // Show a page without updating history. | 484 // Show a page without updating history. |
485 TEST_F('OptionsWebUIExtendedTest', 'ShowPageNoHistory', function() { | 485 TEST_F('OptionsWebUIExtendedTest', 'ShowPageNoHistory', function() { |
486 this.verifyOpenPages_(['settings']); | 486 this.verifyOpenPages_(['settings'], ''); |
487 // There are only two main pages, 'settings' and 'search'. It's not possible | 487 // There are only two main pages, 'settings' and 'search'. It's not possible |
488 // to show the search page using OptionsPage.showPageByName, because it | 488 // to show the search page using OptionsPage.showPageByName, because it |
489 // reverts to the settings page if it has no search text set. So we show the | 489 // reverts to the settings page if it has no search text set. So we show the |
490 // search page by performing a search, then test showPageByName. | 490 // search page by performing a search, then test showPageByName. |
491 $('search-field').onsearch({currentTarget: {value: 'query'}}); | 491 $('search-field').onsearch({currentTarget: {value: 'query'}}); |
492 | 492 |
493 // The settings page is also still "open" (i.e., visible), in order to show | 493 // The settings page is also still "open" (i.e., visible), in order to show |
494 // the search results. Furthermore, the URL hasn't been updated in the parent | 494 // the search results. Furthermore, the URL hasn't been updated in the parent |
495 // page, because we've loaded the chrome-settings frame instead of the whole | 495 // page, because we've loaded the chrome-settings frame instead of the whole |
496 // settings page, so the cross-origin call to set the URL fails. | 496 // settings page, so the cross-origin call to set the URL fails. |
497 this.verifyOpenPages_(['settings', 'search'], 'settings#query'); | 497 this.verifyOpenPages_(['settings', 'search'], 'search#query'); |
Dan Beam
2014/05/19 23:06:49
i'm generally confused, why s/settings//g ?
davidben
2014/05/19 23:32:28
The settings OptionsPage is kind of weird in that,
| |
498 var self = this; | 498 var self = this; |
499 this.verifyHistory_(['settings', 'settings#query'], function() { | 499 this.verifyHistory_(['', 'search#query'], function() { |
500 OptionsPage.showPageByName('settings', false); | 500 OptionsPage.showPageByName('settings', false); |
501 self.verifyOpenPages_(['settings'], 'settings#query'); | 501 self.verifyOpenPages_(['settings'], 'search#query'); |
502 self.verifyHistory_(['settings', 'settings#query'], testDone); | 502 self.verifyHistory_(['', 'search#query'], testDone); |
503 }); | 503 }); |
504 }); | 504 }); |
505 | 505 |
506 TEST_F('OptionsWebUIExtendedTest', 'ShowPageWithHistory', function() { | 506 TEST_F('OptionsWebUIExtendedTest', 'ShowPageWithHistory', function() { |
507 // See comments for ShowPageNoHistory. | 507 // See comments for ShowPageNoHistory. |
508 $('search-field').onsearch({currentTarget: {value: 'query'}}); | 508 $('search-field').onsearch({currentTarget: {value: 'query'}}); |
509 var self = this; | 509 var self = this; |
510 this.verifyHistory_(['settings', 'settings#query'], function() { | 510 this.verifyHistory_(['', 'search#query'], function() { |
511 OptionsPage.showPageByName('settings', true); | 511 OptionsPage.showPageByName('settings', true); |
512 self.verifyOpenPages_(['settings'], 'settings#query'); | 512 self.verifyOpenPages_(['settings'], '#query'); |
513 self.verifyHistory_(['settings', 'settings#query', 'settings#query'], | 513 self.verifyHistory_(['', 'search#query', '#query'], |
514 testDone); | 514 testDone); |
515 }); | 515 }); |
516 }); | 516 }); |
517 | 517 |
518 TEST_F('OptionsWebUIExtendedTest', 'ShowPageReplaceHistory', function() { | 518 TEST_F('OptionsWebUIExtendedTest', 'ShowPageReplaceHistory', function() { |
519 // See comments for ShowPageNoHistory. | 519 // See comments for ShowPageNoHistory. |
520 $('search-field').onsearch({currentTarget: {value: 'query'}}); | 520 $('search-field').onsearch({currentTarget: {value: 'query'}}); |
521 var self = this; | 521 var self = this; |
522 this.verifyHistory_(['settings', 'settings#query'], function() { | 522 this.verifyHistory_(['', 'search#query'], function() { |
523 OptionsPage.showPageByName('settings', true, {'replaceState': true}); | 523 OptionsPage.showPageByName('settings', true, {'replaceState': true}); |
524 self.verifyOpenPages_(['settings'], 'settings#query'); | 524 self.verifyOpenPages_(['settings'], '#query'); |
525 self.verifyHistory_(['settings', 'settings#query'], testDone); | 525 self.verifyHistory_(['', '#query'], testDone); |
526 }); | 526 }); |
527 }); | 527 }); |
528 | 528 |
529 // This should be identical to ShowPageWithHisory. | 529 // This should be identical to ShowPageWithHisory. |
530 TEST_F('OptionsWebUIExtendedTest', 'NavigateToPage', function() { | 530 TEST_F('OptionsWebUIExtendedTest', 'NavigateToPage', function() { |
531 // See comments for ShowPageNoHistory. | 531 // See comments for ShowPageNoHistory. |
532 $('search-field').onsearch({currentTarget: {value: 'query'}}); | 532 $('search-field').onsearch({currentTarget: {value: 'query'}}); |
533 var self = this; | 533 var self = this; |
534 this.verifyHistory_(['settings', 'settings#query'], function() { | 534 this.verifyHistory_(['', 'search#query'], function() { |
535 OptionsPage.navigateToPage('settings'); | 535 OptionsPage.navigateToPage('settings'); |
536 self.verifyOpenPages_(['settings'], 'settings#query'); | 536 self.verifyOpenPages_(['settings'], '#query'); |
537 self.verifyHistory_(['settings', 'settings#query', 'settings#query'], | 537 self.verifyHistory_(['', 'search#query', '#query'], |
538 testDone); | 538 testDone); |
539 }); | 539 }); |
540 }); | 540 }); |
541 | 541 |
542 // Settings overlays are much more straightforward than settings pages, opening | 542 // Settings overlays are much more straightforward than settings pages, opening |
543 // normally with none of the latter's quirks in the expected history or URL. | 543 // normally with none of the latter's quirks in the expected history or URL. |
544 TEST_F('OptionsWebUIExtendedTest', 'ShowOverlayNoHistory', function() { | 544 TEST_F('OptionsWebUIExtendedTest', 'ShowOverlayNoHistory', function() { |
545 // Open a layer-1 overlay, not updating history. | 545 // Open a layer-1 overlay, not updating history. |
546 OptionsPage.showPageByName('languages', false); | 546 OptionsPage.showPageByName('languages', false); |
547 this.verifyOpenPages_(['settings', 'languages'], 'settings'); | 547 this.verifyOpenPages_(['settings', 'languages'], ''); |
548 | 548 |
549 var self = this; | 549 var self = this; |
550 this.verifyHistory_(['settings'], function() { | 550 this.verifyHistory_([''], function() { |
551 // Open a layer-2 overlay for which the layer-1 is a parent, not updating | 551 // Open a layer-2 overlay for which the layer-1 is a parent, not updating |
552 // history. | 552 // history. |
553 OptionsPage.showPageByName('addLanguage', false); | 553 OptionsPage.showPageByName('addLanguage', false); |
554 self.verifyOpenPages_(['settings', 'languages', 'addLanguage'], | 554 self.verifyOpenPages_(['settings', 'languages', 'addLanguage'], |
555 'settings'); | 555 ''); |
556 self.verifyHistory_(['settings'], testDone); | 556 self.verifyHistory_([''], testDone); |
557 }); | 557 }); |
558 }); | 558 }); |
559 | 559 |
560 TEST_F('OptionsWebUIExtendedTest', 'ShowOverlayWithHistory', function() { | 560 TEST_F('OptionsWebUIExtendedTest', 'ShowOverlayWithHistory', function() { |
561 // Open a layer-1 overlay, updating history. | 561 // Open a layer-1 overlay, updating history. |
562 OptionsPage.showPageByName('languages', true); | 562 OptionsPage.showPageByName('languages', true); |
563 this.verifyOpenPages_(['settings', 'languages']); | 563 this.verifyOpenPages_(['settings', 'languages']); |
564 | 564 |
565 var self = this; | 565 var self = this; |
566 this.verifyHistory_(['settings', 'languages'], function() { | 566 this.verifyHistory_(['', 'languages'], function() { |
567 // Open a layer-2 overlay, updating history. | 567 // Open a layer-2 overlay, updating history. |
568 OptionsPage.showPageByName('addLanguage', true); | 568 OptionsPage.showPageByName('addLanguage', true); |
569 self.verifyOpenPages_(['settings', 'languages', 'addLanguage']); | 569 self.verifyOpenPages_(['settings', 'languages', 'addLanguage']); |
570 self.verifyHistory_(['settings', 'languages', 'addLanguage'], testDone); | 570 self.verifyHistory_(['', 'languages', 'addLanguage'], testDone); |
571 }); | 571 }); |
572 }); | 572 }); |
573 | 573 |
574 TEST_F('OptionsWebUIExtendedTest', 'ShowOverlayReplaceHistory', function() { | 574 TEST_F('OptionsWebUIExtendedTest', 'ShowOverlayReplaceHistory', function() { |
575 // Open a layer-1 overlay, updating history. | 575 // Open a layer-1 overlay, updating history. |
576 OptionsPage.showPageByName('languages', true); | 576 OptionsPage.showPageByName('languages', true); |
577 var self = this; | 577 var self = this; |
578 this.verifyHistory_(['settings', 'languages'], function() { | 578 this.verifyHistory_(['', 'languages'], function() { |
579 // Open a layer-2 overlay, replacing history. | 579 // Open a layer-2 overlay, replacing history. |
580 OptionsPage.showPageByName('addLanguage', true, {'replaceState': true}); | 580 OptionsPage.showPageByName('addLanguage', true, {'replaceState': true}); |
581 self.verifyOpenPages_(['settings', 'languages', 'addLanguage']); | 581 self.verifyOpenPages_(['settings', 'languages', 'addLanguage']); |
582 self.verifyHistory_(['settings', 'addLanguage'], testDone); | 582 self.verifyHistory_(['', 'addLanguage'], testDone); |
583 }); | 583 }); |
584 }); | 584 }); |
585 | 585 |
586 // Directly show an overlay further above this page, i.e. one for which the | 586 // Directly show an overlay further above this page, i.e. one for which the |
587 // current page is an ancestor but not a parent. | 587 // current page is an ancestor but not a parent. |
588 TEST_F('OptionsWebUIExtendedTest', 'ShowOverlayFurtherAbove', function() { | 588 TEST_F('OptionsWebUIExtendedTest', 'ShowOverlayFurtherAbove', function() { |
589 // Open a layer-2 overlay directly. | 589 // Open a layer-2 overlay directly. |
590 OptionsPage.showPageByName('addLanguage', true); | 590 OptionsPage.showPageByName('addLanguage', true); |
591 this.verifyOpenPages_(['settings', 'languages', 'addLanguage']); | 591 this.verifyOpenPages_(['settings', 'languages', 'addLanguage']); |
592 var self = this; | 592 var self = this; |
593 this.verifyHistory_(['settings', 'addLanguage'], testDone); | 593 this.verifyHistory_(['', 'addLanguage'], testDone); |
594 }); | 594 }); |
595 | 595 |
596 // Directly show a layer-2 overlay for which the layer-1 overlay is not a | 596 // Directly show a layer-2 overlay for which the layer-1 overlay is not a |
597 // parent. | 597 // parent. |
598 TEST_F('OptionsWebUIExtendedTest', 'ShowUnrelatedOverlay', function() { | 598 TEST_F('OptionsWebUIExtendedTest', 'ShowUnrelatedOverlay', function() { |
599 // Open a layer-1 overlay. | 599 // Open a layer-1 overlay. |
600 OptionsPage.showPageByName('languages', true); | 600 OptionsPage.showPageByName('languages', true); |
601 this.verifyOpenPages_(['settings', 'languages']); | 601 this.verifyOpenPages_(['settings', 'languages']); |
602 | 602 |
603 var self = this; | 603 var self = this; |
604 this.verifyHistory_(['settings', 'languages'], function() { | 604 this.verifyHistory_(['', 'languages'], function() { |
605 // Open an unrelated layer-2 overlay. | 605 // Open an unrelated layer-2 overlay. |
606 OptionsPage.showPageByName('cookies', true); | 606 OptionsPage.showPageByName('cookies', true); |
607 self.verifyOpenPages_(['settings', 'content', 'cookies']); | 607 self.verifyOpenPages_(['settings', 'content', 'cookies']); |
608 self.verifyHistory_(['settings', 'languages', 'cookies'], testDone); | 608 self.verifyHistory_(['', 'languages', 'cookies'], testDone); |
609 }); | 609 }); |
610 }); | 610 }); |
611 | 611 |
612 // Close an overlay. | 612 // Close an overlay. |
613 TEST_F('OptionsWebUIExtendedTest', 'CloseOverlay', function() { | 613 TEST_F('OptionsWebUIExtendedTest', 'CloseOverlay', function() { |
614 // Open a layer-1 overlay, then a layer-2 overlay on top of it. | 614 // Open a layer-1 overlay, then a layer-2 overlay on top of it. |
615 OptionsPage.showPageByName('languages', true); | 615 OptionsPage.showPageByName('languages', true); |
616 this.verifyOpenPages_(['settings', 'languages']); | 616 this.verifyOpenPages_(['settings', 'languages']); |
617 OptionsPage.showPageByName('addLanguage', true); | 617 OptionsPage.showPageByName('addLanguage', true); |
618 this.verifyOpenPages_(['settings', 'languages', 'addLanguage']); | 618 this.verifyOpenPages_(['settings', 'languages', 'addLanguage']); |
619 | 619 |
620 var self = this; | 620 var self = this; |
621 this.verifyHistory_(['settings', 'languages', 'addLanguage'], function() { | 621 this.verifyHistory_(['', 'languages', 'addLanguage'], function() { |
622 // Close the layer-2 overlay. | 622 // Close the layer-2 overlay. |
623 OptionsPage.closeOverlay(); | 623 OptionsPage.closeOverlay(); |
624 self.verifyOpenPages_(['settings', 'languages']); | 624 self.verifyOpenPages_(['settings', 'languages']); |
625 self.verifyHistory_( | 625 self.verifyHistory_( |
626 ['settings', 'languages', 'addLanguage', 'languages'], | 626 ['', 'languages', 'addLanguage', 'languages'], |
627 function() { | 627 function() { |
628 // Close the layer-1 overlay. | 628 // Close the layer-1 overlay. |
629 OptionsPage.closeOverlay(); | 629 OptionsPage.closeOverlay(); |
630 self.verifyOpenPages_(['settings']); | 630 self.verifyOpenPages_(['settings'], ''); |
631 self.verifyHistory_( | 631 self.verifyHistory_( |
632 ['settings', 'languages', 'addLanguage', 'languages', 'settings'], | 632 ['', 'languages', 'addLanguage', 'languages', ''], |
633 testDone); | 633 testDone); |
634 }); | 634 }); |
635 }); | 635 }); |
636 }); | 636 }); |
637 | 637 |
638 // Make sure an overlay isn't closed (even temporarily) when another overlay is | 638 // Make sure an overlay isn't closed (even temporarily) when another overlay is |
639 // opened on top. | 639 // opened on top. |
640 TEST_F('OptionsWebUIExtendedTest', 'OverlayAboveNoReset', function() { | 640 TEST_F('OptionsWebUIExtendedTest', 'OverlayAboveNoReset', function() { |
641 // Open a layer-1 overlay. | 641 // Open a layer-1 overlay. |
642 OptionsPage.showPageByName('languages', true); | 642 OptionsPage.showPageByName('languages', true); |
643 this.verifyOpenPages_(['settings', 'languages']); | 643 this.verifyOpenPages_(['settings', 'languages']); |
644 | 644 |
645 // Open a layer-2 overlay on top. This should not close 'languages'. | 645 // Open a layer-2 overlay on top. This should not close 'languages'. |
646 this.prohibitChangesToOverlay_(options.LanguageOptions.getInstance()); | 646 this.prohibitChangesToOverlay_(options.LanguageOptions.getInstance()); |
647 OptionsPage.showPageByName('addLanguage', true); | 647 OptionsPage.showPageByName('addLanguage', true); |
648 this.verifyOpenPages_(['settings', 'languages', 'addLanguage']); | 648 this.verifyOpenPages_(['settings', 'languages', 'addLanguage']); |
649 testDone(); | 649 testDone(); |
650 }); | 650 }); |
651 | 651 |
652 TEST_F('OptionsWebUIExtendedTest', 'OverlayTabNavigation', function() { | 652 TEST_F('OptionsWebUIExtendedTest', 'OverlayTabNavigation', function() { |
653 // Open a layer-1 overlay, then a layer-2 overlay on top of it. | 653 // Open a layer-1 overlay, then a layer-2 overlay on top of it. |
654 OptionsPage.showPageByName('languages', true); | 654 OptionsPage.showPageByName('languages', true); |
655 OptionsPage.showPageByName('addLanguage', true); | 655 OptionsPage.showPageByName('addLanguage', true); |
656 var self = this; | 656 var self = this; |
657 | 657 |
658 // Go back twice, then forward twice. | 658 // Go back twice, then forward twice. |
659 self.verifyOpenPages_(['settings', 'languages', 'addLanguage']); | 659 self.verifyOpenPages_(['settings', 'languages', 'addLanguage']); |
660 self.verifyHistory_(['settings', 'languages', 'addLanguage'], function() { | 660 self.verifyHistory_(['', 'languages', 'addLanguage'], function() { |
661 window.history.back(); | 661 window.history.back(); |
662 waitForPopstate(function() { | 662 waitForPopstate(function() { |
663 self.verifyOpenPages_(['settings', 'languages']); | 663 self.verifyOpenPages_(['settings', 'languages']); |
664 self.verifyHistory_(['settings', 'languages'], function() { | 664 self.verifyHistory_(['', 'languages'], function() { |
665 window.history.back(); | 665 window.history.back(); |
666 waitForPopstate(function() { | 666 waitForPopstate(function() { |
667 self.verifyOpenPages_(['settings']); | 667 self.verifyOpenPages_(['settings'], ''); |
668 self.verifyHistory_(['settings'], function() { | 668 self.verifyHistory_([''], function() { |
669 window.history.forward(); | 669 window.history.forward(); |
670 waitForPopstate(function() { | 670 waitForPopstate(function() { |
671 self.verifyOpenPages_(['settings', 'languages']); | 671 self.verifyOpenPages_(['settings', 'languages']); |
672 self.verifyHistory_(['settings', 'languages'], function() { | 672 self.verifyHistory_(['', 'languages'], function() { |
673 window.history.forward(); | 673 window.history.forward(); |
674 waitForPopstate(function() { | 674 waitForPopstate(function() { |
675 self.verifyOpenPages_( | 675 self.verifyOpenPages_( |
676 ['settings', 'languages', 'addLanguage']); | 676 ['settings', 'languages', 'addLanguage']); |
677 self.verifyHistory_( | 677 self.verifyHistory_( |
678 ['settings', 'languages', 'addLanguage'], testDone); | 678 ['', 'languages', 'addLanguage'], testDone); |
679 }); | 679 }); |
680 }); | 680 }); |
681 }); | 681 }); |
682 }); | 682 }); |
683 }); | 683 }); |
684 }); | 684 }); |
685 }); | 685 }); |
686 }); | 686 }); |
687 }); | 687 }); |
688 | 688 |
689 // Going "back" to an overlay that's a child of the current overlay shouldn't | 689 // Going "back" to an overlay that's a child of the current overlay shouldn't |
690 // close the current one. | 690 // close the current one. |
691 TEST_F('OptionsWebUIExtendedTest', 'OverlayBackToChild', function() { | 691 TEST_F('OptionsWebUIExtendedTest', 'OverlayBackToChild', function() { |
692 // Open a layer-1 overlay, then a layer-2 overlay on top of it. | 692 // Open a layer-1 overlay, then a layer-2 overlay on top of it. |
693 OptionsPage.showPageByName('languages', true); | 693 OptionsPage.showPageByName('languages', true); |
694 OptionsPage.showPageByName('addLanguage', true); | 694 OptionsPage.showPageByName('addLanguage', true); |
695 var self = this; | 695 var self = this; |
696 | 696 |
697 self.verifyOpenPages_(['settings', 'languages', 'addLanguage']); | 697 self.verifyOpenPages_(['settings', 'languages', 'addLanguage']); |
698 self.verifyHistory_(['settings', 'languages', 'addLanguage'], function() { | 698 self.verifyHistory_(['', 'languages', 'addLanguage'], function() { |
699 // Close the top overlay, then go back to it. | 699 // Close the top overlay, then go back to it. |
700 OptionsPage.closeOverlay(); | 700 OptionsPage.closeOverlay(); |
701 self.verifyOpenPages_(['settings', 'languages']); | 701 self.verifyOpenPages_(['settings', 'languages']); |
702 self.verifyHistory_( | 702 self.verifyHistory_( |
703 ['settings', 'languages', 'addLanguage', 'languages'], | 703 ['', 'languages', 'addLanguage', 'languages'], |
704 function() { | 704 function() { |
705 // Going back to the 'addLanguage' page should not close 'languages'. | 705 // Going back to the 'addLanguage' page should not close 'languages'. |
706 self.prohibitChangesToOverlay_(options.LanguageOptions.getInstance()); | 706 self.prohibitChangesToOverlay_(options.LanguageOptions.getInstance()); |
707 window.history.back(); | 707 window.history.back(); |
708 waitForPopstate(function() { | 708 waitForPopstate(function() { |
709 self.verifyOpenPages_(['settings', 'languages', 'addLanguage']); | 709 self.verifyOpenPages_(['settings', 'languages', 'addLanguage']); |
710 self.verifyHistory_(['settings', 'languages', 'addLanguage'], | 710 self.verifyHistory_(['', 'languages', 'addLanguage'], |
711 testDone); | 711 testDone); |
712 }); | 712 }); |
713 }); | 713 }); |
714 }); | 714 }); |
715 }); | 715 }); |
716 | 716 |
717 // Going back to an unrelated overlay should close the overlay and its parent. | 717 // Going back to an unrelated overlay should close the overlay and its parent. |
718 TEST_F('OptionsWebUIExtendedTest', 'OverlayBackToUnrelated', function() { | 718 TEST_F('OptionsWebUIExtendedTest', 'OverlayBackToUnrelated', function() { |
719 // Open a layer-1 overlay, then an unrelated layer-2 overlay. | 719 // Open a layer-1 overlay, then an unrelated layer-2 overlay. |
720 OptionsPage.showPageByName('languages', true); | 720 OptionsPage.showPageByName('languages', true); |
721 OptionsPage.showPageByName('cookies', true); | 721 OptionsPage.showPageByName('cookies', true); |
722 var self = this; | 722 var self = this; |
723 self.verifyOpenPages_(['settings', 'content', 'cookies']); | 723 self.verifyOpenPages_(['settings', 'content', 'cookies']); |
724 self.verifyHistory_(['settings', 'languages', 'cookies'], function() { | 724 self.verifyHistory_(['', 'languages', 'cookies'], function() { |
725 window.history.back(); | 725 window.history.back(); |
726 waitForPopstate(function() { | 726 waitForPopstate(function() { |
727 self.verifyOpenPages_(['settings', 'languages']); | 727 self.verifyOpenPages_(['settings', 'languages']); |
728 testDone(); | 728 testDone(); |
729 }); | 729 }); |
730 }); | 730 }); |
731 }); | 731 }); |
732 | 732 |
733 // Verify history changes properly while the page is loading. | 733 // Verify history changes properly while the page is loading. |
734 TEST_F('OptionsWebUIExtendedTest', 'HistoryUpdatedAfterLoading', function() { | 734 TEST_F('OptionsWebUIExtendedTest', 'HistoryUpdatedAfterLoading', function() { |
(...skipping 24 matching lines...) Expand all Loading... | |
759 chrome.send('optionsTestSetPref', [MANAGED_USERS_PREF, {key: 'value'}]); | 759 chrome.send('optionsTestSetPref', [MANAGED_USERS_PREF, {key: 'value'}]); |
760 waitForResponse(BrowserOptions, 'updateManagesSupervisedUsers', function() { | 760 waitForResponse(BrowserOptions, 'updateManagesSupervisedUsers', function() { |
761 assertFalse($('profiles-supervised-dashboard-tip').hidden); | 761 assertFalse($('profiles-supervised-dashboard-tip').hidden); |
762 chrome.send('optionsTestSetPref', [MANAGED_USERS_PREF, {}]); | 762 chrome.send('optionsTestSetPref', [MANAGED_USERS_PREF, {}]); |
763 waitForResponse(BrowserOptions, 'updateManagesSupervisedUsers', function() { | 763 waitForResponse(BrowserOptions, 'updateManagesSupervisedUsers', function() { |
764 assertTrue($('profiles-supervised-dashboard-tip').hidden); | 764 assertTrue($('profiles-supervised-dashboard-tip').hidden); |
765 testDone(); | 765 testDone(); |
766 }); | 766 }); |
767 }); | 767 }); |
768 }); | 768 }); |
OLD | NEW |