Commit 38ad3880 authored by John Lee's avatar John Lee Committed by Commit Bot

WebUI Tab Strip: Add type checking for DragManager test

Bug: 1000989
Change-Id: I965f1a0ebc3cffca8a66043e90540cc3740e41c7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2209277Reviewed-by: default avatardpapad <dpapad@chromium.org>
Commit-Queue: John Lee <johntlee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#770379}
parent 852a4dad
......@@ -16,7 +16,8 @@ js_type_check("closure_compile") {
deps = [
#":alert_indicator_test",
#":alert_indicators_test",
#":drag_manager_test",
":drag_manager_test",
#":tab_group_test",
#":tab_list_test",
#":tab_swiper_test",
......@@ -39,3 +40,17 @@ js_library("test_tabs_api_proxy") {
"//chrome/browser/resources/tab_strip:tabs_api_proxy",
]
}
js_library("drag_manager_test") {
deps = [
":test_tabs_api_proxy",
"..:chai_assert",
"//chrome/browser/resources/tab_strip:drag_manager",
"//chrome/browser/resources/tab_strip:tab",
"//chrome/browser/resources/tab_strip:tab_group",
"//chrome/browser/resources/tab_strip:tabs_api_proxy",
"//ui/webui/resources/js:cr.m",
"//ui/webui/resources/js:load_time_data.m",
]
externs_list = [ "$externs_path/mocha-2.5.js" ]
}
......@@ -3,19 +3,24 @@
// found in the LICENSE file.
import {isChromeOS} from 'chrome://resources/js/cr.m.js';
import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
import {DragManager, PLACEHOLDER_GROUP_ID, PLACEHOLDER_TAB_ID} from 'chrome://tab-strip/drag_manager.js';
import {DragManager, DragManagerDelegate, PLACEHOLDER_GROUP_ID, PLACEHOLDER_TAB_ID} from 'chrome://tab-strip/drag_manager.js';
import {TabElement} from 'chrome://tab-strip/tab.js';
import {TabGroupElement} from 'chrome://tab-strip/tab_group.js';
import {TabsApiProxyImpl} from 'chrome://tab-strip/tabs_api_proxy.js';
import {TabData, TabsApiProxyImpl} from 'chrome://tab-strip/tabs_api_proxy.js';
import {assertEquals, assertFalse, assertTrue} from '../chai_assert.js';
import {TestTabsApiProxy} from './test_tabs_api_proxy.js';
/** @implements {DragManagerDelegate} */
class MockDelegate extends HTMLElement {
/** @override */
getIndexOfTab(tabElement) {
return Array.from(this.querySelectorAll('tabstrip-tab'))
.indexOf(tabElement);
}
/** @override */
placeTabElement(element, index, pinned, groupId) {
element.remove();
......@@ -24,14 +29,11 @@ class MockDelegate extends HTMLElement {
parent.insertBefore(element, this.children[index]);
}
/** @override */
placeTabGroupElement(element, index) {
element.remove();
this.insertBefore(element, this.children[index]);
}
showDropPlaceholder(element) {
this.appendChild(element);
}
}
customElements.define('mock-delegate', MockDelegate);
......@@ -39,32 +41,41 @@ class MockDataTransfer extends DataTransfer {
constructor() {
super();
/** @private {!Object} */
this.dragImageData = {
image: undefined,
offsetX: undefined,
offsetY: undefined,
};
/** @private {string} */
this.dropEffect_ = 'none';
/** @private {string} */
this.effectAllowed_ = 'none';
}
/** @override */
get dropEffect() {
return this.dropEffect_;
}
/** @override */
set dropEffect(effect) {
this.dropEffect_ = effect;
}
/** @override */
get effectAllowed() {
return this.effectAllowed_;
}
/** @override */
set effectAllowed(effect) {
this.effectAllowed_ = effect;
}
/** @override */
setDragImage(image, offsetX, offsetY) {
this.dragImageData.image = image;
this.dragImageData.offsetX = offsetX;
......@@ -107,11 +118,13 @@ suite('DragManager', () => {
* @return {!TabGroupElement}
*/
function groupTab(tabElement, groupId) {
const groupElement = document.createElement('tabstrip-tab-group');
const groupElement = /** @type {!TabGroupElement} */ (
document.createElement('tabstrip-tab-group'));
groupElement.setAttribute('data-group-id', groupId);
delegate.replaceChild(groupElement, tabElement);
tabElement.tab = Object.assign({}, tabElement.tab, {groupId});
tabElement.tab =
/** @type {!TabData} */ (Object.assign({}, tabElement.tab, {groupId}));
groupElement.appendChild(tabElement);
return groupElement;
}
......
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