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

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

Issue 555163007: Settings: manage location.hash explicitly on a Page. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: dbeam comments Created 6 years, 3 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
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 SUPERVISED_USERS_PREF = 'profile.managed_users'; 7 /** @const */ var SUPERVISED_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 502 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 513
514 // Show the search page with no query string, to fall back to the settings page. 514 // Show the search page with no query string, to fall back to the settings page.
515 // Test disabled because it's flaky. crbug.com/303841 515 // Test disabled because it's flaky. crbug.com/303841
516 TEST_F('OptionsWebUIExtendedTest', 'DISABLED_ShowSearchPageNoQuery', 516 TEST_F('OptionsWebUIExtendedTest', 'DISABLED_ShowSearchPageNoQuery',
517 function() { 517 function() {
518 PageManager.showPageByName('search'); 518 PageManager.showPageByName('search');
519 this.verifyOpenPages_(['settings']); 519 this.verifyOpenPages_(['settings']);
520 this.verifyHistory_(['settings'], testDone); 520 this.verifyHistory_(['settings'], testDone);
521 }); 521 });
522 522
523 // Manipulate the search page via the search field.
524 TEST_F('OptionsWebUIExtendedTest', 'ShowSearchFromField', function() {
525 $('search-field').onsearch({currentTarget: {value: 'query'}});
526 this.verifyOpenPages_(['settings', 'search'], 'search#query');
527 this.verifyHistory_(['', 'search#query'], function() {
528 $('search-field').onsearch({currentTarget: {value: 'query2'}});
529 this.verifyOpenPages_(['settings', 'search'], 'search#query2');
530 this.verifyHistory_(['', 'search#query', 'search#query2'], function() {
531 $('search-field').onsearch({currentTarget: {value: ''}});
532 this.verifyOpenPages_(['settings'], '');
533 this.verifyHistory_(['', 'search#query', 'search#query2', ''], testDone);
534 }.bind(this));
535 }.bind(this));
536 });
537
523 // Show a page without updating history. 538 // Show a page without updating history.
524 TEST_F('OptionsWebUIExtendedTest', 'ShowPageNoHistory', function() { 539 TEST_F('OptionsWebUIExtendedTest', 'ShowPageNoHistory', function() {
525 this.verifyOpenPages_(['settings'], ''); 540 this.verifyOpenPages_(['settings'], '');
526 // There are only two main pages, 'settings' and 'search'. It's not possible 541 PageManager.showPageByName('search', true, {hash: '#query'});
527 // to show the search page using PageManager.showPageByName, because it
528 // reverts to the settings page if it has no search text set. So we show the
529 // search page by performing a search, then test showPageByName.
530 $('search-field').onsearch({currentTarget: {value: 'query'}});
531 542
532 // The settings page is also still "open" (i.e., visible), in order to show 543 // The settings page is also still "open" (i.e., visible), in order to show
533 // the search results. Furthermore, the URL hasn't been updated in the parent 544 // the search results. Furthermore, the URL hasn't been updated in the parent
534 // page, because we've loaded the chrome-settings frame instead of the whole 545 // page, because we've loaded the chrome-settings frame instead of the whole
535 // settings page, so the cross-origin call to set the URL fails. 546 // settings page, so the cross-origin call to set the URL fails.
536 this.verifyOpenPages_(['settings', 'search'], 'search#query'); 547 this.verifyOpenPages_(['settings', 'search'], 'search#query');
537 var self = this; 548 var self = this;
538 this.verifyHistory_(['', 'search#query'], function() { 549 this.verifyHistory_(['', 'search#query'], function() {
539 PageManager.showPageByName('settings', false); 550 PageManager.showPageByName('settings', false);
540 self.verifyOpenPages_(['settings'], 'search#query'); 551 self.verifyOpenPages_(['settings'], 'search#query');
541 self.verifyHistory_(['', 'search#query'], testDone); 552 self.verifyHistory_(['', 'search#query'], testDone);
542 }); 553 });
543 }); 554 });
544 555
545 TEST_F('OptionsWebUIExtendedTest', 'ShowPageWithHistory', function() { 556 TEST_F('OptionsWebUIExtendedTest', 'ShowPageWithHistory', function() {
546 // See comments for ShowPageNoHistory. 557 PageManager.showPageByName('search', true, {hash: '#query'});
547 $('search-field').onsearch({currentTarget: {value: 'query'}});
548 var self = this; 558 var self = this;
549 this.verifyHistory_(['', 'search#query'], function() { 559 this.verifyHistory_(['', 'search#query'], function() {
550 PageManager.showPageByName('settings', true); 560 PageManager.showPageByName('settings', true);
551 self.verifyOpenPages_(['settings'], '#query'); 561 self.verifyOpenPages_(['settings'], '');
552 self.verifyHistory_(['', 'search#query', '#query'], 562 self.verifyHistory_(['', 'search#query', ''],
553 testDone); 563 testDone);
554 }); 564 });
555 }); 565 });
556 566
557 TEST_F('OptionsWebUIExtendedTest', 'ShowPageReplaceHistory', function() { 567 TEST_F('OptionsWebUIExtendedTest', 'ShowPageReplaceHistory', function() {
558 // See comments for ShowPageNoHistory. 568 PageManager.showPageByName('search', true, {hash: '#query'});
559 $('search-field').onsearch({currentTarget: {value: 'query'}});
560 var self = this; 569 var self = this;
561 this.verifyHistory_(['', 'search#query'], function() { 570 this.verifyHistory_(['', 'search#query'], function() {
562 PageManager.showPageByName('settings', true, {'replaceState': true}); 571 PageManager.showPageByName('settings', true, {'replaceState': true});
563 self.verifyOpenPages_(['settings'], '#query'); 572 self.verifyOpenPages_(['settings'], '');
564 self.verifyHistory_(['', '#query'], testDone); 573 self.verifyHistory_(['', ''], testDone);
565 }); 574 });
566 }); 575 });
567 576
568 // This should be identical to ShowPageWithHisory. 577 // This should be identical to ShowPageWithHisory.
569 TEST_F('OptionsWebUIExtendedTest', 'NavigateToPage', function() { 578 TEST_F('OptionsWebUIExtendedTest', 'NavigateToPage', function() {
570 // See comments for ShowPageNoHistory. 579 PageManager.showPageByName('search', true, {hash: '#query'});
571 $('search-field').onsearch({currentTarget: {value: 'query'}});
572 var self = this; 580 var self = this;
573 this.verifyHistory_(['', 'search#query'], function() { 581 this.verifyHistory_(['', 'search#query'], function() {
574 PageManager.showPageByName('settings'); 582 PageManager.showPageByName('settings');
575 self.verifyOpenPages_(['settings'], '#query'); 583 self.verifyOpenPages_(['settings'], '');
576 self.verifyHistory_(['', 'search#query', '#query'], 584 self.verifyHistory_(['', 'search#query', ''], testDone);
577 testDone);
578 }); 585 });
579 }); 586 });
580 587
581 // Settings overlays are much more straightforward than settings pages, opening 588 // Settings overlays are much more straightforward than settings pages, opening
582 // normally with none of the latter's quirks in the expected history or URL. 589 // normally with none of the latter's quirks in the expected history or URL.
583 TEST_F('OptionsWebUIExtendedTest', 'ShowOverlayNoHistory', function() { 590 TEST_F('OptionsWebUIExtendedTest', 'ShowOverlayNoHistory', function() {
584 // Open a layer-1 overlay, not updating history. 591 // Open a layer-1 overlay, not updating history.
585 PageManager.showPageByName('languages', false); 592 PageManager.showPageByName('languages', false);
586 this.verifyOpenPages_(['settings', 'languages'], ''); 593 this.verifyOpenPages_(['settings', 'languages'], '');
587 594
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 // Close the layer-1 overlay. 674 // Close the layer-1 overlay.
668 PageManager.closeOverlay(); 675 PageManager.closeOverlay();
669 self.verifyOpenPages_(['settings'], ''); 676 self.verifyOpenPages_(['settings'], '');
670 self.verifyHistory_( 677 self.verifyHistory_(
671 ['', 'languages', 'addLanguage', 'languages', ''], 678 ['', 'languages', 'addLanguage', 'languages', ''],
672 testDone); 679 testDone);
673 }); 680 });
674 }); 681 });
675 }); 682 });
676 683
684 // Hashes are maintained separately for each page and are preserved when
685 // overlays close.
686 TEST_F('OptionsWebUIExtendedTest', 'CloseOverlayWithHashes', function() {
687 // Open an overlay on top of the search page.
688 PageManager.showPageByName('search', true, {hash: '#1'});
689 this.verifyOpenPages_(['settings', 'search'], 'search#1');
690 PageManager.showPageByName('languages', true, {hash: '#2'});
691 this.verifyOpenPages_(['settings', 'search', 'languages'],
692 'languages#2');
693 PageManager.showPageByName('addLanguage', true, {hash: '#3'});
694 this.verifyOpenPages_(['settings', 'search', 'languages', 'addLanguage'],
695 'addLanguage#3');
696
697 this.verifyHistory_(['', 'search#1', 'languages#2', 'addLanguage#3'],
698 function() {
699 // Close the layer-2 overlay.
700 PageManager.closeOverlay();
701 this.verifyOpenPages_(['settings', 'search', 'languages'], 'languages#2');
702 this.verifyHistory_(
703 ['', 'search#1', 'languages#2', 'addLanguage#3', 'languages#2'],
704 function() {
705 // Close the layer-1 overlay.
706 PageManager.closeOverlay();
707 this.verifyOpenPages_(['settings', 'search'], 'search#1');
708 this.verifyHistory_(
709 ['', 'search#1', 'languages#2', 'addLanguage#3', 'languages#2',
710 'search#1'],
711 testDone);
712 }.bind(this));
713 }.bind(this));
714 });
715
677 // Test that closing an overlay that did not push history when opening does not 716 // Test that closing an overlay that did not push history when opening does not
678 // again push history. 717 // again push history.
679 TEST_F('OptionsWebUIExtendedTest', 'CloseOverlayNoHistory', function() { 718 TEST_F('OptionsWebUIExtendedTest', 'CloseOverlayNoHistory', function() {
680 // Open the do not track confirmation prompt. 719 // Open the do not track confirmation prompt.
681 PageManager.showPageByName('doNotTrackConfirm', false); 720 PageManager.showPageByName('doNotTrackConfirm', false);
682 721
683 // Opening the prompt does not add to the history. 722 // Opening the prompt does not add to the history.
684 this.verifyHistory_([''], function() { 723 this.verifyHistory_([''], function() {
685 // Close the overlay. 724 // Close the overlay.
686 PageManager.closeOverlay(); 725 PageManager.closeOverlay();
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
834 __proto__: OptionsWebUIExtendedTest.prototype, 873 __proto__: OptionsWebUIExtendedTest.prototype,
835 874
836 /** @override */ 875 /** @override */
837 browsePreload: 'chrome://settings-frame/nonexistantPage', 876 browsePreload: 'chrome://settings-frame/nonexistantPage',
838 }; 877 };
839 878
840 TEST_F('OptionsWebUIRedirectTest', 'TestURL', function() { 879 TEST_F('OptionsWebUIRedirectTest', 'TestURL', function() {
841 assertEquals('chrome://settings-frame/', document.location.href); 880 assertEquals('chrome://settings-frame/', document.location.href);
842 this.verifyHistory_([''], testDone); 881 this.verifyHistory_([''], testDone);
843 }); 882 });
OLDNEW
« no previous file with comments | « chrome/browser/resources/options/search_page.js ('k') | ui/webui/resources/js/cr/ui/page_manager/page.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698