Commit cd44bf7b authored by Theodore Olsauskas-Warren's avatar Theodore Olsauskas-Warren Committed by Commit Bot

Refactor settings and extensions browser tests to use common isVisible

Several browser_test test suites implemented the same version of a
helper function to check if a particular element is visible. This CL
refactor these tests to use an already commonly available util function.

The original isVisible functionality is moved to isChildVisible and
isVisible is adjusted to directly check the element parameter. Call sites
that relied on the previous behavior have been refactored to use
isChildVisible.

Bug: 814436
Change-Id: I1d75f0562cd8ba789fab3e89bbd115ea7c85862b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2030921Reviewed-by: default avatarDemetrios Papadopoulos <dpapad@chromium.org>
Commit-Queue: Theodore Olsauskas-Warren <sauski@google.com>
Cr-Commit-Position: refs/heads/master@{#738653}
parent b1146f0d
...@@ -52,6 +52,7 @@ js_modulizer("modulize") { ...@@ -52,6 +52,7 @@ js_modulizer("modulize") {
"Polymer.dom.flush|flush", "Polymer.dom.flush|flush",
"test_util.eventToPromise|eventToPromise", "test_util.eventToPromise|eventToPromise",
"test_util.flushTasks|flushTasks", "test_util.flushTasks|flushTasks",
"test_util.isChildVisible|isChildVisible",
"test_util.isVisible|isVisible", "test_util.isVisible|isVisible",
"test_util.waitBeforeNextRender|waitBeforeNextRender", "test_util.waitBeforeNextRender|waitBeforeNextRender",
"test_util.whenAttributeIs|whenAttributeIs", "test_util.whenAttributeIs|whenAttributeIs",
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
// clang-format off // clang-format off
// #import 'chrome://resources/cr_elements/cr_view_manager/cr_view_manager.m.js'; // #import 'chrome://resources/cr_elements/cr_view_manager/cr_view_manager.m.js';
// #import {assert} from 'chrome://resources/js/assert.m.js'; // #import {assert} from 'chrome://resources/js/assert.m.js';
// #import {isVisible} from '../test_util.m.js'; // #import {isChildVisible} from '../test_util.m.js';
// clang-format on // clang-format on
/** @fileoverview Suite of tests for cr-view-manager. */ /** @fileoverview Suite of tests for cr-view-manager. */
...@@ -42,7 +42,7 @@ cr.define('cr_view_manager_test', function() { ...@@ -42,7 +42,7 @@ cr.define('cr_view_manager_test', function() {
test(assert(TestNames.Visibility), function() { test(assert(TestNames.Visibility), function() {
function assertViewVisible(id, expectIsVisible) { function assertViewVisible(id, expectIsVisible) {
const expectFunc = expectIsVisible ? expectTrue : expectFalse; const expectFunc = expectIsVisible ? expectTrue : expectFalse;
expectFunc(test_util.isVisible(viewManager, '#' + id, true)); expectFunc(test_util.isChildVisible(viewManager, '#' + id, true));
} }
assertViewVisible('viewOne', false); assertViewVisible('viewOne', false);
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
import 'chrome://extensions/extensions.js'; import 'chrome://extensions/extensions.js';
import {assert} from 'chrome://resources/js/assert.m.js'; import {assert} from 'chrome://resources/js/assert.m.js';
import {isVisible} from '../test_util.m.js'; import {isChildVisible} from '../test_util.m.js';
window.extension_code_section_tests = {}; window.extension_code_section_tests = {};
extension_code_section_tests.suiteName = 'ExtensionCodeSectionTest'; extension_code_section_tests.suiteName = 'ExtensionCodeSectionTest';
...@@ -39,7 +39,7 @@ suite(extension_code_section_tests.suiteName, function() { ...@@ -39,7 +39,7 @@ suite(extension_code_section_tests.suiteName, function() {
message: 'Highlight message', message: 'Highlight message',
}; };
const testIsVisible = isVisible.bind(null, codeSection); const testIsVisible = isChildVisible.bind(null, codeSection);
expectFalse(!!codeSection.code); expectFalse(!!codeSection.code);
expectTrue(codeSection.$$('#scroll-container').hidden); expectTrue(codeSection.$$('#scroll-container').hidden);
expectFalse(testIsVisible('#main')); expectFalse(testIsVisible('#main'));
......
...@@ -8,7 +8,7 @@ import {navigation, Page} from 'chrome://extensions/extensions.js'; ...@@ -8,7 +8,7 @@ import {navigation, Page} from 'chrome://extensions/extensions.js';
import {assert} from 'chrome://resources/js/assert.m.js'; import {assert} from 'chrome://resources/js/assert.m.js';
import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {isVisible} from '../test_util.m.js'; import {isChildVisible} from '../test_util.m.js';
import {createExtensionInfo, MockItemDelegate} from './test_util.js'; import {createExtensionInfo, MockItemDelegate} from './test_util.js';
...@@ -60,7 +60,7 @@ suite(extension_detail_view_tests.suiteName, function() { ...@@ -60,7 +60,7 @@ suite(extension_detail_view_tests.suiteName, function() {
test(assert(extension_detail_view_tests.TestNames.Layout), function() { test(assert(extension_detail_view_tests.TestNames.Layout), function() {
flush(); flush();
const testIsVisible = isVisible.bind(null, item); const testIsVisible = isChildVisible.bind(null, item);
expectTrue(testIsVisible('#closeButton')); expectTrue(testIsVisible('#closeButton'));
expectTrue(testIsVisible('#icon')); expectTrue(testIsVisible('#icon'));
expectTrue(testIsVisible('#enableToggle')); expectTrue(testIsVisible('#enableToggle'));
...@@ -79,15 +79,15 @@ suite(extension_detail_view_tests.suiteName, function() { ...@@ -79,15 +79,15 @@ suite(extension_detail_view_tests.suiteName, function() {
]; ];
const isChecked = id => item.$$(id).checked; const isChecked = id => item.$$(id).checked;
for (let option of accessOptions) { for (let option of accessOptions) {
expectTrue(isVisible(item, option.id)); expectTrue(isChildVisible(item, option.id));
expectFalse(isChecked(option.id), option.id); expectFalse(isChecked(option.id), option.id);
item.set('data.' + option.key + '.isEnabled', false); item.set('data.' + option.key + '.isEnabled', false);
flush(); flush();
expectFalse(isVisible(item, option.id)); expectFalse(isChildVisible(item, option.id));
item.set('data.' + option.key + '.isEnabled', true); item.set('data.' + option.key + '.isEnabled', true);
item.set('data.' + option.key + '.isActive', true); item.set('data.' + option.key + '.isActive', true);
flush(); flush();
expectTrue(isVisible(item, option.id)); expectTrue(isChildVisible(item, option.id));
expectTrue(isChecked(option.id)); expectTrue(isChecked(option.id));
} }
...@@ -260,19 +260,19 @@ suite(extension_detail_view_tests.suiteName, function() { ...@@ -260,19 +260,19 @@ suite(extension_detail_view_tests.suiteName, function() {
item.set('data.location', 'FROM_STORE'); item.set('data.location', 'FROM_STORE');
flush(); flush();
assertEquals('Chrome Web Store', item.$.source.textContent.trim()); assertEquals('Chrome Web Store', item.$.source.textContent.trim());
assertFalse(isVisible(item, '#load-path')); assertFalse(isChildVisible(item, '#load-path'));
item.set('data.location', 'THIRD_PARTY'); item.set('data.location', 'THIRD_PARTY');
flush(); flush();
assertEquals('Added by a third-party', item.$.source.textContent.trim()); assertEquals('Added by a third-party', item.$.source.textContent.trim());
assertFalse(isVisible(item, '#load-path')); assertFalse(isChildVisible(item, '#load-path'));
item.set('data.location', 'UNPACKED'); item.set('data.location', 'UNPACKED');
item.set('data.prettifiedPath', 'foo/bar/baz/'); item.set('data.prettifiedPath', 'foo/bar/baz/');
flush(); flush();
assertEquals('Unpacked extension', item.$.source.textContent.trim()); assertEquals('Unpacked extension', item.$.source.textContent.trim());
// Test whether the load path is displayed for unpacked extensions. // Test whether the load path is displayed for unpacked extensions.
assertTrue(isVisible(item, '#load-path')); assertTrue(isChildVisible(item, '#load-path'));
item.set('data.location', 'UNKNOWN'); item.set('data.location', 'UNKNOWN');
item.set('data.prettifiedPath', ''); item.set('data.prettifiedPath', '');
...@@ -280,7 +280,7 @@ suite(extension_detail_view_tests.suiteName, function() { ...@@ -280,7 +280,7 @@ suite(extension_detail_view_tests.suiteName, function() {
item.set('data.locationText', 'Foo'); item.set('data.locationText', 'Foo');
flush(); flush();
assertEquals('Foo', item.$.source.textContent.trim()); assertEquals('Foo', item.$.source.textContent.trim());
assertFalse(isVisible(item, '#load-path')); assertFalse(isChildVisible(item, '#load-path'));
}); });
test( test(
...@@ -354,7 +354,7 @@ suite(extension_detail_view_tests.suiteName, function() { ...@@ -354,7 +354,7 @@ suite(extension_detail_view_tests.suiteName, function() {
test(assert(extension_detail_view_tests.TestNames.Warnings), function() { test(assert(extension_detail_view_tests.TestNames.Warnings), function() {
const testWarningVisible = function(id, expectVisible) { const testWarningVisible = function(id, expectVisible) {
const f = expectVisible ? expectTrue : expectFalse; const f = expectVisible ? expectTrue : expectFalse;
f(isVisible(item, id)); f(isChildVisible(item, id));
}; };
testWarningVisible('#runtime-warnings', false); testWarningVisible('#runtime-warnings', false);
...@@ -378,7 +378,7 @@ suite(extension_detail_view_tests.suiteName, function() { ...@@ -378,7 +378,7 @@ suite(extension_detail_view_tests.suiteName, function() {
testWarningVisible('#suspicious-warning', false); testWarningVisible('#suspicious-warning', false);
testWarningVisible('#blacklisted-warning', false); testWarningVisible('#blacklisted-warning', false);
testWarningVisible('#update-required-warning', false); testWarningVisible('#update-required-warning', false);
const testIsVisible = isVisible.bind(null, item); const testIsVisible = isChildVisible.bind(null, item);
expectTrue(testIsVisible('#enableToggle')); expectTrue(testIsVisible('#enableToggle'));
expectFalse(testIsVisible('#enableButton')); expectFalse(testIsVisible('#enableButton'));
......
...@@ -9,7 +9,7 @@ import {assert} from 'chrome://resources/js/assert.m.js'; ...@@ -9,7 +9,7 @@ import {assert} from 'chrome://resources/js/assert.m.js';
import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js'; import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js';
import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {isVisible} from '../test_util.m.js'; import {isChildVisible} from '../test_util.m.js';
import {ClickMock, createExtensionInfo} from './test_util.js'; import {ClickMock, createExtensionInfo} from './test_util.js';
...@@ -86,7 +86,7 @@ suite(extension_error_page_tests.suiteName, function() { ...@@ -86,7 +86,7 @@ suite(extension_error_page_tests.suiteName, function() {
test(assert(extension_error_page_tests.TestNames.Layout), function() { test(assert(extension_error_page_tests.TestNames.Layout), function() {
flush(); flush();
const testIsVisible = isVisible.bind(null, errorPage); const testIsVisible = isChildVisible.bind(null, errorPage);
expectTrue(testIsVisible('#closeButton')); expectTrue(testIsVisible('#closeButton'));
expectTrue(testIsVisible('#heading')); expectTrue(testIsVisible('#heading'));
expectTrue(testIsVisible('#errorsList')); expectTrue(testIsVisible('#errorsList'));
......
...@@ -9,7 +9,7 @@ import {assert} from 'chrome://resources/js/assert.m.js'; ...@@ -9,7 +9,7 @@ import {assert} from 'chrome://resources/js/assert.m.js';
import {tap} from 'chrome://resources/polymer/v3_0/iron-test-helpers/mock-interactions.js'; import {tap} from 'chrome://resources/polymer/v3_0/iron-test-helpers/mock-interactions.js';
import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {isVisible} from '../test_util.m.js'; import {isChildVisible} from '../test_util.m.js';
import {TestService} from './test_service.js'; import {TestService} from './test_service.js';
import {createExtensionInfo, MockItemDelegate, testVisible} from './test_util.js'; import {createExtensionInfo, MockItemDelegate, testVisible} from './test_util.js';
...@@ -260,12 +260,15 @@ suite(extension_item_tests.suiteName, function() { ...@@ -260,12 +260,15 @@ suite(extension_item_tests.suiteName, function() {
const kRuntime = 1 << 3; const kRuntime = 1 << 3;
function assertWarnings(mask) { function assertWarnings(mask) {
assertEquals(!!(mask & kCorrupt), isVisible(item, '#corrupted-warning'));
assertEquals( assertEquals(
!!(mask & kSuspicious), isVisible(item, '#suspicious-warning')); !!(mask & kCorrupt), isChildVisible(item, '#corrupted-warning'));
assertEquals( assertEquals(
!!(mask & kBlacklisted), isVisible(item, '#blacklisted-warning')); !!(mask & kSuspicious), isChildVisible(item, '#suspicious-warning'));
assertEquals(!!(mask & kRuntime), isVisible(item, '#runtime-warnings')); assertEquals(
!!(mask & kBlacklisted),
isChildVisible(item, '#blacklisted-warning'));
assertEquals(
!!(mask & kRuntime), isChildVisible(item, '#runtime-warnings'));
} }
assertWarnings(0); assertWarnings(0);
...@@ -298,33 +301,33 @@ suite(extension_item_tests.suiteName, function() { ...@@ -298,33 +301,33 @@ suite(extension_item_tests.suiteName, function() {
}); });
test(assert(extension_item_tests.TestNames.SourceIndicator), function() { test(assert(extension_item_tests.TestNames.SourceIndicator), function() {
expectFalse(isVisible(item, '#source-indicator')); expectFalse(isChildVisible(item, '#source-indicator'));
item.set('data.location', 'UNPACKED'); item.set('data.location', 'UNPACKED');
flush(); flush();
expectTrue(isVisible(item, '#source-indicator')); expectTrue(isChildVisible(item, '#source-indicator'));
const icon = item.$$('#source-indicator iron-icon'); const icon = item.$$('#source-indicator iron-icon');
assertTrue(!!icon); assertTrue(!!icon);
expectEquals('extensions-icons:unpacked', icon.icon); expectEquals('extensions-icons:unpacked', icon.icon);
item.set('data.location', 'THIRD_PARTY'); item.set('data.location', 'THIRD_PARTY');
flush(); flush();
expectTrue(isVisible(item, '#source-indicator')); expectTrue(isChildVisible(item, '#source-indicator'));
expectEquals('extensions-icons:input', icon.icon); expectEquals('extensions-icons:input', icon.icon);
item.set('data.location', 'UNKNOWN'); item.set('data.location', 'UNKNOWN');
flush(); flush();
expectTrue(isVisible(item, '#source-indicator')); expectTrue(isChildVisible(item, '#source-indicator'));
expectEquals('extensions-icons:input', icon.icon); expectEquals('extensions-icons:input', icon.icon);
item.set('data.location', 'FROM_STORE'); item.set('data.location', 'FROM_STORE');
item.set('data.controlledInfo', {type: 'POLICY', text: 'policy'}); item.set('data.controlledInfo', {type: 'POLICY', text: 'policy'});
flush(); flush();
expectTrue(isVisible(item, '#source-indicator')); expectTrue(isChildVisible(item, '#source-indicator'));
expectEquals('extensions-icons:business', icon.icon); expectEquals('extensions-icons:business', icon.icon);
item.set('data.controlledInfo', null); item.set('data.controlledInfo', null);
flush(); flush();
expectFalse(isVisible(item, '#source-indicator')); expectFalse(isChildVisible(item, '#source-indicator'));
}); });
test( test(
......
...@@ -8,7 +8,7 @@ import {isValidKeyCode, Key, keystrokeToString} from 'chrome://extensions/extens ...@@ -8,7 +8,7 @@ import {isValidKeyCode, Key, keystrokeToString} from 'chrome://extensions/extens
import {assert} from 'chrome://resources/js/assert.m.js'; import {assert} from 'chrome://resources/js/assert.m.js';
import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {isVisible} from '../test_util.m.js'; import {isChildVisible} from '../test_util.m.js';
import {TestService} from './test_service.js'; import {TestService} from './test_service.js';
import {createExtensionInfo} from './test_util.js'; import {createExtensionInfo} from './test_util.js';
...@@ -83,7 +83,7 @@ suite(extension_shortcut_tests.suiteName, function() { ...@@ -83,7 +83,7 @@ suite(extension_shortcut_tests.suiteName, function() {
const isVisibleOnCard = function(e, s) { const isVisibleOnCard = function(e, s) {
// We check the light DOM in the card because it's a regular old div, // We check the light DOM in the card because it's a regular old div,
// rather than a fancy-schmancy custom element. // rather than a fancy-schmancy custom element.
return isVisible(e, s, true); return isChildVisible(e, s, true);
}; };
const cards = const cards =
keyboardShortcuts.$$('#container').querySelectorAll('.shortcut-card'); keyboardShortcuts.$$('#container').querySelectorAll('.shortcut-card');
......
...@@ -6,7 +6,7 @@ import 'chrome://extensions/extensions.js'; ...@@ -6,7 +6,7 @@ import 'chrome://extensions/extensions.js';
import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {eventToPromise, isVisible} from '../test_util.m.js'; import {eventToPromise, isChildVisible} from '../test_util.m.js';
import {TestService} from './test_service.js'; import {TestService} from './test_service.js';
...@@ -41,7 +41,7 @@ suite('RuntimeHostPermissions', function() { ...@@ -41,7 +41,7 @@ suite('RuntimeHostPermissions', function() {
element.set('permissions', permissions); element.set('permissions', permissions);
flush(); flush();
const testIsVisible = isVisible.bind(null, element); const testIsVisible = isChildVisible.bind(null, element);
expectTrue(testIsVisible('#host-access')); expectTrue(testIsVisible('#host-access'));
const selectHostAccess = element.$$('#host-access'); const selectHostAccess = element.$$('#host-access');
...@@ -216,7 +216,7 @@ suite('RuntimeHostPermissions', function() { ...@@ -216,7 +216,7 @@ suite('RuntimeHostPermissions', function() {
const addHostButton = element.$$('#add-host'); const addHostButton = element.$$('#add-host');
assertTrue(!!addHostButton); assertTrue(!!addHostButton);
expectTrue(isVisible(element, '#add-host')); expectTrue(isChildVisible(element, '#add-host'));
addHostButton.click(); addHostButton.click();
flush(); flush();
......
...@@ -14,7 +14,7 @@ import {assert} from 'chrome://resources/js/assert.m.js'; ...@@ -14,7 +14,7 @@ import {assert} from 'chrome://resources/js/assert.m.js';
import {keyDownOn, keyUpOn, tap} from 'chrome://resources/polymer/v3_0/iron-test-helpers/mock-interactions.js'; import {keyDownOn, keyUpOn, tap} from 'chrome://resources/polymer/v3_0/iron-test-helpers/mock-interactions.js';
import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {isVisible} from '../test_util.m.js'; import {isChildVisible} from '../test_util.m.js';
import {TestService} from './test_service.js'; import {TestService} from './test_service.js';
...@@ -42,7 +42,7 @@ suite(extension_shortcut_input_tests.suiteName, function() { ...@@ -42,7 +42,7 @@ suite(extension_shortcut_input_tests.suiteName, function() {
test(assert(extension_shortcut_input_tests.TestNames.Basic), function() { test(assert(extension_shortcut_input_tests.TestNames.Basic), function() {
const field = input.$['input']; const field = input.$['input'];
assertEquals('', field.value); assertEquals('', field.value);
const isClearVisible = isVisible.bind(null, input, '#clear', false); const isClearVisible = isChildVisible.bind(null, input, '#clear', false);
expectFalse(isClearVisible()); expectFalse(isClearVisible());
// Click the input. Capture should start. // Click the input. Capture should start.
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
/** @fileoverview Common utilities for extension ui tests. */ /** @fileoverview Common utilities for extension ui tests. */
import {MockController, MockMethod} from '../mock_controller.m.js'; import {MockController, MockMethod} from '../mock_controller.m.js';
import {isVisible} from '../test_util.m.js'; import {isChildVisible} from '../test_util.m.js';
import {TestKioskBrowserProxy} from './test_kiosk_browser_proxy.js'; import {TestKioskBrowserProxy} from './test_kiosk_browser_proxy.js';
...@@ -151,7 +151,7 @@ export function isElementVisible(element) { ...@@ -151,7 +151,7 @@ export function isElementVisible(element) {
*/ */
export function testVisible( export function testVisible(
parentEl, selector, expectedVisible, opt_expectedText) { parentEl, selector, expectedVisible, opt_expectedText) {
const visible = isVisible(parentEl, selector); const visible = isChildVisible(parentEl, selector);
expectEquals(expectedVisible, visible, selector); expectEquals(expectedVisible, visible, selector);
if (expectedVisible && visible && opt_expectedText) { if (expectedVisible && visible && opt_expectedText) {
const element = parentEl.$$(selector); const element = parentEl.$$(selector);
......
...@@ -21,16 +21,6 @@ export function keydown(element, key) { ...@@ -21,16 +21,6 @@ export function keydown(element, key) {
keyDownOn(element, '', [], key); keyDownOn(element, '', [], key);
} }
/**
* @param {!HTMLElement} element
* @return {boolean}
*/
export function isVisible(element) {
return !!(
element.offsetWidth || element.offsetHeight ||
element.getClientRects().length);
}
/** /**
* Asserts the computed style value for an element. * Asserts the computed style value for an element.
* @param {!HTMLElement} element The element. * @param {!HTMLElement} element The element.
......
...@@ -6,8 +6,8 @@ import 'chrome://new-tab-page/voice_search_overlay.js'; ...@@ -6,8 +6,8 @@ import 'chrome://new-tab-page/voice_search_overlay.js';
import {BrowserProxy} from 'chrome://new-tab-page/browser_proxy.js'; import {BrowserProxy} from 'chrome://new-tab-page/browser_proxy.js';
import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js'; import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
import {flushTasks} from 'chrome://test/test_util.m.js'; import {flushTasks, isVisible} from 'chrome://test/test_util.m.js';
import {assertStyle, createTestProxy, isVisible} from './test_support.js'; import {assertStyle, createTestProxy} from './test_support.js';
class MockSpeechRecognition { class MockSpeechRecognition {
constructor() { constructor() {
......
...@@ -484,6 +484,7 @@ CrSettingsPeoplePageSyncAccountControlTest.prototype = { ...@@ -484,6 +484,7 @@ CrSettingsPeoplePageSyncAccountControlTest.prototype = {
/** @override */ /** @override */
extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([
'../test_browser_proxy.js', '../test_browser_proxy.js',
'../test_util.js',
'sync_test_util.js', 'sync_test_util.js',
'test_sync_browser_proxy.js', 'test_sync_browser_proxy.js',
'sync_account_control_test.js', 'sync_account_control_test.js',
......
...@@ -3,14 +3,6 @@ ...@@ -3,14 +3,6 @@
// found in the LICENSE file. // found in the LICENSE file.
cr.define('settings_personalization_options', function() { cr.define('settings_personalization_options', function() {
/**
* @param {!Element} element
* @param {boolean} displayed
*/
function assertVisible(element, displayed) {
assertEquals(
displayed, window.getComputedStyle(element)['display'] != 'none');
}
suite('PersonalizationOptionsTests_AllBuilds', function() { suite('PersonalizationOptionsTests_AllBuilds', function() {
/** @type {settings.TestPrivacyPageBrowserProxy} */ /** @type {settings.TestPrivacyPageBrowserProxy} */
...@@ -83,7 +75,7 @@ cr.define('settings_personalization_options', function() { ...@@ -83,7 +75,7 @@ cr.define('settings_personalization_options', function() {
if (!cr.isChromeOS) { if (!cr.isChromeOS) {
test('signinAllowedToggle', function() { test('signinAllowedToggle', function() {
const toggle = testElement.$.signinAllowedToggle; const toggle = testElement.$.signinAllowedToggle;
assertVisible(toggle, true); assertTrue(test_util.isVisible(toggle));
testElement.syncStatus = {signedIn: false}; testElement.syncStatus = {signedIn: false};
// Check initial setup. // Check initial setup.
...@@ -257,7 +249,7 @@ cr.define('settings_personalization_options', function() { ...@@ -257,7 +249,7 @@ cr.define('settings_personalization_options', function() {
test('LinkDoctor', function() { test('LinkDoctor', function() {
// The Link Doctor setting exists if the |privacySettingsRedesignEnabled| // The Link Doctor setting exists if the |privacySettingsRedesignEnabled|
// has not been turned on. // has not been turned on.
assertVisible(testElement.$$('#linkDoctor'), true); assertTrue(test_util.isChildVisible(testElement, '#linkDoctor'));
}); });
}); });
}); });
...@@ -3,14 +3,6 @@ ...@@ -3,14 +3,6 @@
// found in the LICENSE file. // found in the LICENSE file.
cr.define('settings_privacy_page', function() { cr.define('settings_privacy_page', function() {
/**
* @param {!Element} element
* @param {boolean} displayed
*/
function assertVisible(element, displayed) {
assertEquals(
displayed, window.getComputedStyle(element)['display'] != 'none');
}
/** @implements {settings.ClearBrowsingDataBrowserProxy} */ /** @implements {settings.ClearBrowsingDataBrowserProxy} */
class TestClearBrowsingDataBrowserProxy extends TestBrowserProxy { class TestClearBrowsingDataBrowserProxy extends TestBrowserProxy {
...@@ -396,10 +388,12 @@ cr.define('settings_privacy_page', function() { ...@@ -396,10 +388,12 @@ cr.define('settings_privacy_page', function() {
}); });
Polymer.dom.flush(); Polymer.dom.flush();
assertTrue(!!element.$$('#clearBrowsingDataDialog [slot=footer]')); assertTrue(!!element.$$('#clearBrowsingDataDialog [slot=footer]'));
assertVisible(element.$$('#sync-info'), true); assertTrue(test_util.isChildVisible(element, '#sync-info'));
assertVisible(element.$$('#sync-paused-info'), false); assertFalse(test_util.isChildVisible(element, '#sync-paused-info'));
assertVisible(element.$$('#sync-passphrase-error-info'), false); assertFalse(
assertVisible(element.$$('#sync-other-error-info'), false); test_util.isChildVisible(element, '#sync-passphrase-error-info'));
assertFalse(
test_util.isChildVisible(element, '#sync-other-error-info'));
// Sync is paused. // Sync is paused.
cr.webUIListenerCallback('sync-status-changed', { cr.webUIListenerCallback('sync-status-changed', {
...@@ -408,10 +402,12 @@ cr.define('settings_privacy_page', function() { ...@@ -408,10 +402,12 @@ cr.define('settings_privacy_page', function() {
statusAction: settings.StatusAction.REAUTHENTICATE, statusAction: settings.StatusAction.REAUTHENTICATE,
}); });
Polymer.dom.flush(); Polymer.dom.flush();
assertVisible(element.$$('#sync-info'), false); assertFalse(test_util.isChildVisible(element, '#sync-info'));
assertVisible(element.$$('#sync-paused-info'), true); assertTrue(test_util.isChildVisible(element, '#sync-paused-info'));
assertVisible(element.$$('#sync-passphrase-error-info'), false); assertFalse(
assertVisible(element.$$('#sync-other-error-info'), false); test_util.isChildVisible(element, '#sync-passphrase-error-info'));
assertFalse(
test_util.isChildVisible(element, '#sync-other-error-info'));
// Sync passphrase error. // Sync passphrase error.
cr.webUIListenerCallback('sync-status-changed', { cr.webUIListenerCallback('sync-status-changed', {
...@@ -420,10 +416,12 @@ cr.define('settings_privacy_page', function() { ...@@ -420,10 +416,12 @@ cr.define('settings_privacy_page', function() {
statusAction: settings.StatusAction.ENTER_PASSPHRASE, statusAction: settings.StatusAction.ENTER_PASSPHRASE,
}); });
Polymer.dom.flush(); Polymer.dom.flush();
assertVisible(element.$$('#sync-info'), false); assertFalse(test_util.isChildVisible(element, '#sync-info'));
assertVisible(element.$$('#sync-paused-info'), false); assertFalse(test_util.isChildVisible(element, '#sync-paused-info'));
assertVisible(element.$$('#sync-passphrase-error-info'), true); assertTrue(
assertVisible(element.$$('#sync-other-error-info'), false); test_util.isChildVisible(element, '#sync-passphrase-error-info'));
assertFalse(
test_util.isChildVisible(element, '#sync-other-error-info'));
// Other sync error. // Other sync error.
cr.webUIListenerCallback('sync-status-changed', { cr.webUIListenerCallback('sync-status-changed', {
...@@ -432,10 +430,11 @@ cr.define('settings_privacy_page', function() { ...@@ -432,10 +430,11 @@ cr.define('settings_privacy_page', function() {
statusAction: settings.StatusAction.NO_ACTION, statusAction: settings.StatusAction.NO_ACTION,
}); });
Polymer.dom.flush(); Polymer.dom.flush();
assertVisible(element.$$('#sync-info'), false); assertFalse(test_util.isChildVisible(element, '#sync-info'));
assertVisible(element.$$('#sync-paused-info'), false); assertFalse(test_util.isChildVisible(element, '#sync-paused-info'));
assertVisible(element.$$('#sync-passphrase-error-info'), false); assertFalse(
assertVisible(element.$$('#sync-other-error-info'), true); test_util.isChildVisible(element, '#sync-passphrase-error-info'));
assertTrue(test_util.isChildVisible(element, '#sync-other-error-info'));
}); });
test('ClearBrowsingDataPauseSyncDesktop', function() { test('ClearBrowsingDataPauseSyncDesktop', function() {
...@@ -446,7 +445,7 @@ cr.define('settings_privacy_page', function() { ...@@ -446,7 +445,7 @@ cr.define('settings_privacy_page', function() {
Polymer.dom.flush(); Polymer.dom.flush();
assertTrue(!!element.$$('#clearBrowsingDataDialog [slot=footer]')); assertTrue(!!element.$$('#clearBrowsingDataDialog [slot=footer]'));
const syncInfo = element.$$('#sync-info'); const syncInfo = element.$$('#sync-info');
assertVisible(syncInfo, true); assertTrue(test_util.isVisible(syncInfo));
const signoutLink = syncInfo.querySelector('a[href]'); const signoutLink = syncInfo.querySelector('a[href]');
assertTrue(!!signoutLink); assertTrue(!!signoutLink);
assertEquals(0, testSyncBrowserProxy.getCallCount('pauseSync')); assertEquals(0, testSyncBrowserProxy.getCallCount('pauseSync'));
...@@ -463,7 +462,7 @@ cr.define('settings_privacy_page', function() { ...@@ -463,7 +462,7 @@ cr.define('settings_privacy_page', function() {
Polymer.dom.flush(); Polymer.dom.flush();
assertTrue(!!element.$$('#clearBrowsingDataDialog [slot=footer]')); assertTrue(!!element.$$('#clearBrowsingDataDialog [slot=footer]'));
const syncInfo = element.$$('#sync-paused-info'); const syncInfo = element.$$('#sync-paused-info');
assertVisible(syncInfo, true); assertTrue(test_util.isVisible(syncInfo));
const signinLink = syncInfo.querySelector('a[href]'); const signinLink = syncInfo.querySelector('a[href]');
assertTrue(!!signinLink); assertTrue(!!signinLink);
assertEquals(0, testSyncBrowserProxy.getCallCount('startSignIn')); assertEquals(0, testSyncBrowserProxy.getCallCount('startSignIn'));
...@@ -480,7 +479,7 @@ cr.define('settings_privacy_page', function() { ...@@ -480,7 +479,7 @@ cr.define('settings_privacy_page', function() {
Polymer.dom.flush(); Polymer.dom.flush();
assertTrue(!!element.$$('#clearBrowsingDataDialog [slot=footer]')); assertTrue(!!element.$$('#clearBrowsingDataDialog [slot=footer]'));
const syncInfo = element.$$('#sync-passphrase-error-info'); const syncInfo = element.$$('#sync-passphrase-error-info');
assertVisible(syncInfo, true); assertTrue(test_util.isVisible(syncInfo));
const passphraseLink = syncInfo.querySelector('a[href]'); const passphraseLink = syncInfo.querySelector('a[href]');
assertTrue(!!passphraseLink); assertTrue(!!passphraseLink);
passphraseLink.click(); passphraseLink.click();
......
...@@ -111,20 +111,27 @@ cr.define('test_util', function() { ...@@ -111,20 +111,27 @@ cr.define('test_util', function() {
} }
/** /**
* Returns whether or not the element specified is visible. This is different * Returns whether or not the element specified is visible.
* from isElementVisible in that this function attempts to search for the * @param {!HTMLElement} element
* element within a parent element, which means you can use it to check if * @return {boolean}
* the element exists at all. */
/* #export */ function isVisible(element) {
const rect = element ? element.getBoundingClientRect() : null;
return (!!rect && rect.width * rect.height > 0);
}
/**
* Searches the DOM of the parentEl element for a child matching the provided
* selector then checks the visibility of the child.
* @param {!HTMLElement} parentEl * @param {!HTMLElement} parentEl
* @param {string} selector * @param {string} selector
* @param {boolean=} checkLightDom * @param {boolean=} checkLightDom
* @return {boolean} * @return {boolean}
*/ */
/* #export */ function isVisible(parentEl, selector, checkLightDom) { /* #export */ function isChildVisible(parentEl, selector, checkLightDom) {
const element = (checkLightDom ? parentEl.querySelector : parentEl.$$) const element = (checkLightDom ? parentEl.querySelector : parentEl.$$)
.call(parentEl, selector); .call(parentEl, selector);
const rect = element ? element.getBoundingClientRect() : null; return isVisible(element);
return !!rect && rect.width * rect.height > 0;
} }
// #cr_define_end // #cr_define_end
...@@ -133,6 +140,7 @@ cr.define('test_util', function() { ...@@ -133,6 +140,7 @@ cr.define('test_util', function() {
fakeDataBind: fakeDataBind, fakeDataBind: fakeDataBind,
flushTasks: flushTasks, flushTasks: flushTasks,
isVisible: isVisible, isVisible: isVisible,
isChildVisible: isChildVisible,
waitAfterNextRender: waitAfterNextRender, waitAfterNextRender: waitAfterNextRender,
waitBeforeNextRender: waitBeforeNextRender, waitBeforeNextRender: waitBeforeNextRender,
whenAttributeIs: whenAttributeIs, whenAttributeIs: whenAttributeIs,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment