This change: * removes all WCT-related BUILD rules and updates documentation. * removes WCT packages * updates test utils and test methods for cleaning up data between tests (Karma run all tests in a single window, so after each test global state must be restored) Change-Id: I922fa95f9fd63546290461f2476d12a41a7d3aa1
72 lines
2.4 KiB
JavaScript
72 lines
2.4 KiB
JavaScript
/**
|
|
* @license
|
|
* Copyright (C) 2017 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
import {_testOnly_resetPluginLoader} from '../elements/shared/gr-js-api-interface/gr-plugin-loader.js';
|
|
import {testOnly_resetInternalState} from '../elements/shared/gr-js-api-interface/gr-api-utils.js';
|
|
import {_testOnly_resetEndpoints} from '../elements/shared/gr-js-api-interface/gr-plugin-endpoints.js';
|
|
import {KeyboardShortcutBinder, _testOnly_getShortcutManagerInstance} from '../behaviors/keyboard-shortcut-behavior/keyboard-shortcut-behavior.js';
|
|
|
|
export const mockPromise = () => {
|
|
let res;
|
|
const promise = new Promise(resolve => {
|
|
res = resolve;
|
|
});
|
|
promise.resolve = res;
|
|
return promise;
|
|
};
|
|
export const isHidden = el => getComputedStyle(el).display === 'none';
|
|
|
|
// Some tests/elements can define its own binding. We want to restore bindings
|
|
// at the end of the test. The TestKeyboardShortcutBinder store bindings in
|
|
// stack, so it is possible to override bindings in nested suites.
|
|
export class TestKeyboardShortcutBinder {
|
|
static push() {
|
|
if (!this.stack) {
|
|
this.stack = [];
|
|
}
|
|
const testBinder = new TestKeyboardShortcutBinder();
|
|
this.stack.push(testBinder);
|
|
return KeyboardShortcutBinder;
|
|
}
|
|
|
|
static pop() {
|
|
this.stack.pop()._restoreShortcuts();
|
|
}
|
|
|
|
constructor() {
|
|
this._originalBinding = new Map(
|
|
_testOnly_getShortcutManagerInstance().bindings);
|
|
}
|
|
|
|
_restoreShortcuts() {
|
|
const bindings = _testOnly_getShortcutManagerInstance().bindings;
|
|
bindings.clear();
|
|
this._originalBinding.forEach((value, key) => {
|
|
bindings.set(key, value);
|
|
});
|
|
}
|
|
}
|
|
|
|
// Provide reset plugins function to clear installed plugins between tests.
|
|
// No gr-app found (running tests)
|
|
export const resetPlugins = () => {
|
|
testOnly_resetInternalState();
|
|
_testOnly_resetEndpoints();
|
|
const pl = _testOnly_resetPluginLoader();
|
|
pl.loadPlugins([]);
|
|
};
|