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