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

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: More comments (try jobs on previous) 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 369 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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 });
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