Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Side by Side Diff: chrome/browser/ui/webui/options/options_browsertest.js

Issue 298553002: Options: maintain history entries on the parent frame. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: dbeam comments Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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 });
OLDNEW
« chrome/browser/resources/uber/uber_utils.js ('K') | « chrome/browser/resources/uber/uber_utils.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698