MainMenu angefangen

This commit is contained in:
silas 2018-09-22 16:50:24 +02:00
parent a6f7fa8c3e
commit 7393ea00ba
15 changed files with 789 additions and 637 deletions

View File

@ -8,3 +8,4 @@
2018-09-22T00:58:53+02:00 ERR (3): syntax error, unexpected '$request' (T_VARIABLE) - ErrorCode: 0 File: /var/www/pwa/wordRotator/src/module/Application/src/Controller/SyncController.php Line: 108 2018-09-22T00:58:53+02:00 ERR (3): syntax error, unexpected '$request' (T_VARIABLE) - ErrorCode: 0 File: /var/www/pwa/wordRotator/src/module/Application/src/Controller/SyncController.php Line: 108
2018-09-22T01:00:24+02:00 ERR (3): syntax error, unexpected '$request' (T_VARIABLE) - ErrorCode: 0 File: /var/www/pwa/wordRotator/src/module/Application/src/Controller/SyncController.php Line: 108 2018-09-22T01:00:24+02:00 ERR (3): syntax error, unexpected '$request' (T_VARIABLE) - ErrorCode: 0 File: /var/www/pwa/wordRotator/src/module/Application/src/Controller/SyncController.php Line: 108
2018-09-22T01:01:25+02:00 ERR (3): 2018-09-22T01:01:25+02:00 ERR (3):
2018-09-22T12:55:44+02:00 ERR (3):

View File

@ -8,3 +8,4 @@
2018-09-22T00:58:53+02:00 ERR (3): syntax error, unexpected '$request' (T_VARIABLE) - ErrorCode: 0 File: /var/www/pwa/wordRotator/src/module/Application/src/Controller/SyncController.php Line: 108 2018-09-22T00:58:53+02:00 ERR (3): syntax error, unexpected '$request' (T_VARIABLE) - ErrorCode: 0 File: /var/www/pwa/wordRotator/src/module/Application/src/Controller/SyncController.php Line: 108
2018-09-22T01:00:24+02:00 ERR (3): syntax error, unexpected '$request' (T_VARIABLE) - ErrorCode: 0 File: /var/www/pwa/wordRotator/src/module/Application/src/Controller/SyncController.php Line: 108 2018-09-22T01:00:24+02:00 ERR (3): syntax error, unexpected '$request' (T_VARIABLE) - ErrorCode: 0 File: /var/www/pwa/wordRotator/src/module/Application/src/Controller/SyncController.php Line: 108
2018-09-22T01:01:25+02:00 ERR (3): 2018-09-22T01:01:25+02:00 ERR (3):
2018-09-22T12:55:44+02:00 ERR (3):

1
orga/credits.txt Normal file
View File

@ -0,0 +1 @@
single_coin_on_concrete https://www.freesfx.co.uk/

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -1953,8 +1953,7 @@ class SiteManager {
this.titleElement = document.querySelector(".top-bar-title"); this.titleElement = document.querySelector(".top-bar-title");
const defaultTitleElem = document.createElement("span"); const defaultTitleElem = document.createElement("span");
while(this.titleElement.childNodes.length > 0) while (this.titleElement.childNodes.length > 0) {
{
const child = this.titleElement.firstChild; const child = this.titleElement.firstChild;
child.remove(); child.remove();
defaultTitleElem.appendChild(child); defaultTitleElem.appendChild(child);
@ -1964,7 +1963,6 @@ class SiteManager {
element: defaultTitleElem, element: defaultTitleElem,
title: document.title title: document.title
}; };
console.log(this.defaultTitle);
let siteManager = this; let siteManager = this;
window.onpopstate = function (e) { window.onpopstate = function (e) {
@ -1997,11 +1995,10 @@ class SiteManager {
return this.defaultActions; return this.defaultActions;
} }
startSite(siteConstructor, paramsPromise) { async startSite(siteConstructor, paramsPromise) {
if (!(siteConstructor.prototype instanceof AbstractSite)) if (!(siteConstructor.prototype instanceof AbstractSite)) {
{
throw { throw {
"error": "wrong class given! Expected AbstractSite, given "+siteConstructor.name "error": "wrong class given! Expected AbstractSite, given " + siteConstructor.name
}; };
} }
@ -2014,16 +2011,14 @@ class SiteManager {
let siteContainer = new SiteContainer(site, resolver); let siteContainer = new SiteContainer(site, resolver);
this.siteDiv.removeAllChildren().appendChild(Helper.createLoadingSymbol()); this.siteDiv.removeAllChildren().appendChild(Helper.createLoadingSymbol());
let manager = this; this.siteStartingPromise = Promise.resolve(paramsPromise).then(async (params) => {
this.siteStartingPromise = new Promise(function (resolve) { siteContainer.setStartParameters(params);
Promise.resolve(paramsPromise).then(function (params) { await Promise.all([site.onConstruct(params), site.inflatePromise]);
siteContainer.setStartParameters(params);
return Promise.all([site.onConstruct(params), site.inflatePromise]); site.actionMenu = site.createActionBarMenu(this.buildActionBarMenu());
}).then(function () { return this.show(siteContainer);
site.actionMenu = site.createActionBarMenu(manager.buildActionBarMenu()); }).catch((e) => {
}).then(function () { console.error("site start error:", e);
resolve(manager.show(siteContainer));
});
}); });
return finishPromise; return finishPromise;
@ -4610,8 +4605,6 @@ class ScaleHelper {
} }
async _getNewFontSize(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight, setFontSize) { async _getNewFontSize(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight, setFontSize) {
margin = Helper.nonNull(margin, 10); margin = Helper.nonNull(margin, 10);
ignoreHeight = Helper.nonNull(ignoreHeight, false); ignoreHeight = Helper.nonNull(ignoreHeight, false);
ignoreWidth = Helper.nonNull(ignoreWidth, false); ignoreWidth = Helper.nonNull(ignoreWidth, false);
@ -4624,8 +4617,6 @@ class ScaleHelper {
container.classList.add("no-transition"); container.classList.add("no-transition");
} }
// debugger;
let beforeFontSize = fontElement.style.fontSize; let beforeFontSize = fontElement.style.fontSize;
let currentFontSize = 1; let currentFontSize = 1;
let diff = 0; let diff = 0;
@ -4652,8 +4643,6 @@ class ScaleHelper {
diff = newDiff; diff = newDiff;
} while ((widthDiff > (1 - scale) * containerWidth || ignoreWidth) && (heightDiff > (1 - scale) * containerHeight || ignoreHeight)); } while ((widthDiff > (1 - scale) * containerWidth || ignoreWidth) && (heightDiff > (1 - scale) * containerHeight || ignoreHeight));
console.log(setFontSize, currentFontSize, beforeFontSize, fontElement.style.fontSize, fontElement);
currentFontSize -= margin; currentFontSize -= margin;
fontElement.style.fontSize = ((setFontSize) ? currentFontSize + "px" : beforeFontSize); fontElement.style.fontSize = ((setFontSize) ? currentFontSize + "px" : beforeFontSize);
@ -5614,8 +5603,6 @@ class EndSite extends WordRotatorBaseSite{
class LevelSite extends WordRotatorBaseSite { class LevelSite extends WordRotatorBaseSite {
constructor(siteManager) { constructor(siteManager) {
super(siteManager, "html/application/level.html"); super(siteManager, "html/application/level.html");
this.levelScaler = () => {
};
} }
createActionBarMenu(menu) { createActionBarMenu(menu) {
@ -5633,12 +5620,27 @@ class LevelSite extends WordRotatorBaseSite {
onConstruct(args) { onConstruct(args) {
this.levelCounter = Helper.nonNull(localStorage.getItem("levelCounter"), 1); this.levelCounter = Helper.nonNull(localStorage.getItem("levelCounter"), 1);
this.levelScaler = () => {
};
this.wonParams = {
aborted: false,
coinCounterTimer: null,
audio: new Audio()
};
this.wonParams.audioPromise = Promise.race([new Promise(resolve => {
this.wonParams.audio.addEventListener('loadeddata', resolve);
}),
new Promise(resolve => {
this.wonParams.audio.addEventListener('error', resolve);
})
]);
this.wonParams.audio.src = Helper.basePath("sound/single_coin_fall_on_concrete_.mp3");
return super.onConstruct(args); return super.onConstruct(args);
} }
async onFirstStart() { async onFirstStart() {
super.onFirstStart(); super.onFirstStart();
let leafSegmentTemplate = this.findBy("#segment-leaf-template"); let leafSegmentTemplate = this.findBy("#segment-leaf-template");
let parentSegmentTemplate = this.findBy("#segment-parent-template"); let parentSegmentTemplate = this.findBy("#segment-parent-template");
let rowSegmentTemplate = this.findBy("#segment-row-template"); let rowSegmentTemplate = this.findBy("#segment-row-template");
@ -5694,7 +5696,7 @@ class LevelSite extends WordRotatorBaseSite {
let currentLevelInfo = localStorage.getItem("currentLevel"); let currentLevelInfo = localStorage.getItem("currentLevel");
if (currentLevelInfo !== null) { if (currentLevelInfo !== null) {
currentLevelInfo = JSON.parse(currentLevelInfo); currentLevelInfo = JSON.parse(currentLevelInfo);
console.log("LevelID: ", currentLevelInfo["id"]); // console.log("LevelID: ", currentLevelInfo["id"]);
const db = WordRotatorDb.getInstance(); const db = WordRotatorDb.getInstance();
const levelJson = await db.loadLevel(currentLevelInfo["id"]); const levelJson = await db.loadLevel(currentLevelInfo["id"]);
@ -5765,6 +5767,9 @@ class LevelSite extends WordRotatorBaseSite {
this.coinAction.setTitle(Helper.nonNull(localStorage.getItem("coins"), "0")); this.coinAction.setTitle(Helper.nonNull(localStorage.getItem("coins"), "0"));
this.coinAction.redraw(); this.coinAction.redraw();
this.wonParams.aborted = true;
clearTimeout(this.wonParams.coinCounterTimer);
} }
catch (e) { catch (e) {
console.error(e); console.error(e);
@ -5808,33 +5813,36 @@ class LevelSite extends WordRotatorBaseSite {
let coinsBefore = parseInt(Helper.nonNull(localStorage.getItem("coins"), "0")); let coinsBefore = parseInt(Helper.nonNull(localStorage.getItem("coins"), "0"));
localStorage.setItem("coins", coinsBefore + parseInt(coinsPerLevel)); localStorage.setItem("coins", coinsBefore + parseInt(coinsPerLevel));
let audio = new Audio();
let coinPromise = Promise.all([new Promise((r) => { let coinPromise = Promise.all([new Promise((r) => {
setTimeout(r, 500); setTimeout(() => {
}), r(continueButton.fadeIn());
new Promise(r => { }, 500);
audio.addEventListener('loadeddata', r); }), this.wonParams.audioPromise]);
})
]);
audio.src = Helper.basePath("sound/single_coin_fall_on_concrete_.mp3");
this.wonParams.aborted = false;
let audio = this.wonParams.audio;
for (let i = 0; i < coinsPerLevel; i++) { for (let i = 0; i < coinsPerLevel; i++) {
let coinElem = Helper.cloneNode(this.coinTemplate); let coinElem = Helper.cloneNode(this.coinTemplate);
this.coinContainer.appendChild(coinElem); this.coinContainer.appendChild(coinElem);
coinPromise = coinPromise.then(() => { coinPromise = coinPromise.then(() => {
return new Promise(r => { return new Promise(r => {
let timeout = 350; let timeout = 350;
coinElem.fadeIn(timeout / 1000);
if (audio !== null) {
audio.pause();
audio.currentTime = 0;
audio.play();
}
setTimeout(() => { if (!this.wonParams.aborted) {
this.coinAction.setTitle(coinsBefore++); coinElem.fadeIn(timeout / 1000);
this.coinAction.redraw(); if (audio !== null) {
}, timeout / 2); audio.pause();
audio.currentTime = 0;
audio.play();
}
this.wonParams.coinCounterTimer = setTimeout(() => {
this.coinAction.setTitle(coinsBefore++);
this.coinAction.redraw();
}, timeout / 2);
}
//Always do the next promise for garbage collection
setTimeout(r, timeout); setTimeout(r, timeout);
}) })
}); });
@ -5844,9 +5852,9 @@ class LevelSite extends WordRotatorBaseSite {
this.continueButtonScaler(); this.continueButtonScaler();
this.levelScaler(); this.levelScaler();
coinPromise.then(() => { // coinPromise.then(() => {
continueButton.fadeIn(); // continueButton.fadeIn();
}); // });
await savePromise; await savePromise;
} }
catch (e) { catch (e) {
@ -5884,6 +5892,20 @@ class LevelSite extends WordRotatorBaseSite {
} }
} }
class MenuSite extends WordRotatorBaseSite{
constructor(siteManager) {
super(siteManager, "html/application/menu.html");
}
onFirstStart() {
super.onFirstStart();
this.findBy("#play-button").addEventListener("click", () => {
this.startSite(LevelSite);
});
}
}
class SynchronizeSite extends WordRotatorBaseSite { class SynchronizeSite extends WordRotatorBaseSite {
constructor(siteManager) { constructor(siteManager) {
@ -5898,7 +5920,8 @@ class SynchronizeSite extends WordRotatorBaseSite {
onFirstStart() { onFirstStart() {
super.onFirstStart(); super.onFirstStart();
this.startSite(LevelSite); this.startSite(MenuSite);
this.finish();
} }
async loadLevels() { async loadLevels() {

View File

@ -41,8 +41,6 @@ class ScaleHelper {
} }
async _getNewFontSize(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight, setFontSize) { async _getNewFontSize(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight, setFontSize) {
margin = Helper.nonNull(margin, 10); margin = Helper.nonNull(margin, 10);
ignoreHeight = Helper.nonNull(ignoreHeight, false); ignoreHeight = Helper.nonNull(ignoreHeight, false);
ignoreWidth = Helper.nonNull(ignoreWidth, false); ignoreWidth = Helper.nonNull(ignoreWidth, false);
@ -55,8 +53,6 @@ class ScaleHelper {
container.classList.add("no-transition"); container.classList.add("no-transition");
} }
// debugger;
let beforeFontSize = fontElement.style.fontSize; let beforeFontSize = fontElement.style.fontSize;
let currentFontSize = 1; let currentFontSize = 1;
let diff = 0; let diff = 0;
@ -83,8 +79,6 @@ class ScaleHelper {
diff = newDiff; diff = newDiff;
} while ((widthDiff > (1 - scale) * containerWidth || ignoreWidth) && (heightDiff > (1 - scale) * containerHeight || ignoreHeight)); } while ((widthDiff > (1 - scale) * containerWidth || ignoreWidth) && (heightDiff > (1 - scale) * containerHeight || ignoreHeight));
console.log(setFontSize, currentFontSize, beforeFontSize, fontElement.style.fontSize, fontElement);
currentFontSize -= margin; currentFontSize -= margin;
fontElement.style.fontSize = ((setFontSize) ? currentFontSize + "px" : beforeFontSize); fontElement.style.fontSize = ((setFontSize) ? currentFontSize + "px" : beforeFontSize);

View File

@ -1953,8 +1953,7 @@ class SiteManager {
this.titleElement = document.querySelector(".top-bar-title"); this.titleElement = document.querySelector(".top-bar-title");
const defaultTitleElem = document.createElement("span"); const defaultTitleElem = document.createElement("span");
while(this.titleElement.childNodes.length > 0) while (this.titleElement.childNodes.length > 0) {
{
const child = this.titleElement.firstChild; const child = this.titleElement.firstChild;
child.remove(); child.remove();
defaultTitleElem.appendChild(child); defaultTitleElem.appendChild(child);
@ -1964,7 +1963,6 @@ class SiteManager {
element: defaultTitleElem, element: defaultTitleElem,
title: document.title title: document.title
}; };
console.log(this.defaultTitle);
let siteManager = this; let siteManager = this;
window.onpopstate = function (e) { window.onpopstate = function (e) {
@ -1997,11 +1995,10 @@ class SiteManager {
return this.defaultActions; return this.defaultActions;
} }
startSite(siteConstructor, paramsPromise) { async startSite(siteConstructor, paramsPromise) {
if (!(siteConstructor.prototype instanceof AbstractSite)) if (!(siteConstructor.prototype instanceof AbstractSite)) {
{
throw { throw {
"error": "wrong class given! Expected AbstractSite, given "+siteConstructor.name "error": "wrong class given! Expected AbstractSite, given " + siteConstructor.name
}; };
} }
@ -2014,16 +2011,14 @@ class SiteManager {
let siteContainer = new SiteContainer(site, resolver); let siteContainer = new SiteContainer(site, resolver);
this.siteDiv.removeAllChildren().appendChild(Helper.createLoadingSymbol()); this.siteDiv.removeAllChildren().appendChild(Helper.createLoadingSymbol());
let manager = this; this.siteStartingPromise = Promise.resolve(paramsPromise).then(async (params) => {
this.siteStartingPromise = new Promise(function (resolve) { siteContainer.setStartParameters(params);
Promise.resolve(paramsPromise).then(function (params) { await Promise.all([site.onConstruct(params), site.inflatePromise]);
siteContainer.setStartParameters(params);
return Promise.all([site.onConstruct(params), site.inflatePromise]); site.actionMenu = site.createActionBarMenu(this.buildActionBarMenu());
}).then(function () { return this.show(siteContainer);
site.actionMenu = site.createActionBarMenu(manager.buildActionBarMenu()); }).catch((e) => {
}).then(function () { console.error("site start error:", e);
resolve(manager.show(siteContainer));
});
}); });
return finishPromise; return finishPromise;

View File

@ -0,0 +1,77 @@
<div class='max-height flex-center'>
<b>WordRotator</b>
<div class="segment segment-parent layer-2 rotate-360">
<div class="child-container">
<div class="segment segment-parent rotate-360">
<div class="child-container">
<div class="segment segment-leaf">
<div class="leaf-element">W</div>
</div>
<div class="segment segment-leaf">
<div class="leaf-element">O</div>
</div>
<br>
<div class="segment segment-leaf">
<div class="leaf-element">R</div>
</div>
<div class="segment segment-leaf">
<div class="leaf-element">&nbsp;</div>
</div>
</div>
</div>
<div class="segment segment-parent rotate-360">
<div class="child-container">
<div class="segment segment-leaf">
<div class="leaf-element">R</div>
</div>
<div class="segment segment-leaf">
<div class="leaf-element">D</div>
</div>
<br>
<div class="segment segment-leaf">
<div class="leaf-element">&nbsp;</div>
</div>
<div class="segment segment-leaf">
<div class="leaf-element">&nbsp;</div>
</div>
</div>
</div>
<br>
<div class="segment segment-parent rotate-360">
<div class="child-container">
<div class="segment segment-leaf">
<div class="leaf-element">O</div>
</div>
<div class="segment segment-leaf">
<div class="leaf-element">&nbsp;</div>
</div>
<br>
<div class="segment segment-leaf">
<div class="leaf-element">T</div>
</div>
<div class="segment segment-leaf">
<div class="leaf-element">A</div>
</div>
</div>
</div>
<div class="segment segment-parent rotate-360">
<div class="child-container">
<div class="segment segment-leaf">
<div class="leaf-element">&nbsp;</div>
</div>
<div class="segment segment-leaf">
<div class="leaf-element">R</div>
</div>
<br>
<div class="segment segment-leaf">
<div class="leaf-element">T</div>
</div>
<div class="segment segment-leaf">
<div class="leaf-element">O</div>
</div>
</div>
</div>
</div>
</div>
<button class='button' data-translation="play" id='play-button'></button>
</div>

View File

@ -12,8 +12,6 @@ import {WordRotatorBaseSite} from "./WordRotatorBaseSite";
export class LevelSite extends WordRotatorBaseSite { export class LevelSite extends WordRotatorBaseSite {
constructor(siteManager) { constructor(siteManager) {
super(siteManager, "html/application/level.html"); super(siteManager, "html/application/level.html");
this.levelScaler = () => {
};
} }
createActionBarMenu(menu) { createActionBarMenu(menu) {
@ -31,12 +29,27 @@ export class LevelSite extends WordRotatorBaseSite {
onConstruct(args) { onConstruct(args) {
this.levelCounter = Helper.nonNull(localStorage.getItem("levelCounter"), 1); this.levelCounter = Helper.nonNull(localStorage.getItem("levelCounter"), 1);
this.levelScaler = () => {
};
this.wonParams = {
aborted: false,
coinCounterTimer: null,
audio: new Audio()
};
this.wonParams.audioPromise = Promise.race([new Promise(resolve => {
this.wonParams.audio.addEventListener('loadeddata', resolve);
}),
new Promise(resolve => {
this.wonParams.audio.addEventListener('error', resolve);
})
]);
this.wonParams.audio.src = Helper.basePath("sound/single_coin_fall_on_concrete_.mp3");
return super.onConstruct(args); return super.onConstruct(args);
} }
async onFirstStart() { async onFirstStart() {
super.onFirstStart(); super.onFirstStart();
let leafSegmentTemplate = this.findBy("#segment-leaf-template"); let leafSegmentTemplate = this.findBy("#segment-leaf-template");
let parentSegmentTemplate = this.findBy("#segment-parent-template"); let parentSegmentTemplate = this.findBy("#segment-parent-template");
let rowSegmentTemplate = this.findBy("#segment-row-template"); let rowSegmentTemplate = this.findBy("#segment-row-template");
@ -92,7 +105,7 @@ export class LevelSite extends WordRotatorBaseSite {
let currentLevelInfo = localStorage.getItem("currentLevel"); let currentLevelInfo = localStorage.getItem("currentLevel");
if (currentLevelInfo !== null) { if (currentLevelInfo !== null) {
currentLevelInfo = JSON.parse(currentLevelInfo); currentLevelInfo = JSON.parse(currentLevelInfo);
console.log("LevelID: ", currentLevelInfo["id"]); // console.log("LevelID: ", currentLevelInfo["id"]);
const db = WordRotatorDb.getInstance(); const db = WordRotatorDb.getInstance();
const levelJson = await db.loadLevel(currentLevelInfo["id"]); const levelJson = await db.loadLevel(currentLevelInfo["id"]);
@ -163,6 +176,9 @@ export class LevelSite extends WordRotatorBaseSite {
this.coinAction.setTitle(Helper.nonNull(localStorage.getItem("coins"), "0")); this.coinAction.setTitle(Helper.nonNull(localStorage.getItem("coins"), "0"));
this.coinAction.redraw(); this.coinAction.redraw();
this.wonParams.aborted = true;
clearTimeout(this.wonParams.coinCounterTimer);
} }
catch (e) { catch (e) {
console.error(e); console.error(e);
@ -206,33 +222,36 @@ export class LevelSite extends WordRotatorBaseSite {
let coinsBefore = parseInt(Helper.nonNull(localStorage.getItem("coins"), "0")); let coinsBefore = parseInt(Helper.nonNull(localStorage.getItem("coins"), "0"));
localStorage.setItem("coins", coinsBefore + parseInt(coinsPerLevel)); localStorage.setItem("coins", coinsBefore + parseInt(coinsPerLevel));
let audio = new Audio();
let coinPromise = Promise.all([new Promise((r) => { let coinPromise = Promise.all([new Promise((r) => {
setTimeout(r, 500) setTimeout(() => {
}), r(continueButton.fadeIn());
new Promise(r => { }, 500)
audio.addEventListener('loadeddata', r); }), this.wonParams.audioPromise]);
})
]);
audio.src = Helper.basePath("sound/single_coin_fall_on_concrete_.mp3");
this.wonParams.aborted = false;
let audio = this.wonParams.audio;
for (let i = 0; i < coinsPerLevel; i++) { for (let i = 0; i < coinsPerLevel; i++) {
let coinElem = Helper.cloneNode(this.coinTemplate); let coinElem = Helper.cloneNode(this.coinTemplate);
this.coinContainer.appendChild(coinElem); this.coinContainer.appendChild(coinElem);
coinPromise = coinPromise.then(() => { coinPromise = coinPromise.then(() => {
return new Promise(r => { return new Promise(r => {
let timeout = 350; let timeout = 350;
coinElem.fadeIn(timeout / 1000);
if (audio !== null) {
audio.pause();
audio.currentTime = 0;
audio.play();
}
setTimeout(() => { if (!this.wonParams.aborted) {
this.coinAction.setTitle(coinsBefore++); coinElem.fadeIn(timeout / 1000);
this.coinAction.redraw(); if (audio !== null) {
}, timeout / 2); audio.pause();
audio.currentTime = 0;
audio.play();
}
this.wonParams.coinCounterTimer = setTimeout(() => {
this.coinAction.setTitle(coinsBefore++);
this.coinAction.redraw();
}, timeout / 2);
}
//Always do the next promise for garbage collection
setTimeout(r, timeout); setTimeout(r, timeout);
}) })
}); });
@ -242,9 +261,9 @@ export class LevelSite extends WordRotatorBaseSite {
this.continueButtonScaler(); this.continueButtonScaler();
this.levelScaler(); this.levelScaler();
coinPromise.then(() => { // coinPromise.then(() => {
continueButton.fadeIn(); // continueButton.fadeIn();
}); // });
await savePromise; await savePromise;
} }
catch (e) { catch (e) {

View File

@ -0,0 +1,15 @@
import {WordRotatorBaseSite} from "./WordRotatorBaseSite";
import {LevelSite} from "./LevelSite";
export class MenuSite extends WordRotatorBaseSite{
constructor(siteManager) {
super(siteManager, "html/application/menu.html");
}
onFirstStart() {
super.onFirstStart();
this.findBy("#play-button").addEventListener("click", () => {
this.startSite(LevelSite);
})
}
}

View File

@ -3,6 +3,7 @@ import {DataManager} from "../../../../../js/lib/pwa-core";
import {WordRotatorDb} from "../WordRotatorDb"; import {WordRotatorDb} from "../WordRotatorDb";
import {LevelSite} from "./LevelSite"; import {LevelSite} from "./LevelSite";
import {WordRotatorBaseSite} from "./WordRotatorBaseSite"; import {WordRotatorBaseSite} from "./WordRotatorBaseSite";
import {MenuSite} from "./MenuSite";
export class SynchronizeSite extends WordRotatorBaseSite { export class SynchronizeSite extends WordRotatorBaseSite {
@ -18,7 +19,8 @@ export class SynchronizeSite extends WordRotatorBaseSite {
onFirstStart() { onFirstStart() {
super.onFirstStart(); super.onFirstStart();
this.startSite(LevelSite); this.startSite(MenuSite);
this.finish();
} }
async loadLevels() { async loadLevels() {

View File

@ -1,4 +1,6 @@
import { Selector } from 'testcafe'; import { Selector } from 'testcafe';
import {mainTest} from "./test";
fixture `betaPlay` fixture `betaPlay`
.page `http://beta.wordrotator.silas.link` .page `http://beta.wordrotator.silas.link`
@ -8,274 +10,277 @@ fixture `betaPlay`
}); });
test('Play', async t => { test('Play', async t => {
const SEGMENT = { await t.wait(20000);
ONE: 0, await mainTest(t);
TWO: 1,
THREE: 2,
FOUR: 3,
FIVE: 4,
SIX : 5,
SEVEN: 6,
EIGHT : 7,
NINE: 8,
TEN: 9,
ELEVEN: 10,
TWELVE: 11,
THIRTEEN: 12,
FOURTEEN: 13,
FIFTEEN: 14,
SIXTEEN: 15,
SEVENTEEN: 16,
EIGHTEEN:17,
NINETEEN: 18,
TWENTY:19,
TWENTYONE:20
};
await t // const SEGMENT = {
//first Level // ONE: 0,
.expect(Selector('.segment.segment-parent.rotate-90').nth(0).getStyleProperty('transform')).eql("matrix(0, 1, -1, 0, 0, 0)") // TWO: 1,
.expect(Selector('.segment.segment-parent.rotate-90').nth(1).getStyleProperty('transform')).eql("matrix(0, 1, -1, 0, 0, 0)") // THREE: 2,
.expect(Selector('.segment.segment-parent.rotate-270').getStyleProperty('transform')).eql("matrix(0, -1, 1, 0, 0, 0)") // FOUR: 3,
.expect(Selector('#won-text').getStyleProperty('visibility')).eql("hidden") // FIVE: 4,
.expect(Selector('#continue-button').getStyleProperty('visibility')).eql("hidden") // SIX : 5,
.expect(Selector('#level-number').textContent).eql("1") // SEVEN: 6,
.click(Selector('.segment-parent').nth(SEGMENT.THREE)) // EIGHT : 7,
.expect(Selector('.segment.segment-parent.rotate-360').getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)") // NINE: 8,
.click(Selector('.segment-parent').nth(SEGMENT.ONE)) // TEN: 9,
.click(Selector('.segment-parent').nth(SEGMENT.TWO)) // ELEVEN: 10,
.click(Selector('.segment-parent').nth(SEGMENT.ONE)) // TWELVE: 11,
.click(Selector('.segment-parent').nth(SEGMENT.TWO)) // THIRTEEN: 12,
.click(Selector('.segment-parent').nth(SEGMENT.ONE)) // FOURTEEN: 13,
.click(Selector('.segment-parent').nth(SEGMENT.TWO)) // FIFTEEN: 14,
.expect(Selector('.segment.segment-parent.rotate-360').nth(1).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)") // SIXTEEN: 15,
.expect(Selector('#won-text').visible).eql(true) // SEVENTEEN: 16,
.expect(Selector('#continue-button').visible).eql(true) // EIGHTEEN:17,
.click(Selector('#continue-button')) // NINETEEN: 18,
// TWENTY:19,
//TWOLevel // TWENTYONE:20
.expect(Selector('.segment.segment-parent.rotate-270').nth(0).textContent).eql("BOAL") // };
.expect(Selector('.segment.segment-parent.rotate-180').textContent).eql("DEAR") //
.expect(Selector('.segment.segment-parent.rotate-360').textContent).eql("NSMR") // await t
.expect(Selector('.segment.segment-parent.rotate-270').nth(1).textContent).eql("EEUF") // //first Level
.expect(Selector('.segment.segment-parent.rotate-270').nth(0).getStyleProperty('transform')).eql("matrix(0, -1, 1, 0, 0, 0)") // .expect(Selector('.segment.segment-parent.rotate-90').nth(0).getStyleProperty('transform')).eql("matrix(0, 1, -1, 0, 0, 0)")
.expect(Selector('.segment.segment-parent.rotate-180').getStyleProperty('transform')).eql("matrix(-1, 0, 0, -1, 0, 0)") // .expect(Selector('.segment.segment-parent.rotate-90').nth(1).getStyleProperty('transform')).eql("matrix(0, 1, -1, 0, 0, 0)")
.expect(Selector('.segment.segment-parent.rotate-360').getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)") // .expect(Selector('.segment.segment-parent.rotate-270').getStyleProperty('transform')).eql("matrix(0, -1, 1, 0, 0, 0)")
.expect(Selector('.segment.segment-parent.rotate-270').nth(1).getStyleProperty('transform')).eql("matrix(0, -1, 1, 0, 0, 0)") // .expect(Selector('#won-text').getStyleProperty('visibility')).eql("hidden")
.expect(Selector('#continue-button').getStyleProperty('visibility')).eql("hidden") // .expect(Selector('#continue-button').getStyleProperty('visibility')).eql("hidden")
.expect(Selector('#level-number').textContent).eql("2") // .expect(Selector('#level-number').textContent).eql("1")
.expect(Selector('#won-text').getStyleProperty('visibility')).eql("hidden") // .click(Selector('.segment-parent').nth(SEGMENT.THREE))
.click(Selector('.segment-parent').nth(SEGMENT.TWO)) // .expect(Selector('.segment.segment-parent.rotate-360').getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.click(Selector('.segment-parent').nth(SEGMENT.ONE)) // .click(Selector('.segment-parent').nth(SEGMENT.ONE))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR)) // .click(Selector('.segment-parent').nth(SEGMENT.TWO))
.click(Selector('.segment-parent').nth(SEGMENT.TWO)) // .click(Selector('.segment-parent').nth(SEGMENT.ONE))
.expect(Selector('.segment-parent').nth(SEGMENT.TWO).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)") // .click(Selector('.segment-parent').nth(SEGMENT.TWO))
.click(Selector('.segment-parent').nth(SEGMENT.TWO)) // .click(Selector('.segment-parent').nth(SEGMENT.ONE))
.expect(Selector('.segment-parent').nth(SEGMENT.TWO).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)") // .click(Selector('.segment-parent').nth(SEGMENT.TWO))
.expect(Selector('#won-text').visible).eql(true) // .expect(Selector('.segment.segment-parent.rotate-360').nth(1).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.expect(Selector('#continue-button').visible).eql(true) // .expect(Selector('#won-text').visible).eql(true)
.click(Selector('#continue-button')) // .expect(Selector('#continue-button').visible).eql(true)
// .click(Selector('#continue-button'))
//THREE Level //
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).textContent).eql("ZEHO") // //TWOLevel
.expect(Selector('.segment-parent').nth(SEGMENT.TWO).textContent).eql("ITCH") // .expect(Selector('.segment.segment-parent.rotate-270').nth(0).textContent).eql("BOAL")
.expect(Selector('.segment-parent').nth(SEGMENT.THREE).textContent).eql("STSA") // .expect(Selector('.segment.segment-parent.rotate-180').textContent).eql("DEAR")
.expect(Selector('.segment-parent').nth(SEGMENT.FOUR).textContent).eql("RAIS") // .expect(Selector('.segment.segment-parent.rotate-360').textContent).eql("NSMR")
.expect(Selector('.segment-parent').nth(SEGMENT.FIVE).textContent).eql("FEON") // .expect(Selector('.segment.segment-parent.rotate-270').nth(1).textContent).eql("EEUF")
.click(Selector('.segment-parent').nth(SEGMENT.ONE)) // .expect(Selector('.segment.segment-parent.rotate-270').nth(0).getStyleProperty('transform')).eql("matrix(0, -1, 1, 0, 0, 0)")
.click(Selector('.segment-parent').nth(SEGMENT.FIVE)) // .expect(Selector('.segment.segment-parent.rotate-180').getStyleProperty('transform')).eql("matrix(-1, 0, 0, -1, 0, 0)")
.click(Selector('.segment-parent').nth(SEGMENT.THREE)) // .expect(Selector('.segment.segment-parent.rotate-360').getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.click(Selector('.segment-parent').nth(SEGMENT.ONE)) // .expect(Selector('.segment.segment-parent.rotate-270').nth(1).getStyleProperty('transform')).eql("matrix(0, -1, 1, 0, 0, 0)")
.click(Selector('.segment-parent').nth(SEGMENT.FIVE)) // .expect(Selector('#continue-button').getStyleProperty('visibility')).eql("hidden")
.click(Selector('.segment-parent').nth(SEGMENT.ONE)) // .expect(Selector('#level-number').textContent).eql("2")
.click(Selector('.segment-parent').nth(SEGMENT.FOUR)) // .expect(Selector('#won-text').getStyleProperty('visibility')).eql("hidden")
.click(Selector('.segment-parent').nth(SEGMENT.FIVE)) // .click(Selector('.segment-parent').nth(SEGMENT.TWO))
.click(Selector('#continue-button')) // .click(Selector('.segment-parent').nth(SEGMENT.ONE))
// .click(Selector('.segment-parent').nth(SEGMENT.FOUR))
//4. Level // .click(Selector('.segment-parent').nth(SEGMENT.TWO))
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).textContent).eql("FERÜINCKPHREYSSI") // .expect(Selector('.segment-parent').nth(SEGMENT.TWO).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.expect(Selector('.segment-parent').nth(SEGMENT.TWO).textContent).eql("FERÜ") // .click(Selector('.segment-parent').nth(SEGMENT.TWO))
.expect(Selector('.segment-parent').nth(SEGMENT.THREE).textContent).eql("INCK") // .expect(Selector('.segment-parent').nth(SEGMENT.TWO).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.expect(Selector('.segment-parent').nth(SEGMENT.FOUR).textContent).eql("PHRE") // .expect(Selector('#won-text').visible).eql(true)
.expect(Selector('.segment-parent').nth(SEGMENT.FIVE).textContent).eql("YSSI") // .expect(Selector('#continue-button').visible).eql(true)
.expect(Selector('.segment-parent').nth(SEGMENT.SIX).textContent).eql("BEHE") // .click(Selector('#continue-button'))
.expect(Selector('.segment-parent').nth(SEGMENT.SEVEN).textContent).eql("RARZ") //
.expect(Selector('.segment-parent').nth(SEGMENT.EIGHT).textContent).eql("GUFA") // //THREE Level
.expect(Selector('.segment-parent').nth(SEGMENT.NINE).textContent).eql("SSLL") // .expect(Selector('.segment-parent').nth(SEGMENT.ONE).textContent).eql("ZEHO")
.expect(Selector('.segment-parent').nth(SEGMENT.TEN).textContent).eql("IKDEERNZTULANGND") // .expect(Selector('.segment-parent').nth(SEGMENT.TWO).textContent).eql("ITCH")
.expect(Selector('.segment-parent').nth(SEGMENT.ELEVEN).textContent).eql("IKDE") // .expect(Selector('.segment-parent').nth(SEGMENT.THREE).textContent).eql("STSA")
.expect(Selector('.segment-parent').nth(SEGMENT.TWELVE).textContent).eql("ERNZ") // .expect(Selector('.segment-parent').nth(SEGMENT.FOUR).textContent).eql("RAIS")
.expect(Selector('.segment-parent').nth(SEGMENT.THIRTEEN).textContent).eql("TULA") // .expect(Selector('.segment-parent').nth(SEGMENT.FIVE).textContent).eql("FEON")
.expect(Selector('.segment-parent').nth(SEGMENT.FOURTEEN).textContent).eql("NGND") // .click(Selector('.segment-parent').nth(SEGMENT.ONE))
.drag(Selector('.segment-parent').nth(SEGMENT.TEN), 128, 4, { // .click(Selector('.segment-parent').nth(SEGMENT.FIVE))
offsetX: 54, // .click(Selector('.segment-parent').nth(SEGMENT.THREE))
offsetY: 17 // .click(Selector('.segment-parent').nth(SEGMENT.ONE))
}) // .click(Selector('.segment-parent').nth(SEGMENT.FIVE))
.drag(Selector('.segment-parent').nth(SEGMENT.ONE), 128, 3, { // .click(Selector('.segment-parent').nth(SEGMENT.ONE))
offsetX: 54, // .click(Selector('.segment-parent').nth(SEGMENT.FOUR))
offsetY: 17 // .click(Selector('.segment-parent').nth(SEGMENT.FIVE))
}) // .click(Selector('#continue-button'))
.drag(Selector('.segment-parent').nth(SEGMENT.TEN).find('div').withText('I'), 128, 4, { //
offsetX: 27, // //4. Level
offsetY: 41 // .expect(Selector('.segment-parent').nth(SEGMENT.ONE).textContent).eql("FERÜINCKPHREYSSI")
}) // .expect(Selector('.segment-parent').nth(SEGMENT.TWO).textContent).eql("FERÜ")
.drag(Selector('.segment-parent').nth(SEGMENT.ONE).find('div').withText('S'), 10, 144, { // .expect(Selector('.segment-parent').nth(SEGMENT.THREE).textContent).eql("INCK")
offsetX: 64, // .expect(Selector('.segment-parent').nth(SEGMENT.FOUR).textContent).eql("PHRE")
offsetY: 32 // .expect(Selector('.segment-parent').nth(SEGMENT.FIVE).textContent).eql("YSSI")
}) // .expect(Selector('.segment-parent').nth(SEGMENT.SIX).textContent).eql("BEHE")
.drag(Selector('.segment-parent').nth(SEGMENT.TEN), 128, 4, { // .expect(Selector('.segment-parent').nth(SEGMENT.SEVEN).textContent).eql("RARZ")
offsetX: 27, // .expect(Selector('.segment-parent').nth(SEGMENT.EIGHT).textContent).eql("GUFA")
offsetY: 41 // .expect(Selector('.segment-parent').nth(SEGMENT.NINE).textContent).eql("SSLL")
}) // .expect(Selector('.segment-parent').nth(SEGMENT.TEN).textContent).eql("IKDEERNZTULANGND")
.click(Selector('.segment-parent').nth(SEGMENT.NINE)) // .expect(Selector('.segment-parent').nth(SEGMENT.ELEVEN).textContent).eql("IKDE")
.click(Selector('.segment-parent').nth(SEGMENT.EIGHT)) // .expect(Selector('.segment-parent').nth(SEGMENT.TWELVE).textContent).eql("ERNZ")
.click(Selector('.segment-parent').nth(SEGMENT.NINE)) // .expect(Selector('.segment-parent').nth(SEGMENT.THIRTEEN).textContent).eql("TULA")
.click(Selector('.segment-parent').nth(SEGMENT.FOUR)) // .expect(Selector('.segment-parent').nth(SEGMENT.FOURTEEN).textContent).eql("NGND")
.click(Selector('.segment-parent').nth(SEGMENT.ELEVEN)) // .drag(Selector('.segment-parent').nth(SEGMENT.TEN), 128, 4, {
.click(Selector('.segment-parent').nth(SEGMENT.FOUR)) // offsetX: 54,
.click(Selector('.segment-parent').nth(SEGMENT.ELEVEN)) // offsetY: 17
.click(Selector('.segment-parent').nth(SEGMENT.FIVE)) // })
.click(Selector('.segment-parent').nth(SEGMENT.FOUR)) // .drag(Selector('.segment-parent').nth(SEGMENT.ONE), 128, 3, {
.click(Selector('.segment-parent').nth(SEGMENT.ELEVEN)) // offsetX: 54,
.click(Selector('.segment-parent').nth(SEGMENT.TWELVE)) // offsetY: 17
.click(Selector('.segment-parent').nth(SEGMENT.FIVE)) // })
.click(Selector('.segment-parent').nth(SEGMENT.SIX)) // .drag(Selector('.segment-parent').nth(SEGMENT.TEN).find('div').withText('I'), 128, 4, {
.click(Selector('.segment-parent').nth(SEGMENT.TWELVE)) // offsetX: 27,
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN)) // offsetY: 41
.click(Selector('.segment-parent').nth(SEGMENT.SIX)) // })
.expect(Selector('#continue-button').visible).eql(true) // .drag(Selector('.segment-parent').nth(SEGMENT.ONE).find('div').withText('S'), 10, 144, {
.expect(Selector('#won-text').visible).eql(true) // offsetX: 64,
.click(Selector('#continue-button')) // offsetY: 32
// })
//5. Level // .drag(Selector('.segment-parent').nth(SEGMENT.TEN), 128, 4, {
.expect(Selector('#level-number').textContent).eql("5") // offsetX: 27,
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).textContent).eql("BEANTOBEALBALEUM") // offsetY: 41
.expect(Selector('.segment-parent').nth(SEGMENT.SIX).textContent).eql("NUTUNGNGRGHAIEUS") // })
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)") // .click(Selector('.segment-parent').nth(SEGMENT.NINE))
.expect(Selector('.segment-parent').nth(SEGMENT.SIX).getStyleProperty('transform')).eql("matrix(0, 1, -1, 0, 0, 0)") // .click(Selector('.segment-parent').nth(SEGMENT.EIGHT))
// .click(Selector('.segment-parent').nth(SEGMENT.NINE))
.click(Selector('.segment-parent').nth(SEGMENT.THREE)) // .click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR)) // .click(Selector('.segment-parent').nth(SEGMENT.ELEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.TWO)) // .click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.drag(Selector('.segment-parent').nth(SEGMENT.SIX).find('div').withText('U'), 3, 159, { // .click(Selector('.segment-parent').nth(SEGMENT.ELEVEN))
offsetX: 69, // .click(Selector('.segment-parent').nth(SEGMENT.FIVE))
offsetY: 150 // .click(Selector('.segment-parent').nth(SEGMENT.FOUR))
}) // .click(Selector('.segment-parent').nth(SEGMENT.ELEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN)) // .click(Selector('.segment-parent').nth(SEGMENT.TWELVE))
.click(Selector('.segment-parent').nth(SEGMENT.THREE)) // .click(Selector('.segment-parent').nth(SEGMENT.FIVE))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR)) // .click(Selector('.segment-parent').nth(SEGMENT.SIX))
.click(Selector('.segment-parent').nth(SEGMENT.FIVE)) // .click(Selector('.segment-parent').nth(SEGMENT.TWELVE))
.drag(Selector('.segment-parent').nth(SEGMENT.SIX), 3, 123, { // .click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
offsetX: 86, // .click(Selector('.segment-parent').nth(SEGMENT.SIX))
offsetY: 133 // .expect(Selector('#continue-button').visible).eql(true)
}) // .expect(Selector('#won-text').visible).eql(true)
.click(Selector('.segment-parent').nth(SEGMENT.THREE)) // .click(Selector('#continue-button'))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR)) //
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN)) // //5. Level
.drag(Selector('.segment-parent').nth(SEGMENT.SIX), 10, 123, { // .expect(Selector('#level-number').textContent).eql("5")
offsetX: 60, // .expect(Selector('.segment-parent').nth(SEGMENT.ONE).textContent).eql("BEANTOBEALBALEUM")
offsetY: 137 // .expect(Selector('.segment-parent').nth(SEGMENT.SIX).textContent).eql("NUTUNGNGRGHAIEUS")
}) // .expect(Selector('.segment-parent').nth(SEGMENT.ONE).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.expect(Selector('#won-text').visible).eql(true) // .expect(Selector('.segment-parent').nth(SEGMENT.SIX).getStyleProperty('transform')).eql("matrix(0, 1, -1, 0, 0, 0)")
.expect(Selector('#continue-button').visible).eql(true) //
.click(Selector('#continue-button')) // .click(Selector('.segment-parent').nth(SEGMENT.THREE))
// .click(Selector('.segment-parent').nth(SEGMENT.FOUR))
// .click(Selector('.segment-parent').nth(SEGMENT.TWO))
//Level 6 // .drag(Selector('.segment-parent').nth(SEGMENT.SIX).find('div').withText('U'), 3, 159, {
.expect(Selector('#level-number').textContent).eql("6") // offsetX: 69,
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).textContent).eql("FEGEHLISARBEBERE") // offsetY: 150
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)") // })
.expect(Selector('.segment-parent').nth(SEGMENT.TEN).getStyleProperty('transform')).eql("matrix(-1, 0, 0, -1, 0, 0)") // .click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
.expect(Selector('.segment-parent').nth(SEGMENT.TEN).textContent).eql("ITITSPSCIKARAROT") // .click(Selector('.segment-parent').nth(SEGMENT.THREE))
// .click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR)) // .click(Selector('.segment-parent').nth(SEGMENT.FIVE))
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN)) // .drag(Selector('.segment-parent').nth(SEGMENT.SIX), 3, 123, {
.click(Selector('.segment-parent').nth(SEGMENT.NINE)) // offsetX: 86,
.drag(Selector('.segment-parent').nth(SEGMENT.TEN).find('div').withText('A'), 106, -4, { // offsetY: 133
offsetX: 33, // })
offsetY: 18 // .click(Selector('.segment-parent').nth(SEGMENT.THREE))
}) // .click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR)) // .click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.SIX)) // .drag(Selector('.segment-parent').nth(SEGMENT.SIX), 10, 123, {
.click(Selector('.segment-parent').nth(SEGMENT.TWENTY)) // offsetX: 60,
.click(Selector('.segment-parent').nth(SEGMENT.TWELVE)) // offsetY: 137
.click(Selector('.segment-parent').nth(SEGMENT.NINE)) // })
.click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN)) // .expect(Selector('#won-text').visible).eql(true)
.click(Selector('.segment-parent').nth(SEGMENT.TWENTYONE)) // .expect(Selector('#continue-button').visible).eql(true)
.click(Selector('.segment-parent').nth(SEGMENT.TWO)) // .click(Selector('#continue-button'))
.click(Selector('.segment-parent').nth(SEGMENT.EIGHT)) //
.click(Selector('.segment-parent').nth(SEGMENT.ELEVEN)) //
.click(Selector('.segment-parent').nth(SEGMENT.NINE)) // //Level 6
.click(Selector('.segment-parent').nth(SEGMENT.TWELVE)) // .expect(Selector('#level-number').textContent).eql("6")
.click(Selector('.segment-parent').nth(SEGMENT.FOUR)) // .expect(Selector('.segment-parent').nth(SEGMENT.ONE).textContent).eql("FEGEHLISARBEBERE")
.click(Selector('.segment-parent').nth(SEGMENT.FOURTEEN)) // .expect(Selector('.segment-parent').nth(SEGMENT.ONE).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN)) // .expect(Selector('.segment-parent').nth(SEGMENT.TEN).getStyleProperty('transform')).eql("matrix(-1, 0, 0, -1, 0, 0)")
.click(Selector('.segment-parent').nth(SEGMENT.SIXTEEN)) // .expect(Selector('.segment-parent').nth(SEGMENT.TEN).textContent).eql("ITITSPSCIKARAROT")
.click(Selector('.segment-parent').nth(SEGMENT.TWELVE)) //
.click(Selector('.segment-parent').nth(SEGMENT.NINETEEN)) // .click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.TWENTYONE)) // .click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.TWENTY)) // .click(Selector('.segment-parent').nth(SEGMENT.NINE))
.click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN)) // .drag(Selector('.segment-parent').nth(SEGMENT.TEN).find('div').withText('A'), 106, -4, {
.click(Selector('.segment-parent').nth(SEGMENT.TWENTY)) // offsetX: 33,
.click(Selector('.segment-parent').nth(SEGMENT.SEVENTEEN)) // offsetY: 18
.click(Selector('.segment-parent').nth(SEGMENT.SIXTEEN)) // })
.click(Selector('.segment-parent').nth(SEGMENT.FOURTEEN)) // .click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.NINETEEN)) // .click(Selector('.segment-parent').nth(SEGMENT.SIX))
.click(Selector('.segment-parent').nth(SEGMENT.TWENTYONE)) // .click(Selector('.segment-parent').nth(SEGMENT.TWENTY))
.drag(Selector('.segment-parent').nth(SEGMENT.TEN).find('div').withText('P'), 169, -3, { // .click(Selector('.segment-parent').nth(SEGMENT.TWELVE))
offsetX: 22, // .click(Selector('.segment-parent').nth(SEGMENT.NINE))
offsetY: 16 // .click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
}) // .click(Selector('.segment-parent').nth(SEGMENT.TWENTYONE))
.expect(Selector('div').withText('P').nth(11).find('.segment.segment-parent.layer-2.rotate-360').getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)") // .click(Selector('.segment-parent').nth(SEGMENT.TWO))
.expect(Selector('#continue-button').visible).eql(true) // .click(Selector('.segment-parent').nth(SEGMENT.EIGHT))
.expect(Selector('#won-text').visible).eql(true) // .click(Selector('.segment-parent').nth(SEGMENT.ELEVEN))
.click(Selector('#continue-button')) // .click(Selector('.segment-parent').nth(SEGMENT.NINE))
// .click(Selector('.segment-parent').nth(SEGMENT.TWELVE))
// .click(Selector('.segment-parent').nth(SEGMENT.FOUR))
//Level 7 // .click(Selector('.segment-parent').nth(SEGMENT.FOURTEEN))
.expect(Selector('.segment-parent').nth(SEGMENT.SIX).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)") // .click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
.expect(Selector('.segment-row > .child-container').childElementCount).eql(3) // .click(Selector('.segment-parent').nth(SEGMENT.SIXTEEN))
// .click(Selector('.segment-parent').nth(SEGMENT.TWELVE))
.drag(Selector('.segment-parent').nth(SEGMENT.ONE), 4, 177, { // .click(Selector('.segment-parent').nth(SEGMENT.NINETEEN))
offsetX: 50, // .click(Selector('.segment-parent').nth(SEGMENT.TWENTYONE))
offsetY: 73 // .click(Selector('.segment-parent').nth(SEGMENT.TWENTY))
}) // .click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
// .click(Selector('.segment-parent').nth(SEGMENT.TWENTY))
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN)) // .click(Selector('.segment-parent').nth(SEGMENT.SEVENTEEN))
.click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN)) // .click(Selector('.segment-parent').nth(SEGMENT.SIXTEEN))
.click(Selector('.segment-parent').nth(SEGMENT.TWO)) // .click(Selector('.segment-parent').nth(SEGMENT.FOURTEEN))
.drag(Selector('.segment-parent').nth(SEGMENT.ELEVEN), 14, 195, { // .click(Selector('.segment-parent').nth(SEGMENT.NINETEEN))
offsetX: 55, // .click(Selector('.segment-parent').nth(SEGMENT.TWENTYONE))
offsetY: 57 // .drag(Selector('.segment-parent').nth(SEGMENT.TEN).find('div').withText('P'), 169, -3, {
}) // offsetX: 22,
.drag(Selector('.segment-parent').nth(SEGMENT.ONE), 4, 177, { // offsetY: 16
offsetX: 50, // })
offsetY: 73 // .expect(Selector('div').withText('P').nth(11).find('.segment.segment-parent.layer-2.rotate-360').getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
}) // .expect(Selector('#continue-button').visible).eql(true)
.click(Selector('.segment-parent').nth(SEGMENT.THREE)) // .expect(Selector('#won-text').visible).eql(true)
.click(Selector('.segment-parent').nth(SEGMENT.EIGHT)) // .click(Selector('#continue-button'))
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN)) //
.click(Selector('.segment-parent').nth(SEGMENT.FOUR)) //
.click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN)) // //Level 7
.click(Selector('.segment-parent').nth(SEGMENT.FIVE)) // .expect(Selector('.segment-parent').nth(SEGMENT.SIX).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.click(Selector('.segment-parent').nth(SEGMENT.FOUR)) // .expect(Selector('.segment-row > .child-container').childElementCount).eql(3)
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN)) //
.click(Selector('.segment-parent').nth(SEGMENT.THREE)) // .drag(Selector('.segment-parent').nth(SEGMENT.ONE), 4, 177, {
.click(Selector('.segment-parent').nth(SEGMENT.EIGHT)) // offsetX: 50,
.click(Selector('.segment-parent').nth(SEGMENT.NINE)) // offsetY: 73
.click(Selector('.segment-parent').nth(SEGMENT.FOUR)) // })
.drag(Selector('.segment-parent').nth(SEGMENT.ELEVEN), 14, 195, { //
offsetX: 55, // .click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
offsetY: 57 // .click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
}) // .click(Selector('.segment-parent').nth(SEGMENT.TWO))
.drag(Selector('.segment-parent').nth(SEGMENT.ONE), 4, 177, { // .drag(Selector('.segment-parent').nth(SEGMENT.ELEVEN), 14, 195, {
offsetX: 50, // offsetX: 55,
offsetY: 73 // offsetY: 57
}) // })
.click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN)) // .drag(Selector('.segment-parent').nth(SEGMENT.ONE), 4, 177, {
// offsetX: 50,
.expect(Selector('#won-text').visible).eql(true) // offsetY: 73
.expect(Selector('#continue-button').visible).eql(true) // })
.click(Selector('#continue-button')) // .click(Selector('.segment-parent').nth(SEGMENT.THREE))
.expect(Selector('#site-content').childElementCount).eql(1); // .click(Selector('.segment-parent').nth(SEGMENT.EIGHT))
// .click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
// .click(Selector('.segment-parent').nth(SEGMENT.FOUR))
// .click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
// .click(Selector('.segment-parent').nth(SEGMENT.FIVE))
// .click(Selector('.segment-parent').nth(SEGMENT.FOUR))
// .click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
// .click(Selector('.segment-parent').nth(SEGMENT.THREE))
// .click(Selector('.segment-parent').nth(SEGMENT.EIGHT))
// .click(Selector('.segment-parent').nth(SEGMENT.NINE))
// .click(Selector('.segment-parent').nth(SEGMENT.FOUR))
// .drag(Selector('.segment-parent').nth(SEGMENT.ELEVEN), 14, 195, {
// offsetX: 55,
// offsetY: 57
// })
// .drag(Selector('.segment-parent').nth(SEGMENT.ONE), 4, 177, {
// offsetX: 50,
// offsetY: 73
// })
// .click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
//
// .expect(Selector('#won-text').visible).eql(true)
// .expect(Selector('#continue-button').visible).eql(true)
// .click(Selector('#continue-button'))
// .expect(Selector('#site-content').childElementCount).eql(1);
}); });

View File

@ -1,278 +1,10 @@
import {Selector} from 'testcafe'; import {Selector} from 'testcafe';
import {mainTest} from "./test";
fixture`Play` fixture`Play`
.page`https://127.0.0.1/pwa/wordRotator/publicTest/`; .page`https://127.0.0.1/pwa/wordRotator/publicTest/`;
test('Play', async t => { test('Play', async t => {
const SEGMENT = { await mainTest(t);
ONE: 0,
TWO: 1,
THREE: 2,
FOUR: 3,
FIVE: 4,
SIX : 5,
SEVEN: 6,
EIGHT : 7,
NINE: 8,
TEN: 9,
ELEVEN: 10,
TWELVE: 11,
THIRTEEN: 12,
FOURTEEN: 13,
FIFTEEN: 14,
SIXTEEN: 15,
SEVENTEEN: 16,
EIGHTEEN:17,
NINETEEN: 18,
TWENTY:19,
TWENTYONE:20
};
await t
//first Level
.expect(Selector('#level-number').textContent).eql("1")
.expect(Selector('.segment.segment-parent.rotate-90').nth(0).getStyleProperty('transform')).eql("matrix(0, 1, -1, 0, 0, 0)")
.expect(Selector('.segment.segment-parent.rotate-90').nth(1).getStyleProperty('transform')).eql("matrix(0, 1, -1, 0, 0, 0)")
.expect(Selector('.segment.segment-parent.rotate-270').getStyleProperty('transform')).eql("matrix(0, -1, 1, 0, 0, 0)")
.expect(Selector('#won-text').getStyleProperty('visibility')).eql("hidden")
.expect(Selector('#continue-button').getStyleProperty('visibility')).eql("hidden")
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
.expect(Selector('.segment.segment-parent.rotate-360').getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.click(Selector('.segment-parent').nth(SEGMENT.ONE))
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
.click(Selector('.segment-parent').nth(SEGMENT.ONE))
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
.click(Selector('.segment-parent').nth(SEGMENT.ONE))
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
.expect(Selector('.segment.segment-parent.rotate-360').nth(1).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.expect(Selector('#won-text').visible).eql(true)
.expect(Selector('#continue-button').visible).eql(true)
.click(Selector('#continue-button'))
//TWOLevel
.expect(Selector('.segment.segment-parent.rotate-270').nth(0).textContent).eql("BOAL")
.expect(Selector('.segment.segment-parent.rotate-180').textContent).eql("DEAR")
.expect(Selector('.segment.segment-parent.rotate-360').textContent).eql("NSMR")
.expect(Selector('.segment.segment-parent.rotate-270').nth(1).textContent).eql("EEUF")
.expect(Selector('.segment.segment-parent.rotate-270').nth(0).getStyleProperty('transform')).eql("matrix(0, -1, 1, 0, 0, 0)")
.expect(Selector('.segment.segment-parent.rotate-180').getStyleProperty('transform')).eql("matrix(-1, 0, 0, -1, 0, 0)")
.expect(Selector('.segment.segment-parent.rotate-360').getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.expect(Selector('.segment.segment-parent.rotate-270').nth(1).getStyleProperty('transform')).eql("matrix(0, -1, 1, 0, 0, 0)")
.expect(Selector('#continue-button').getStyleProperty('visibility')).eql("hidden")
.expect(Selector('#level-number').textContent).eql("2")
.expect(Selector('#won-text').getStyleProperty('visibility')).eql("hidden")
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
.click(Selector('.segment-parent').nth(SEGMENT.ONE))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
.expect(Selector('.segment-parent').nth(SEGMENT.TWO).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
.expect(Selector('.segment-parent').nth(SEGMENT.TWO).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.expect(Selector('#won-text').visible).eql(true)
.expect(Selector('#continue-button').visible).eql(true)
.click(Selector('#continue-button'))
//THREE Level
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).textContent).eql("ZEHO")
.expect(Selector('.segment-parent').nth(SEGMENT.TWO).textContent).eql("ITCH")
.expect(Selector('.segment-parent').nth(SEGMENT.THREE).textContent).eql("STSA")
.expect(Selector('.segment-parent').nth(SEGMENT.FOUR).textContent).eql("RAIS")
.expect(Selector('.segment-parent').nth(SEGMENT.FIVE).textContent).eql("FEON")
.click(Selector('.segment-parent').nth(SEGMENT.ONE))
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
.click(Selector('.segment-parent').nth(SEGMENT.ONE))
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
.click(Selector('.segment-parent').nth(SEGMENT.ONE))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
.click(Selector('#continue-button'))
//4. Level
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).textContent).eql("FERÜINCKPHREYSSI")
.expect(Selector('.segment-parent').nth(SEGMENT.TWO).textContent).eql("FERÜ")
.expect(Selector('.segment-parent').nth(SEGMENT.THREE).textContent).eql("INCK")
.expect(Selector('.segment-parent').nth(SEGMENT.FOUR).textContent).eql("PHRE")
.expect(Selector('.segment-parent').nth(SEGMENT.FIVE).textContent).eql("YSSI")
.expect(Selector('.segment-parent').nth(SEGMENT.SIX).textContent).eql("BEHE")
.expect(Selector('.segment-parent').nth(SEGMENT.SEVEN).textContent).eql("RARZ")
.expect(Selector('.segment-parent').nth(SEGMENT.EIGHT).textContent).eql("GUFA")
.expect(Selector('.segment-parent').nth(SEGMENT.NINE).textContent).eql("SSLL")
.expect(Selector('.segment-parent').nth(SEGMENT.TEN).textContent).eql("IKDEERNZTULANGND")
.expect(Selector('.segment-parent').nth(SEGMENT.ELEVEN).textContent).eql("IKDE")
.expect(Selector('.segment-parent').nth(SEGMENT.TWELVE).textContent).eql("ERNZ")
.expect(Selector('.segment-parent').nth(SEGMENT.THIRTEEN).textContent).eql("TULA")
.expect(Selector('.segment-parent').nth(SEGMENT.FOURTEEN).textContent).eql("NGND")
.drag(Selector('.segment-parent').nth(SEGMENT.TEN), 128, 4, {
offsetX: 54,
offsetY: 17
})
.drag(Selector('.segment-parent').nth(SEGMENT.ONE), 128, 3, {
offsetX: 54,
offsetY: 17
})
.drag(Selector('.segment-parent').nth(SEGMENT.TEN).find('div').withText('I'), 128, 4, {
offsetX: 27,
offsetY: 41
})
.drag(Selector('.segment-parent').nth(SEGMENT.ONE).find('div').withText('S'), 10, 144, {
offsetX: 64,
offsetY: 32
})
.drag(Selector('.segment-parent').nth(SEGMENT.TEN), 128, 4, {
offsetX: 27,
offsetY: 41
})
.click(Selector('.segment-parent').nth(SEGMENT.NINE))
.click(Selector('.segment-parent').nth(SEGMENT.EIGHT))
.click(Selector('.segment-parent').nth(SEGMENT.NINE))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.ELEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.ELEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.ELEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.TWELVE))
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
.click(Selector('.segment-parent').nth(SEGMENT.SIX))
.click(Selector('.segment-parent').nth(SEGMENT.TWELVE))
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.SIX))
.expect(Selector('#continue-button').visible).eql(true)
.expect(Selector('#won-text').visible).eql(true)
.click(Selector('#continue-button'))
//5. Level
.expect(Selector('#level-number').textContent).eql("5")
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).textContent).eql("BEANTOBEALBALEUM")
.expect(Selector('.segment-parent').nth(SEGMENT.SIX).textContent).eql("NUTUNGNGRGHAIEUS")
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.expect(Selector('.segment-parent').nth(SEGMENT.SIX).getStyleProperty('transform')).eql("matrix(0, 1, -1, 0, 0, 0)")
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
.drag(Selector('.segment-parent').nth(SEGMENT.SIX).find('div').withText('U'), 3, 159, {
offsetX: 69,
offsetY: 150
})
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
.drag(Selector('.segment-parent').nth(SEGMENT.SIX), 3, 123, {
offsetX: 86,
offsetY: 133
})
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
.drag(Selector('.segment-parent').nth(SEGMENT.SIX), 10, 123, {
offsetX: 60,
offsetY: 137
})
.expect(Selector('#won-text').visible).eql(true)
.expect(Selector('#continue-button').visible).eql(true)
.click(Selector('#continue-button'))
//Level 6
.expect(Selector('#level-number').textContent).eql("6")
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).textContent).eql("FEGEHLISARBEBERE")
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.expect(Selector('.segment-parent').nth(SEGMENT.TEN).getStyleProperty('transform')).eql("matrix(-1, 0, 0, -1, 0, 0)")
.expect(Selector('.segment-parent').nth(SEGMENT.TEN).textContent).eql("ITITSPSCIKARAROT")
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.NINE))
.drag(Selector('.segment-parent').nth(SEGMENT.TEN).find('div').withText('A'), 106, -4, {
offsetX: 33,
offsetY: 18
})
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.SIX))
.click(Selector('.segment-parent').nth(SEGMENT.TWENTY))
.click(Selector('.segment-parent').nth(SEGMENT.TWELVE))
.click(Selector('.segment-parent').nth(SEGMENT.NINE))
.click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
.click(Selector('.segment-parent').nth(SEGMENT.TWENTYONE))
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
.click(Selector('.segment-parent').nth(SEGMENT.EIGHT))
.click(Selector('.segment-parent').nth(SEGMENT.ELEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.NINE))
.click(Selector('.segment-parent').nth(SEGMENT.TWELVE))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.FOURTEEN))
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.SIXTEEN))
.click(Selector('.segment-parent').nth(SEGMENT.TWELVE))
.click(Selector('.segment-parent').nth(SEGMENT.NINETEEN))
.click(Selector('.segment-parent').nth(SEGMENT.TWENTYONE))
.click(Selector('.segment-parent').nth(SEGMENT.TWENTY))
.click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
.click(Selector('.segment-parent').nth(SEGMENT.TWENTY))
.click(Selector('.segment-parent').nth(SEGMENT.SEVENTEEN))
.click(Selector('.segment-parent').nth(SEGMENT.SIXTEEN))
.click(Selector('.segment-parent').nth(SEGMENT.FOURTEEN))
.click(Selector('.segment-parent').nth(SEGMENT.NINETEEN))
.click(Selector('.segment-parent').nth(SEGMENT.TWENTYONE))
.drag(Selector('.segment-parent').nth(SEGMENT.TEN).find('div').withText('P'), 169, -3, {
offsetX: 22,
offsetY: 16
})
.expect(Selector('div').withText('P').nth(11).find('.segment.segment-parent.layer-2.rotate-360').getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.expect(Selector('#continue-button').visible).eql(true)
.expect(Selector('#won-text').visible).eql(true)
.click(Selector('#continue-button'))
//Level 7
.expect(Selector('.segment-parent').nth(SEGMENT.SIX).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.expect(Selector('.segment-row > .child-container').childElementCount).eql(3)
.drag(Selector('.segment-parent').nth(SEGMENT.ONE), 4, 177, {
offsetX: 50,
offsetY: 73
})
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
.drag(Selector('.segment-parent').nth(SEGMENT.ELEVEN), 14, 195, {
offsetX: 55,
offsetY: 57
})
.drag(Selector('.segment-parent').nth(SEGMENT.ONE), 4, 177, {
offsetX: 50,
offsetY: 73
})
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
.click(Selector('.segment-parent').nth(SEGMENT.EIGHT))
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
.click(Selector('.segment-parent').nth(SEGMENT.EIGHT))
.click(Selector('.segment-parent').nth(SEGMENT.NINE))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.drag(Selector('.segment-parent').nth(SEGMENT.ELEVEN), 14, 195, {
offsetX: 55,
offsetY: 57
})
.drag(Selector('.segment-parent').nth(SEGMENT.ONE), 4, 177, {
offsetX: 50,
offsetY: 73
})
.click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
.expect(Selector('#won-text').visible).eql(true)
.expect(Selector('#continue-button').visible).eql(true)
.click(Selector('#continue-button'))
.expect(Selector('#site-content').childElementCount).eql(1);
}); });

287
test/test.js Normal file
View File

@ -0,0 +1,287 @@
import { Selector } from 'testcafe';
export async function mainTest(t){
const coinsPerLevel = 5;
const dragDimen = 250;
const SEGMENT = {
ONE: 0,
TWO: 1,
THREE: 2,
FOUR: 3,
FIVE: 4,
SIX : 5,
SEVEN: 6,
EIGHT : 7,
NINE: 8,
TEN: 9,
ELEVEN: 10,
TWELVE: 11,
THIRTEEN: 12,
FOURTEEN: 13,
FIFTEEN: 14,
SIXTEEN: 15,
SEVENTEEN: 16,
EIGHTEEN:17,
NINETEEN: 18,
TWENTY:19,
TWENTYONE:20
};
await t
//Main Menu
.click(Selector('#play-button'))
//first Level
.expect(Selector('.segment.segment-parent.rotate-90').nth(0).getStyleProperty('transform')).eql("matrix(0, 1, -1, 0, 0, 0)")
.expect(Selector('.segment.segment-parent.rotate-90').nth(1).getStyleProperty('transform')).eql("matrix(0, 1, -1, 0, 0, 0)")
.expect(Selector('.segment.segment-parent.rotate-270').getStyleProperty('transform')).eql("matrix(0, -1, 1, 0, 0, 0)")
.expect(Selector('#won-text').visible).eql(false)
.expect(Selector('#continue-button').visible).eql(false)
.expect(Selector('#level-number').textContent).eql("1")
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
.expect(Selector('.segment.segment-parent.rotate-360').getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.click(Selector('.segment-parent').nth(SEGMENT.ONE))
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
.click(Selector('.segment-parent').nth(SEGMENT.ONE))
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
.click(Selector('.segment-parent').nth(SEGMENT.ONE))
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
.expect(Selector('.segment.segment-parent.rotate-360').nth(1).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.expect(Selector('#won-text').visible).eql(true)
.expect(Selector('#continue-button').visible).eql(true)
.click(Selector('#continue-button'))
.expect(Selector('.coin-counter').innerText).eql(""+coinsPerLevel)
//TWOLevel
.expect(Selector('.segment.segment-parent.rotate-270').nth(0).textContent).eql("BOAL")
.expect(Selector('.segment.segment-parent.rotate-180').textContent).eql("DEAR")
.expect(Selector('.segment.segment-parent.rotate-360').textContent).eql("NSMR")
.expect(Selector('.segment.segment-parent.rotate-270').nth(1).textContent).eql("EEUF")
.expect(Selector('.segment.segment-parent.rotate-270').nth(0).getStyleProperty('transform')).eql("matrix(0, -1, 1, 0, 0, 0)")
.expect(Selector('.segment.segment-parent.rotate-180').getStyleProperty('transform')).eql("matrix(-1, 0, 0, -1, 0, 0)")
.expect(Selector('.segment.segment-parent.rotate-360').getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.expect(Selector('.segment.segment-parent.rotate-270').nth(1).getStyleProperty('transform')).eql("matrix(0, -1, 1, 0, 0, 0)")
.expect(Selector('#continue-button').visible).eql(false)
.expect(Selector('#level-number').textContent).eql("2")
.expect(Selector('#won-text').visible).eql(false)
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
.click(Selector('.segment-parent').nth(SEGMENT.ONE))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
.expect(Selector('.segment-parent').nth(SEGMENT.TWO).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
.expect(Selector('.segment-parent').nth(SEGMENT.TWO).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.expect(Selector('#won-text').visible).eql(true)
.expect(Selector('#continue-button').visible).eql(true)
.click(Selector('#continue-button'))
.expect(Selector('.coin-counter').innerText).eql(""+coinsPerLevel*2)
//THREE Level
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).textContent).eql("ZEHO")
.expect(Selector('.segment-parent').nth(SEGMENT.TWO).textContent).eql("ITCH")
.expect(Selector('.segment-parent').nth(SEGMENT.THREE).textContent).eql("STSA")
.expect(Selector('.segment-parent').nth(SEGMENT.FOUR).textContent).eql("RAIS")
.expect(Selector('.segment-parent').nth(SEGMENT.FIVE).textContent).eql("FEON")
.click(Selector('.segment-parent').nth(SEGMENT.ONE))
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
.click(Selector('.segment-parent').nth(SEGMENT.ONE))
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
.click(Selector('.segment-parent').nth(SEGMENT.ONE))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
.click(Selector('#continue-button'))
.expect(Selector('.coin-counter').innerText).eql(""+coinsPerLevel*3)
//4. Level
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).textContent).eql("FERÜINCKPHREYSSI")
.expect(Selector('.segment-parent').nth(SEGMENT.TWO).textContent).eql("FERÜ")
.expect(Selector('.segment-parent').nth(SEGMENT.THREE).textContent).eql("INCK")
.expect(Selector('.segment-parent').nth(SEGMENT.FOUR).textContent).eql("PHRE")
.expect(Selector('.segment-parent').nth(SEGMENT.FIVE).textContent).eql("YSSI")
.expect(Selector('.segment-parent').nth(SEGMENT.SIX).textContent).eql("BEHE")
.expect(Selector('.segment-parent').nth(SEGMENT.SEVEN).textContent).eql("RARZ")
.expect(Selector('.segment-parent').nth(SEGMENT.EIGHT).textContent).eql("GUFA")
.expect(Selector('.segment-parent').nth(SEGMENT.NINE).textContent).eql("SSLL")
.expect(Selector('.segment-parent').nth(SEGMENT.TEN).textContent).eql("IKDEERNZTULANGND")
.expect(Selector('.segment-parent').nth(SEGMENT.ELEVEN).textContent).eql("IKDE")
.expect(Selector('.segment-parent').nth(SEGMENT.TWELVE).textContent).eql("ERNZ")
.expect(Selector('.segment-parent').nth(SEGMENT.THIRTEEN).textContent).eql("TULA")
.expect(Selector('.segment-parent').nth(SEGMENT.FOURTEEN).textContent).eql("NGND")
.drag(Selector('.segment-parent').nth(SEGMENT.TEN), dragDimen, 4, {
offsetX: 54,
offsetY: 17
})
.drag(Selector('.segment-parent').nth(SEGMENT.ONE), dragDimen, 3, {
offsetX: 54,
offsetY: 17
})
.drag(Selector('.segment-parent').nth(SEGMENT.TEN).find('div').withText('I'), dragDimen, 4, {
offsetX: 27,
offsetY: 41
})
.drag(Selector('.segment-parent').nth(SEGMENT.ONE).find('div').withText('S'), 10, dragDimen, {
offsetX: 64,
offsetY: 32
})
.drag(Selector('.segment-parent').nth(SEGMENT.TEN), dragDimen, 4, {
offsetX: 27,
offsetY: 41
})
.click(Selector('.segment-parent').nth(SEGMENT.NINE))
.click(Selector('.segment-parent').nth(SEGMENT.EIGHT))
.click(Selector('.segment-parent').nth(SEGMENT.NINE))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.ELEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.ELEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.ELEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.TWELVE))
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
.click(Selector('.segment-parent').nth(SEGMENT.SIX))
.click(Selector('.segment-parent').nth(SEGMENT.TWELVE))
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.SIX))
.expect(Selector('#continue-button').visible).eql(true)
.expect(Selector('#won-text').visible).eql(true)
.click(Selector('#continue-button'))
.expect(Selector('.coin-counter').innerText).eql(""+coinsPerLevel*4)
//5. Level
.expect(Selector('#level-number').textContent).eql("5")
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).textContent).eql("BEANTOBEALBALEUM")
.expect(Selector('.segment-parent').nth(SEGMENT.SIX).textContent).eql("NUTUNGNGRGHAIEUS")
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.expect(Selector('.segment-parent').nth(SEGMENT.SIX).getStyleProperty('transform')).eql("matrix(0, 1, -1, 0, 0, 0)")
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
.drag(Selector('.segment-parent').nth(SEGMENT.SIX).find('div').withText('U'), 3, dragDimen, {
offsetX: 69,
offsetY: 150
})
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
.drag(Selector('.segment-parent').nth(SEGMENT.SIX), 3, dragDimen, {
offsetX: 86,
offsetY: 133
})
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
.drag(Selector('.segment-parent').nth(SEGMENT.SIX), 10, dragDimen, {
offsetX: 60,
offsetY: 137
})
.expect(Selector('#won-text').visible).eql(true)
.expect(Selector('#continue-button').visible).eql(true)
.click(Selector('#continue-button'))
.expect(Selector('.coin-counter').innerText).eql(""+coinsPerLevel*5)
//Level 6
.expect(Selector('#level-number').textContent).eql("6")
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).textContent).eql("FEGEHLISARBEBERE")
.expect(Selector('.segment-parent').nth(SEGMENT.ONE).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.expect(Selector('.segment-parent').nth(SEGMENT.TEN).getStyleProperty('transform')).eql("matrix(-1, 0, 0, -1, 0, 0)")
.expect(Selector('.segment-parent').nth(SEGMENT.TEN).textContent).eql("ITITSPSCIKARAROT")
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.NINE))
.drag(Selector('.segment-parent').nth(SEGMENT.TEN).find('div').withText('A'), dragDimen, -4, {
offsetX: 33,
offsetY: 18
})
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.SIX))
.click(Selector('.segment-parent').nth(SEGMENT.TWENTY))
.click(Selector('.segment-parent').nth(SEGMENT.TWELVE))
.click(Selector('.segment-parent').nth(SEGMENT.NINE))
.click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
.click(Selector('.segment-parent').nth(SEGMENT.TWENTYONE))
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
.click(Selector('.segment-parent').nth(SEGMENT.EIGHT))
.click(Selector('.segment-parent').nth(SEGMENT.ELEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.NINE))
.click(Selector('.segment-parent').nth(SEGMENT.TWELVE))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.FOURTEEN))
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.SIXTEEN))
.click(Selector('.segment-parent').nth(SEGMENT.TWELVE))
.click(Selector('.segment-parent').nth(SEGMENT.NINETEEN))
.click(Selector('.segment-parent').nth(SEGMENT.TWENTYONE))
.click(Selector('.segment-parent').nth(SEGMENT.TWENTY))
.click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
.click(Selector('.segment-parent').nth(SEGMENT.TWENTY))
.click(Selector('.segment-parent').nth(SEGMENT.SEVENTEEN))
.click(Selector('.segment-parent').nth(SEGMENT.SIXTEEN))
.click(Selector('.segment-parent').nth(SEGMENT.FOURTEEN))
.click(Selector('.segment-parent').nth(SEGMENT.NINETEEN))
.click(Selector('.segment-parent').nth(SEGMENT.TWENTYONE))
.drag(Selector('.segment-parent').nth(SEGMENT.TEN).find('div').withText('P'), dragDimen, -3, {
offsetX: 22,
offsetY: 16
})
.expect(Selector('div').withText('P').nth(11).find('.segment.segment-parent.layer-2.rotate-360').getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.expect(Selector('#continue-button').visible).eql(true)
.expect(Selector('#won-text').visible).eql(true)
.click(Selector('#continue-button'))
.expect(Selector('.coin-counter').innerText).eql(""+coinsPerLevel*6)
//Level 7
.expect(Selector('.segment-parent').nth(SEGMENT.SIX).getStyleProperty('transform')).eql("matrix(1, 0, 0, 1, 0, 0)")
.expect(Selector('.segment-row > .child-container').childElementCount).eql(3)
.drag(Selector('.segment-parent').nth(SEGMENT.ONE), 4, dragDimen, {
offsetX: 50,
offsetY: 73
})
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
.click(Selector('.segment-parent').nth(SEGMENT.TWO))
.drag(Selector('.segment-parent').nth(SEGMENT.ELEVEN), 14, dragDimen, {
offsetX: 55,
offsetY: 57
})
.drag(Selector('.segment-parent').nth(SEGMENT.ONE), 4, dragDimen, {
offsetX: 50,
offsetY: 73
})
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
.click(Selector('.segment-parent').nth(SEGMENT.EIGHT))
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
.click(Selector('.segment-parent').nth(SEGMENT.FIVE))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.click(Selector('.segment-parent').nth(SEGMENT.SEVEN))
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
.click(Selector('.segment-parent').nth(SEGMENT.EIGHT))
.click(Selector('.segment-parent').nth(SEGMENT.NINE))
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
.drag(Selector('.segment-parent').nth(SEGMENT.ELEVEN), 14, dragDimen, {
offsetX: 55,
offsetY: 57
})
.drag(Selector('.segment-parent').nth(SEGMENT.ONE), 4, dragDimen, {
offsetX: 50,
offsetY: 73
})
.click(Selector('.segment-parent').nth(SEGMENT.THIRTEEN))
.expect(Selector('.coin-counter').innerText).eql(""+coinsPerLevel*7)
.expect(Selector('#won-text').visible).eql(true)
.expect(Selector('#continue-button').visible).eql(true)
.click(Selector('#continue-button'))
.expect(Selector('#site-content').childElementCount).eql(1);
}