// Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License. See License.txt in the project root for license information.
//
///
///
///
///
///
module WinJSTests {
"use strict"
var COUNT = 2;
var commonUtils = Helper;
function mouseTest(element, flipView, rawData, complete) {
function isButtonVisible(button) {
return getComputedStyle(button).visibility === "visible" && +getComputedStyle(button).opacity === 1 && getComputedStyle(button).display !== "none";
}
var tests = [
function () {
if (!flipView._environmentSupportsTouch) {
complete();
return;
}
LiveUnit.Assert.isFalse(isButtonVisible(flipView._prevButton), "Prev button not hidden on initialization");
LiveUnit.Assert.isFalse(isButtonVisible(flipView._nextButton), "Next button not hidden on initialization");
var event = commonUtils.createPointerEvent("mouse");
commonUtils.initPointerEvent(event, "pointermove", true, true, window, 0, window.screenLeft + 10, window.screenTop + 10, 10, 10, false, false, false, false, 0, null, 10, 10, 0, 0, 0, 0, 0, 0, 0, (event['MSPOINTER_TYPE_MOUSE'] || "mouse"), 0, true);
flipView._contentDiv.dispatchEvent(event);
if (!flipView._nextButtonAnimation) {
LiveUnit.Assert.fail("nextButtonAnimation is null/undefined on fade in");
complete();
return;
}
flipView._nextButtonAnimation.then(function () {
LiveUnit.Assert.isFalse(isButtonVisible(flipView._prevButton), "Prev button appeared after pointermove on first item");
LiveUnit.Assert.isTrue(isButtonVisible(flipView._nextButton), "Next button did not appear on pointermove");
if (!flipView._buttonFadePromise) {
LiveUnit.Assert.fail("button fade promise is null/undefined");
complete();
return;
}
return flipView._buttonFadePromise;
}).then(function () {
if (!flipView._nextButtonAnimation) {
LiveUnit.Assert.fail("nextButtonAnimation is null on fade out");
complete();
return;
}
return flipView._nextButtonAnimation;
}).then(function () {
LiveUnit.Assert.isFalse(isButtonVisible(flipView._prevButton), "Prev button appeared on first item after buttonFadePromise");
LiveUnit.Assert.isFalse(isButtonVisible(flipView._nextButton), "Next button not hidden after buttonFadePromise");
complete();
return;
});
}
];
runFlipViewTests(flipView, tests);
}
export class FlipViewMouseEventTest {
setUp() {
LiveUnit.LoggingCore.logComment("In setup");
var newNode = document.createElement("div");
newNode.id = "BasicFlipView";
newNode.style.width = "400px";
newNode.style.height = "400px";
document.body.appendChild(newNode);
}
tearDown() {
LiveUnit.LoggingCore.logComment("in tearDown");
var element = document.getElementById("BasicFlipView");
if (element) {
WinJS.Utilities.disposeSubTree(element);
document.body.removeChild(element);
}
}
};
function generate(name, testFunction) {
function generateTest(orientation) {
FlipViewMouseEventTest.prototype[name + "_" + orientation] = function (complete) {
var element = document.getElementById("BasicFlipView"),
testData = createArraySource(COUNT, ["400px"], ["400px"]),
rawData = testData.rawData,
options = { itemDataSource: testData.dataSource, itemTemplate: basicInstantRenderer, orientation: orientation };
var flipView = new WinJS.UI.FlipView(element, options);
testFunction(element, flipView, rawData, complete);
};
}
[true, false].forEach(function () {
generateTest("horizontal");
generateTest("vertical");
});
};
generate("testFlipViewMouseEvents", function (element, flipView, rawData, complete) {
mouseTest(element, flipView, rawData, complete);
});
}
LiveUnit.registerTestClass("WinJSTests.FlipViewMouseEventTest");