Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 /** @fileoverview Suite of tests for the Settings basic page. */ | 5 /** @fileoverview Suite of tests for the Settings basic page. */ |
| 6 | 6 |
| 7 GEN_INCLUDE(['settings_page_browsertest.js']); | 7 GEN_INCLUDE(['settings_page_browsertest.js']); |
| 8 | 8 |
| 9 /** | 9 /** |
| 10 * @constructor | 10 * @constructor |
| 11 * @extends {SettingsPageBrowserTest} | 11 * @extends {SettingsPageBrowserTest} |
| 12 */ | 12 */ |
| 13 function SettingsBasicPageBrowserTest() {} | 13 function SettingsBasicPageBrowserTest() {} |
| 14 | 14 |
| 15 SettingsBasicPageBrowserTest.prototype = { | 15 SettingsBasicPageBrowserTest.prototype = { |
| 16 __proto__: SettingsPageBrowserTest.prototype | 16 __proto__: SettingsPageBrowserTest.prototype |
| 17 }; | 17 }; |
| 18 | 18 |
| 19 // Times out on debug builders and may time out on memory bots because | 19 // Times out on debug builders and may time out on memory bots because |
| 20 // the Settings page can take several seconds to load in a Release build | 20 // the Settings page can take several seconds to load in a Release build |
| 21 // and several times that in a Debug build. See https://crbug.com/558434. | 21 // and several times that in a Debug build. See https://crbug.com/558434. |
| 22 GEN('#if defined(MEMORY_SANITIZER) || !defined(NDEBUG)'); | 22 GEN('#if defined(MEMORY_SANITIZER) || !defined(NDEBUG)'); |
| 23 GEN('#define MAYBE_Load DISABLED_Load'); | 23 GEN('#define MAYBE_Load DISABLED_Load'); |
| 24 GEN('#else'); | 24 GEN('#else'); |
| 25 GEN('#define MAYBE_Load Load'); | 25 GEN('#define MAYBE_Load Load'); |
| 26 GEN('#endif'); | 26 GEN('#endif'); |
| 27 | 27 |
| 28 TEST_F('SettingsBasicPageBrowserTest', 'MAYBE_Load', function() { | 28 TEST_F('SettingsBasicPageBrowserTest', 'MAYBE_Load', function() { |
|
michaelpg
2016/06/06 20:13:04
Load is no longer an appropriate name for this tes
| |
| 29 // Assign |self| to |this| instead of binding since 'this' in suite() | 29 // Assign |self| to |this| instead of binding since 'this' in suite() |
| 30 // and test() will be a Mocha 'Suite' or 'Test' instance. | 30 // and test() will be a Mocha 'Suite' or 'Test' instance. |
| 31 var self = this; | 31 var self = this; |
| 32 | 32 |
| 33 // Register mocha tests. | 33 // Register mocha tests. |
| 34 suite('SettingsPage', function() { | 34 suite('SettingsPage', function() { |
| 35 test('load page', function() { | 35 test('load page', function() { |
| 36 // This will fail if there are any asserts or errors in the Settings page. | 36 // This will fail if there are any asserts or errors in the Settings page. |
| 37 }); | 37 }); |
| 38 | 38 |
| 39 test('basic pages', function() { | 39 test('basic pages', function() { |
| 40 var page = self.getPage('basic'); | 40 var page = self.getPage('basic'); |
| 41 var sections = ['appearance', 'onStartup', 'people', 'search']; | 41 var sections = ['appearance', 'onStartup', 'people', 'search']; |
| 42 expectTrue(!!self.getSection(page, 'appearance')); | 42 expectTrue(!!self.getSection(page, 'appearance')); |
| 43 if (!cr.isChromeOS) | 43 if (!cr.isChromeOS) |
| 44 sections.push('defaultBrowser'); | 44 sections.push('defaultBrowser'); |
| 45 else | 45 else |
| 46 sections = sections.concat(['internet', 'device']); | 46 sections = sections.concat(['internet', 'device']); |
| 47 | 47 |
| 48 for (var i = 0; i < sections.length; i++) { | 48 for (var i = 0; i < sections.length; i++) { |
| 49 var section = self.getSection(page, sections[i]); | 49 var section = self.getSection(page, sections[i]); |
| 50 expectTrue(!!section); | 50 expectTrue(!!section); |
| 51 self.verifySubpagesHidden(section); | 51 self.verifySubpagesHidden(section); |
| 52 } | 52 } |
| 53 }); | 53 }); |
| 54 | |
| 55 // This test checks for a regression that occurred with scrollToSection_ | |
| 56 // failing to find its host element. | |
| 57 test('scroll to section', function() { | |
| 58 // Setting the page and section will cause a scrollToSection_. | |
| 59 self.getPage('basic').currentRoute = { | |
|
michaelpg
2016/06/06 20:13:03
Since this is a test of the entire page, why not t
| |
| 60 page: 'basic', | |
| 61 section: 'onStartup', | |
| 62 subpage: [], | |
| 63 }; | |
| 64 | |
| 65 return new Promise(function(resolve, reject) { | |
| 66 var intervalId = window.setInterval(function() { | |
| 67 var page = self.getPage('basic'); | |
| 68 if (self.getSection(page, page.currentRoute.section)) { | |
|
michaelpg
2016/06/06 20:13:04
Why not actually *check* page.scroller.scrollTop t
| |
| 69 window.clearInterval(intervalId); | |
| 70 resolve(); | |
| 71 } | |
| 72 }, 55); | |
|
michaelpg
2016/06/06 20:13:03
This is an unnecessary use of setInterval when set
| |
| 73 }.bind(self)); | |
| 74 }); | |
| 54 }); | 75 }); |
| 55 | 76 |
| 56 // Run all registered tests. | 77 // Run all registered tests. |
| 57 mocha.run(); | 78 mocha.run(); |
| 58 }); | 79 }); |
| OLD | NEW |