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 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
374 | 374 |
375 for (var i = 0; i < expectedSorted.length; ++i) { | 375 for (var i = 0; i < expectedSorted.length; ++i) { |
376 assertEquals(expectedSorted[i], resultSorted[i], errorMessage); | 376 assertEquals(expectedSorted[i], resultSorted[i], errorMessage); |
377 } | 377 } |
378 }, | 378 }, |
379 | 379 |
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=} opt_expectedUrl The URL path, including hash, expected to |
385 * open. If undefined, the topmost (last) page name in |expectedPages| | 385 * be 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, opt_expectedUrl) { |
391 // Check the topmost page. | 391 // Check the topmost page. |
392 assertEquals(null, OptionsPage.getVisibleBubble()); | 392 expectEquals(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 expectEquals(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 opt_expectedUrl = |
405 (expectedUrl ? expectedUrl : lastExpected); | 405 (opt_expectedUrl == undefined) ? lastExpected : opt_expectedUrl; |
Dan Beam
2014/05/19 23:49:10
nit: rather than re-use this opt_ variable here, d
davidben
2014/05/20 00:12:55
Done.
| |
406 assertEquals(fullExpectedUrl, window.location.href); | 406 var fullExpectedUrl = 'chrome://settings-frame/' + opt_expectedUrl; |
407 expectEquals(fullExpectedUrl, window.location.href); | |
407 | 408 |
408 // Collect open pages. | 409 // Collect open pages. |
409 var allPageNames = Object.keys(OptionsPage.registeredPages).concat( | 410 var allPageNames = Object.keys(OptionsPage.registeredPages).concat( |
410 Object.keys(OptionsPage.registeredOverlayPages)); | 411 Object.keys(OptionsPage.registeredOverlayPages)); |
411 var openPages = []; | 412 var openPages = []; |
412 for (var i = 0; i < allPageNames.length; ++i) { | 413 for (var i = 0; i < allPageNames.length; ++i) { |
413 var name = allPageNames[i]; | 414 var name = allPageNames[i]; |
414 var page = OptionsPage.registeredPages[name] || | 415 var page = OptionsPage.registeredPages[name] || |
415 OptionsPage.registeredOverlayPages[name]; | 416 OptionsPage.registeredOverlayPages[name]; |
416 if (page.visible) | 417 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 | 477 // Test disabled because it's flaky. crbug.com/303841 |
477 TEST_F('OptionsWebUIExtendedTest', 'DISABLED_ShowSearchPageNoQuery', | 478 TEST_F('OptionsWebUIExtendedTest', 'DISABLED_ShowSearchPageNoQuery', |
478 function() { | 479 function() { |
479 OptionsPage.showPageByName('search'); | 480 OptionsPage.showPageByName('search'); |
480 this.verifyOpenPages_(['settings']); | 481 this.verifyOpenPages_(['settings']); |
481 this.verifyHistory_(['settings'], testDone); | 482 this.verifyHistory_(['settings'], testDone); |
482 }); | 483 }); |
483 | 484 |
484 // Show a page without updating history. | 485 // Show a page without updating history. |
485 TEST_F('OptionsWebUIExtendedTest', 'ShowPageNoHistory', function() { | 486 TEST_F('OptionsWebUIExtendedTest', 'ShowPageNoHistory', function() { |
486 this.verifyOpenPages_(['settings']); | 487 this.verifyOpenPages_(['settings'], ''); |
487 // There are only two main pages, 'settings' and 'search'. It's not possible | 488 // There are only two main pages, 'settings' and 'search'. It's not possible |
488 // to show the search page using OptionsPage.showPageByName, because it | 489 // 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 | 490 // 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. | 491 // search page by performing a search, then test showPageByName. |
491 $('search-field').onsearch({currentTarget: {value: 'query'}}); | 492 $('search-field').onsearch({currentTarget: {value: 'query'}}); |
492 | 493 |
493 // The settings page is also still "open" (i.e., visible), in order to show | 494 // 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 | 495 // 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 | 496 // 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. | 497 // settings page, so the cross-origin call to set the URL fails. |
497 this.verifyOpenPages_(['settings', 'search'], 'settings#query'); | 498 this.verifyOpenPages_(['settings', 'search'], 'search#query'); |
498 var self = this; | 499 var self = this; |
499 this.verifyHistory_(['settings', 'settings#query'], function() { | 500 this.verifyHistory_(['', 'search#query'], function() { |
500 OptionsPage.showPageByName('settings', false); | 501 OptionsPage.showPageByName('settings', false); |
501 self.verifyOpenPages_(['settings'], 'settings#query'); | 502 self.verifyOpenPages_(['settings'], 'search#query'); |
502 self.verifyHistory_(['settings', 'settings#query'], testDone); | 503 self.verifyHistory_(['', 'search#query'], testDone); |
503 }); | 504 }); |
504 }); | 505 }); |
505 | 506 |
506 TEST_F('OptionsWebUIExtendedTest', 'ShowPageWithHistory', function() { | 507 TEST_F('OptionsWebUIExtendedTest', 'ShowPageWithHistory', function() { |
507 // See comments for ShowPageNoHistory. | 508 // See comments for ShowPageNoHistory. |
508 $('search-field').onsearch({currentTarget: {value: 'query'}}); | 509 $('search-field').onsearch({currentTarget: {value: 'query'}}); |
509 var self = this; | 510 var self = this; |
510 this.verifyHistory_(['settings', 'settings#query'], function() { | 511 this.verifyHistory_(['', 'search#query'], function() { |
511 OptionsPage.showPageByName('settings', true); | 512 OptionsPage.showPageByName('settings', true); |
512 self.verifyOpenPages_(['settings'], 'settings#query'); | 513 self.verifyOpenPages_(['settings'], '#query'); |
513 self.verifyHistory_(['settings', 'settings#query', 'settings#query'], | 514 self.verifyHistory_(['', 'search#query', '#query'], |
514 testDone); | 515 testDone); |
515 }); | 516 }); |
516 }); | 517 }); |
517 | 518 |
518 TEST_F('OptionsWebUIExtendedTest', 'ShowPageReplaceHistory', function() { | 519 TEST_F('OptionsWebUIExtendedTest', 'ShowPageReplaceHistory', function() { |
519 // See comments for ShowPageNoHistory. | 520 // See comments for ShowPageNoHistory. |
520 $('search-field').onsearch({currentTarget: {value: 'query'}}); | 521 $('search-field').onsearch({currentTarget: {value: 'query'}}); |
521 var self = this; | 522 var self = this; |
522 this.verifyHistory_(['settings', 'settings#query'], function() { | 523 this.verifyHistory_(['', 'search#query'], function() { |
523 OptionsPage.showPageByName('settings', true, {'replaceState': true}); | 524 OptionsPage.showPageByName('settings', true, {'replaceState': true}); |
524 self.verifyOpenPages_(['settings'], 'settings#query'); | 525 self.verifyOpenPages_(['settings'], '#query'); |
525 self.verifyHistory_(['settings', 'settings#query'], testDone); | 526 self.verifyHistory_(['', '#query'], testDone); |
526 }); | 527 }); |
527 }); | 528 }); |
528 | 529 |
529 // This should be identical to ShowPageWithHisory. | 530 // This should be identical to ShowPageWithHisory. |
530 TEST_F('OptionsWebUIExtendedTest', 'NavigateToPage', function() { | 531 TEST_F('OptionsWebUIExtendedTest', 'NavigateToPage', function() { |
531 // See comments for ShowPageNoHistory. | 532 // See comments for ShowPageNoHistory. |
532 $('search-field').onsearch({currentTarget: {value: 'query'}}); | 533 $('search-field').onsearch({currentTarget: {value: 'query'}}); |
533 var self = this; | 534 var self = this; |
534 this.verifyHistory_(['settings', 'settings#query'], function() { | 535 this.verifyHistory_(['', 'search#query'], function() { |
535 OptionsPage.navigateToPage('settings'); | 536 OptionsPage.navigateToPage('settings'); |
536 self.verifyOpenPages_(['settings'], 'settings#query'); | 537 self.verifyOpenPages_(['settings'], '#query'); |
537 self.verifyHistory_(['settings', 'settings#query', 'settings#query'], | 538 self.verifyHistory_(['', 'search#query', '#query'], |
538 testDone); | 539 testDone); |
539 }); | 540 }); |
540 }); | 541 }); |
541 | 542 |
542 // Settings overlays are much more straightforward than settings pages, opening | 543 // 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. | 544 // normally with none of the latter's quirks in the expected history or URL. |
544 TEST_F('OptionsWebUIExtendedTest', 'ShowOverlayNoHistory', function() { | 545 TEST_F('OptionsWebUIExtendedTest', 'ShowOverlayNoHistory', function() { |
545 // Open a layer-1 overlay, not updating history. | 546 // Open a layer-1 overlay, not updating history. |
546 OptionsPage.showPageByName('languages', false); | 547 OptionsPage.showPageByName('languages', false); |
547 this.verifyOpenPages_(['settings', 'languages'], 'settings'); | 548 this.verifyOpenPages_(['settings', 'languages'], ''); |
548 | 549 |
549 var self = this; | 550 var self = this; |
550 this.verifyHistory_(['settings'], function() { | 551 this.verifyHistory_([''], function() { |
551 // Open a layer-2 overlay for which the layer-1 is a parent, not updating | 552 // Open a layer-2 overlay for which the layer-1 is a parent, not updating |
552 // history. | 553 // history. |
553 OptionsPage.showPageByName('addLanguage', false); | 554 OptionsPage.showPageByName('addLanguage', false); |
554 self.verifyOpenPages_(['settings', 'languages', 'addLanguage'], | 555 self.verifyOpenPages_(['settings', 'languages', 'addLanguage'], |
555 'settings'); | 556 ''); |
556 self.verifyHistory_(['settings'], testDone); | 557 self.verifyHistory_([''], testDone); |
557 }); | 558 }); |
558 }); | 559 }); |
559 | 560 |
560 TEST_F('OptionsWebUIExtendedTest', 'ShowOverlayWithHistory', function() { | 561 TEST_F('OptionsWebUIExtendedTest', 'ShowOverlayWithHistory', function() { |
561 // Open a layer-1 overlay, updating history. | 562 // Open a layer-1 overlay, updating history. |
562 OptionsPage.showPageByName('languages', true); | 563 OptionsPage.showPageByName('languages', true); |
563 this.verifyOpenPages_(['settings', 'languages']); | 564 this.verifyOpenPages_(['settings', 'languages']); |
564 | 565 |
565 var self = this; | 566 var self = this; |
566 this.verifyHistory_(['settings', 'languages'], function() { | 567 this.verifyHistory_(['', 'languages'], function() { |
567 // Open a layer-2 overlay, updating history. | 568 // Open a layer-2 overlay, updating history. |
568 OptionsPage.showPageByName('addLanguage', true); | 569 OptionsPage.showPageByName('addLanguage', true); |
569 self.verifyOpenPages_(['settings', 'languages', 'addLanguage']); | 570 self.verifyOpenPages_(['settings', 'languages', 'addLanguage']); |
570 self.verifyHistory_(['settings', 'languages', 'addLanguage'], testDone); | 571 self.verifyHistory_(['', 'languages', 'addLanguage'], testDone); |
571 }); | 572 }); |
572 }); | 573 }); |
573 | 574 |
574 TEST_F('OptionsWebUIExtendedTest', 'ShowOverlayReplaceHistory', function() { | 575 TEST_F('OptionsWebUIExtendedTest', 'ShowOverlayReplaceHistory', function() { |
575 // Open a layer-1 overlay, updating history. | 576 // Open a layer-1 overlay, updating history. |
576 OptionsPage.showPageByName('languages', true); | 577 OptionsPage.showPageByName('languages', true); |
577 var self = this; | 578 var self = this; |
578 this.verifyHistory_(['settings', 'languages'], function() { | 579 this.verifyHistory_(['', 'languages'], function() { |
579 // Open a layer-2 overlay, replacing history. | 580 // Open a layer-2 overlay, replacing history. |
580 OptionsPage.showPageByName('addLanguage', true, {'replaceState': true}); | 581 OptionsPage.showPageByName('addLanguage', true, {'replaceState': true}); |
581 self.verifyOpenPages_(['settings', 'languages', 'addLanguage']); | 582 self.verifyOpenPages_(['settings', 'languages', 'addLanguage']); |
582 self.verifyHistory_(['settings', 'addLanguage'], testDone); | 583 self.verifyHistory_(['', 'addLanguage'], testDone); |
583 }); | 584 }); |
584 }); | 585 }); |
585 | 586 |
586 // Directly show an overlay further above this page, i.e. one for which the | 587 // Directly show an overlay further above this page, i.e. one for which the |
587 // current page is an ancestor but not a parent. | 588 // current page is an ancestor but not a parent. |
588 TEST_F('OptionsWebUIExtendedTest', 'ShowOverlayFurtherAbove', function() { | 589 TEST_F('OptionsWebUIExtendedTest', 'ShowOverlayFurtherAbove', function() { |
589 // Open a layer-2 overlay directly. | 590 // Open a layer-2 overlay directly. |
590 OptionsPage.showPageByName('addLanguage', true); | 591 OptionsPage.showPageByName('addLanguage', true); |
591 this.verifyOpenPages_(['settings', 'languages', 'addLanguage']); | 592 this.verifyOpenPages_(['settings', 'languages', 'addLanguage']); |
592 var self = this; | 593 var self = this; |
593 this.verifyHistory_(['settings', 'addLanguage'], testDone); | 594 this.verifyHistory_(['', 'addLanguage'], testDone); |
594 }); | 595 }); |
595 | 596 |
596 // Directly show a layer-2 overlay for which the layer-1 overlay is not a | 597 // Directly show a layer-2 overlay for which the layer-1 overlay is not a |
597 // parent. | 598 // parent. |
598 TEST_F('OptionsWebUIExtendedTest', 'ShowUnrelatedOverlay', function() { | 599 TEST_F('OptionsWebUIExtendedTest', 'ShowUnrelatedOverlay', function() { |
599 // Open a layer-1 overlay. | 600 // Open a layer-1 overlay. |
600 OptionsPage.showPageByName('languages', true); | 601 OptionsPage.showPageByName('languages', true); |
601 this.verifyOpenPages_(['settings', 'languages']); | 602 this.verifyOpenPages_(['settings', 'languages']); |
602 | 603 |
603 var self = this; | 604 var self = this; |
604 this.verifyHistory_(['settings', 'languages'], function() { | 605 this.verifyHistory_(['', 'languages'], function() { |
605 // Open an unrelated layer-2 overlay. | 606 // Open an unrelated layer-2 overlay. |
606 OptionsPage.showPageByName('cookies', true); | 607 OptionsPage.showPageByName('cookies', true); |
607 self.verifyOpenPages_(['settings', 'content', 'cookies']); | 608 self.verifyOpenPages_(['settings', 'content', 'cookies']); |
608 self.verifyHistory_(['settings', 'languages', 'cookies'], testDone); | 609 self.verifyHistory_(['', 'languages', 'cookies'], testDone); |
609 }); | 610 }); |
610 }); | 611 }); |
611 | 612 |
612 // Close an overlay. | 613 // Close an overlay. |
613 TEST_F('OptionsWebUIExtendedTest', 'CloseOverlay', function() { | 614 TEST_F('OptionsWebUIExtendedTest', 'CloseOverlay', function() { |
614 // Open a layer-1 overlay, then a layer-2 overlay on top of it. | 615 // Open a layer-1 overlay, then a layer-2 overlay on top of it. |
615 OptionsPage.showPageByName('languages', true); | 616 OptionsPage.showPageByName('languages', true); |
616 this.verifyOpenPages_(['settings', 'languages']); | 617 this.verifyOpenPages_(['settings', 'languages']); |
617 OptionsPage.showPageByName('addLanguage', true); | 618 OptionsPage.showPageByName('addLanguage', true); |
618 this.verifyOpenPages_(['settings', 'languages', 'addLanguage']); | 619 this.verifyOpenPages_(['settings', 'languages', 'addLanguage']); |
619 | 620 |
620 var self = this; | 621 var self = this; |
621 this.verifyHistory_(['settings', 'languages', 'addLanguage'], function() { | 622 this.verifyHistory_(['', 'languages', 'addLanguage'], function() { |
622 // Close the layer-2 overlay. | 623 // Close the layer-2 overlay. |
623 OptionsPage.closeOverlay(); | 624 OptionsPage.closeOverlay(); |
624 self.verifyOpenPages_(['settings', 'languages']); | 625 self.verifyOpenPages_(['settings', 'languages']); |
625 self.verifyHistory_( | 626 self.verifyHistory_( |
626 ['settings', 'languages', 'addLanguage', 'languages'], | 627 ['', 'languages', 'addLanguage', 'languages'], |
627 function() { | 628 function() { |
628 // Close the layer-1 overlay. | 629 // Close the layer-1 overlay. |
629 OptionsPage.closeOverlay(); | 630 OptionsPage.closeOverlay(); |
630 self.verifyOpenPages_(['settings']); | 631 self.verifyOpenPages_(['settings'], ''); |
631 self.verifyHistory_( | 632 self.verifyHistory_( |
632 ['settings', 'languages', 'addLanguage', 'languages', 'settings'], | 633 ['', 'languages', 'addLanguage', 'languages', ''], |
633 testDone); | 634 testDone); |
634 }); | 635 }); |
635 }); | 636 }); |
636 }); | 637 }); |
637 | 638 |
638 // Make sure an overlay isn't closed (even temporarily) when another overlay is | 639 // Make sure an overlay isn't closed (even temporarily) when another overlay is |
639 // opened on top. | 640 // opened on top. |
640 TEST_F('OptionsWebUIExtendedTest', 'OverlayAboveNoReset', function() { | 641 TEST_F('OptionsWebUIExtendedTest', 'OverlayAboveNoReset', function() { |
641 // Open a layer-1 overlay. | 642 // Open a layer-1 overlay. |
642 OptionsPage.showPageByName('languages', true); | 643 OptionsPage.showPageByName('languages', true); |
643 this.verifyOpenPages_(['settings', 'languages']); | 644 this.verifyOpenPages_(['settings', 'languages']); |
644 | 645 |
645 // Open a layer-2 overlay on top. This should not close 'languages'. | 646 // Open a layer-2 overlay on top. This should not close 'languages'. |
646 this.prohibitChangesToOverlay_(options.LanguageOptions.getInstance()); | 647 this.prohibitChangesToOverlay_(options.LanguageOptions.getInstance()); |
647 OptionsPage.showPageByName('addLanguage', true); | 648 OptionsPage.showPageByName('addLanguage', true); |
648 this.verifyOpenPages_(['settings', 'languages', 'addLanguage']); | 649 this.verifyOpenPages_(['settings', 'languages', 'addLanguage']); |
649 testDone(); | 650 testDone(); |
650 }); | 651 }); |
651 | 652 |
652 TEST_F('OptionsWebUIExtendedTest', 'OverlayTabNavigation', function() { | 653 TEST_F('OptionsWebUIExtendedTest', 'OverlayTabNavigation', function() { |
653 // Open a layer-1 overlay, then a layer-2 overlay on top of it. | 654 // Open a layer-1 overlay, then a layer-2 overlay on top of it. |
654 OptionsPage.showPageByName('languages', true); | 655 OptionsPage.showPageByName('languages', true); |
655 OptionsPage.showPageByName('addLanguage', true); | 656 OptionsPage.showPageByName('addLanguage', true); |
656 var self = this; | 657 var self = this; |
657 | 658 |
658 // Go back twice, then forward twice. | 659 // Go back twice, then forward twice. |
659 self.verifyOpenPages_(['settings', 'languages', 'addLanguage']); | 660 self.verifyOpenPages_(['settings', 'languages', 'addLanguage']); |
660 self.verifyHistory_(['settings', 'languages', 'addLanguage'], function() { | 661 self.verifyHistory_(['', 'languages', 'addLanguage'], function() { |
661 window.history.back(); | 662 window.history.back(); |
662 waitForPopstate(function() { | 663 waitForPopstate(function() { |
663 self.verifyOpenPages_(['settings', 'languages']); | 664 self.verifyOpenPages_(['settings', 'languages']); |
664 self.verifyHistory_(['settings', 'languages'], function() { | 665 self.verifyHistory_(['', 'languages'], function() { |
665 window.history.back(); | 666 window.history.back(); |
666 waitForPopstate(function() { | 667 waitForPopstate(function() { |
667 self.verifyOpenPages_(['settings']); | 668 self.verifyOpenPages_(['settings'], ''); |
668 self.verifyHistory_(['settings'], function() { | 669 self.verifyHistory_([''], function() { |
669 window.history.forward(); | 670 window.history.forward(); |
670 waitForPopstate(function() { | 671 waitForPopstate(function() { |
671 self.verifyOpenPages_(['settings', 'languages']); | 672 self.verifyOpenPages_(['settings', 'languages']); |
672 self.verifyHistory_(['settings', 'languages'], function() { | 673 self.verifyHistory_(['', 'languages'], function() { |
673 window.history.forward(); | 674 window.history.forward(); |
674 waitForPopstate(function() { | 675 waitForPopstate(function() { |
675 self.verifyOpenPages_( | 676 self.verifyOpenPages_( |
676 ['settings', 'languages', 'addLanguage']); | 677 ['settings', 'languages', 'addLanguage']); |
677 self.verifyHistory_( | 678 self.verifyHistory_( |
678 ['settings', 'languages', 'addLanguage'], testDone); | 679 ['', 'languages', 'addLanguage'], testDone); |
679 }); | 680 }); |
680 }); | 681 }); |
681 }); | 682 }); |
682 }); | 683 }); |
683 }); | 684 }); |
684 }); | 685 }); |
685 }); | 686 }); |
686 }); | 687 }); |
687 }); | 688 }); |
688 | 689 |
689 // Going "back" to an overlay that's a child of the current overlay shouldn't | 690 // Going "back" to an overlay that's a child of the current overlay shouldn't |
690 // close the current one. | 691 // close the current one. |
691 TEST_F('OptionsWebUIExtendedTest', 'OverlayBackToChild', function() { | 692 TEST_F('OptionsWebUIExtendedTest', 'OverlayBackToChild', function() { |
692 // Open a layer-1 overlay, then a layer-2 overlay on top of it. | 693 // Open a layer-1 overlay, then a layer-2 overlay on top of it. |
693 OptionsPage.showPageByName('languages', true); | 694 OptionsPage.showPageByName('languages', true); |
694 OptionsPage.showPageByName('addLanguage', true); | 695 OptionsPage.showPageByName('addLanguage', true); |
695 var self = this; | 696 var self = this; |
696 | 697 |
697 self.verifyOpenPages_(['settings', 'languages', 'addLanguage']); | 698 self.verifyOpenPages_(['settings', 'languages', 'addLanguage']); |
698 self.verifyHistory_(['settings', 'languages', 'addLanguage'], function() { | 699 self.verifyHistory_(['', 'languages', 'addLanguage'], function() { |
699 // Close the top overlay, then go back to it. | 700 // Close the top overlay, then go back to it. |
700 OptionsPage.closeOverlay(); | 701 OptionsPage.closeOverlay(); |
701 self.verifyOpenPages_(['settings', 'languages']); | 702 self.verifyOpenPages_(['settings', 'languages']); |
702 self.verifyHistory_( | 703 self.verifyHistory_( |
703 ['settings', 'languages', 'addLanguage', 'languages'], | 704 ['', 'languages', 'addLanguage', 'languages'], |
704 function() { | 705 function() { |
705 // Going back to the 'addLanguage' page should not close 'languages'. | 706 // Going back to the 'addLanguage' page should not close 'languages'. |
706 self.prohibitChangesToOverlay_(options.LanguageOptions.getInstance()); | 707 self.prohibitChangesToOverlay_(options.LanguageOptions.getInstance()); |
707 window.history.back(); | 708 window.history.back(); |
708 waitForPopstate(function() { | 709 waitForPopstate(function() { |
709 self.verifyOpenPages_(['settings', 'languages', 'addLanguage']); | 710 self.verifyOpenPages_(['settings', 'languages', 'addLanguage']); |
710 self.verifyHistory_(['settings', 'languages', 'addLanguage'], | 711 self.verifyHistory_(['', 'languages', 'addLanguage'], |
711 testDone); | 712 testDone); |
712 }); | 713 }); |
713 }); | 714 }); |
714 }); | 715 }); |
715 }); | 716 }); |
716 | 717 |
717 // Going back to an unrelated overlay should close the overlay and its parent. | 718 // Going back to an unrelated overlay should close the overlay and its parent. |
718 TEST_F('OptionsWebUIExtendedTest', 'OverlayBackToUnrelated', function() { | 719 TEST_F('OptionsWebUIExtendedTest', 'OverlayBackToUnrelated', function() { |
719 // Open a layer-1 overlay, then an unrelated layer-2 overlay. | 720 // Open a layer-1 overlay, then an unrelated layer-2 overlay. |
720 OptionsPage.showPageByName('languages', true); | 721 OptionsPage.showPageByName('languages', true); |
721 OptionsPage.showPageByName('cookies', true); | 722 OptionsPage.showPageByName('cookies', true); |
722 var self = this; | 723 var self = this; |
723 self.verifyOpenPages_(['settings', 'content', 'cookies']); | 724 self.verifyOpenPages_(['settings', 'content', 'cookies']); |
724 self.verifyHistory_(['settings', 'languages', 'cookies'], function() { | 725 self.verifyHistory_(['', 'languages', 'cookies'], function() { |
725 window.history.back(); | 726 window.history.back(); |
726 waitForPopstate(function() { | 727 waitForPopstate(function() { |
727 self.verifyOpenPages_(['settings', 'languages']); | 728 self.verifyOpenPages_(['settings', 'languages']); |
728 testDone(); | 729 testDone(); |
729 }); | 730 }); |
730 }); | 731 }); |
731 }); | 732 }); |
732 | 733 |
733 // Verify history changes properly while the page is loading. | 734 // Verify history changes properly while the page is loading. |
734 TEST_F('OptionsWebUIExtendedTest', 'HistoryUpdatedAfterLoading', function() { | 735 TEST_F('OptionsWebUIExtendedTest', 'HistoryUpdatedAfterLoading', function() { |
(...skipping 24 matching lines...) Expand all Loading... | |
759 chrome.send('optionsTestSetPref', [MANAGED_USERS_PREF, {key: 'value'}]); | 760 chrome.send('optionsTestSetPref', [MANAGED_USERS_PREF, {key: 'value'}]); |
760 waitForResponse(BrowserOptions, 'updateManagesSupervisedUsers', function() { | 761 waitForResponse(BrowserOptions, 'updateManagesSupervisedUsers', function() { |
761 assertFalse($('profiles-supervised-dashboard-tip').hidden); | 762 assertFalse($('profiles-supervised-dashboard-tip').hidden); |
762 chrome.send('optionsTestSetPref', [MANAGED_USERS_PREF, {}]); | 763 chrome.send('optionsTestSetPref', [MANAGED_USERS_PREF, {}]); |
763 waitForResponse(BrowserOptions, 'updateManagesSupervisedUsers', function() { | 764 waitForResponse(BrowserOptions, 'updateManagesSupervisedUsers', function() { |
764 assertTrue($('profiles-supervised-dashboard-tip').hidden); | 765 assertTrue($('profiles-supervised-dashboard-tip').hidden); |
765 testDone(); | 766 testDone(); |
766 }); | 767 }); |
767 }); | 768 }); |
768 }); | 769 }); |
OLD | NEW |