Fertig für Android
This commit is contained in:
parent
f89354ea03
commit
f82aff9442
@ -1,2 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
cd $(dirname "$0")/..
|
||||
npm run build 2
|
||||
@ -1,3 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
cd $(dirname "$0")/..
|
||||
rm -rf /var/www/pwa/wordRotator/vendor/ainias/$2
|
||||
ln -s $1 /var/www/pwa/wordRotator/vendor/ainias/$2
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
cd $(dirname "$0")/..
|
||||
|
||||
testcafe firefox test/test.testcafe.js
|
||||
#testcafe remote test/test.testcafe.js
|
||||
#node bin/testcafe.js;
|
||||
25
bin/testcafe.js
Normal file
25
bin/testcafe.js
Normal file
@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
|
||||
const createTestCafe = require('testcafe');
|
||||
const selfSignedSertificate = require('openssl-self-signed-certificate');
|
||||
let runner = null;
|
||||
|
||||
const sslOptions = {
|
||||
key: selfSignedSertificate.key,
|
||||
cert: selfSignedSertificate.cert
|
||||
};
|
||||
|
||||
createTestCafe('192.168.0.51', 5000, 5001, sslOptions).then(async testcafe => {
|
||||
runner = testcafe.createRunner();
|
||||
|
||||
let remoteConnection = await testcafe.createBrowserConnection();
|
||||
console.log(remoteConnection.url);
|
||||
|
||||
remoteConnection.once('ready', () => {
|
||||
console.log("testing...");
|
||||
return runner.src('test/test.testcafe.js').browsers(remoteConnection).run({debugOnFail: true}).then(failedCount => {
|
||||
testcafe.close();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@ -24,7 +24,8 @@
|
||||
"rollup": "^0.57.1",
|
||||
"rollup-plugin-babel": "^3.0.3",
|
||||
"uglify-es": "^3.3.9",
|
||||
"testcafe": "^0.22.1-alpha.3"
|
||||
"testcafe": "^0.22.1-alpha.3",
|
||||
"openssl-self-signed-certificate": "^1.1.6"
|
||||
},
|
||||
"input": "src/js/init.js",
|
||||
"output": "public/js/app.js",
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -418,10 +418,14 @@ class SoundManager {
|
||||
return this.channels[channel];
|
||||
}
|
||||
|
||||
async play(channel, audioOrOptions) {
|
||||
async resume(){
|
||||
if (typeof this.context.resume === "function") {
|
||||
this.context.resume();
|
||||
return this.context.resume();
|
||||
}
|
||||
}
|
||||
|
||||
async play(channel, audioOrOptions) {
|
||||
this.resume();
|
||||
channel = Helper.nonNull(channel, SoundManager.CHANNELS.DEFAULT);
|
||||
if (Helper.isNull(audioOrOptions)) {
|
||||
audioOrOptions = {};
|
||||
|
||||
@ -97,7 +97,7 @@ export class MenuSite extends WordRotatorBaseSite {
|
||||
}
|
||||
|
||||
async startLevelSite() {
|
||||
SoundManager.getInstance().context.resume();
|
||||
SoundManager.getInstance().resume();
|
||||
this.startSite(LevelSite, Promise.race([this.loadLevelPromise, new Promise(async resolve => {
|
||||
const db = WordRotatorDb.getInstance();
|
||||
let level = await db.loadNextLevel(LevelSite.RENDERER_TYPES);
|
||||
|
||||
@ -17,10 +17,10 @@ export class ParentSegment extends Segment {
|
||||
ParentSegment.mouseDownTarget = e.targetTouches[0].target;
|
||||
ParentSegment.clickPosition = {x: e.targetTouches[0].pageX, y: e.targetTouches[0].pageY};
|
||||
}
|
||||
else if (Array.isArray(e.path) && e.path.length >= 1) {
|
||||
ParentSegment.mouseDownTarget = e.path[0];
|
||||
ParentSegment.clickPosition = null;
|
||||
}
|
||||
// else if (Array.isArray(e.path) && e.path.length >= 1) {
|
||||
// ParentSegment.mouseDownTarget = e.path[0];
|
||||
// ParentSegment.clickPosition = null;
|
||||
// }
|
||||
});
|
||||
window.addEventListener("touchend", (e) => {
|
||||
ParentSegment.mouseDownTarget = null;
|
||||
@ -39,32 +39,49 @@ export class ParentSegment extends Segment {
|
||||
this.class = "rotate-0";
|
||||
this.rotatable = true;
|
||||
|
||||
this.userRotationDelta = 100;
|
||||
this.lastUserRotation = 0;
|
||||
|
||||
let self = this;
|
||||
this.touchendListener = function (e) {
|
||||
let now = new Date().getTime();
|
||||
|
||||
// console.log("touchendListener", e,now, self.lastUserRotation);
|
||||
let target = null;
|
||||
let position = null;
|
||||
|
||||
if (e.changedTouches.length >= 1) {
|
||||
target = document.elementFromPoint(e.changedTouches[0].pageX, e.changedTouches[0].pageY);
|
||||
position = {x: e.changedTouches[0].pageX, y: e.changedTouches[0].pageY};
|
||||
}
|
||||
else if (Array.isArray(e.path) && e.path.length >= 1) {
|
||||
target = e.path[0];
|
||||
}
|
||||
if (e.targetTouches.length === 0 && self.element.contains(ParentSegment.mouseDownTarget) && self.element.contains(target)) {
|
||||
self.getLevel().segmentClickedListener(self);
|
||||
self.rotate(ParentSegment.mouseDownTarget, target, ParentSegment.clickPosition, position);
|
||||
if (target != null && e.targetTouches.length === 0 && self.element.contains(ParentSegment.mouseDownTarget) && self.element.contains(target)) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
if (self.lastUserRotation+self.userRotationDelta > now){
|
||||
return;
|
||||
}
|
||||
self.getLevel().segmentClickedListener(self);
|
||||
self.rotate(ParentSegment.mouseDownTarget, target, ParentSegment.clickPosition, position);
|
||||
// console.log("touchendListener stopped event", e);
|
||||
|
||||
self.lastUserRotation = new Date().getTime();
|
||||
}
|
||||
};
|
||||
this.mouseupListener = function (e) {
|
||||
let now = new Date().getTime();
|
||||
// console.log("mouseupListener", e,now, self.lastUserRotation);
|
||||
|
||||
if (ParentSegment.mouseDownTarget !== null && self.element.contains(ParentSegment.mouseDownTarget) && self.element.contains(e.target)) {
|
||||
let position = {x: e.pageX, y: e.pageY};
|
||||
|
||||
self.getLevel().segmentClickedListener(self);
|
||||
self.rotate(ParentSegment.mouseDownTarget, e.target, ParentSegment.clickPosition, position);
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
if (self.lastUserRotation+self.userRotationDelta > now){
|
||||
return;
|
||||
}
|
||||
self.getLevel().segmentClickedListener(self);
|
||||
self.rotate(ParentSegment.mouseDownTarget, e.target, ParentSegment.clickPosition, position);
|
||||
// console.log("mouseupListener stopped event", e);
|
||||
self.lastUserRotation = new Date().getTime();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@ import {Selector} from 'testcafe';
|
||||
import {ClientFunction} from 'testcafe';
|
||||
|
||||
let isLocal = true;
|
||||
let isMobile = true;
|
||||
let isMobile = false;
|
||||
|
||||
const checkMatrix = async (matrixStringSelector, shouldValues, timeout) => {
|
||||
let delta = 0.0001;
|
||||
@ -60,7 +60,7 @@ async function waitForMainMenu(t) {
|
||||
// console.log("nextIterate");
|
||||
await t.wait(100);
|
||||
}
|
||||
await t.wait(2000);
|
||||
await t.wait(1000);
|
||||
}
|
||||
|
||||
if (isLocal) {
|
||||
@ -85,10 +85,10 @@ else {
|
||||
await afterEachTest(t);
|
||||
});
|
||||
}
|
||||
let dragDimen = 250;
|
||||
let dragDimen = 280;
|
||||
|
||||
if (isMobile){
|
||||
dragDimen = 50;
|
||||
dragDimen = 90;
|
||||
}
|
||||
|
||||
const extraCoins = 50;
|
||||
@ -119,7 +119,7 @@ const SEGMENT = {
|
||||
TWENTYONE: 20
|
||||
};
|
||||
|
||||
test.only('Play', async t => {
|
||||
test('Play', async t => {
|
||||
let levelNumber = 1;
|
||||
|
||||
await waitForMainMenu(t);
|
||||
@ -134,15 +134,14 @@ test.only('Play', async t => {
|
||||
.expect(Selector('.tutorial-text .step-2').visible).eql(true)
|
||||
.expect(Selector('.tutorial-text .step-1').visible).eql(false)
|
||||
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
|
||||
.expect(Selector('.tutorial-text .step-2').visible).eql(true)
|
||||
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
|
||||
.expect(Selector('.tutorial-text .step-2').visible).eql(true);
|
||||
await t.click(Selector('.segment-parent').nth(SEGMENT.THREE))
|
||||
.expect(Selector('#continue-button').visible).eql(true)
|
||||
.click(Selector('#continue-button'))
|
||||
.wait(1000);
|
||||
|
||||
levelNumber++;
|
||||
//first Level
|
||||
// await t.debug();
|
||||
await t.expect(await checkMatrix(Selector('.segment.segment-parent.rotate-90').nth(0).getStyleProperty('transform'), [0, 1, -1, 0])).ok()
|
||||
.expect(await checkMatrix(Selector('.segment.segment-parent.rotate-90').nth(1).getStyleProperty('transform'), [0, 1, -1, 0])).ok()
|
||||
.expect(await checkMatrix(Selector('.segment.segment-parent.rotate-270').getStyleProperty('transform'), [0, -1, 1, 0])).ok()
|
||||
@ -163,7 +162,7 @@ test.only('Play', async t => {
|
||||
.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 * levelNumber + extraCoins - helpCost));
|
||||
.expect(Selector('.coin-counter').innerText).contains("" + (coinsPerLevel * levelNumber + extraCoins - helpCost));
|
||||
|
||||
levelNumber++;
|
||||
|
||||
@ -188,7 +187,7 @@ test.only('Play', async t => {
|
||||
.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 * levelNumber + extraCoins - helpCost));
|
||||
.expect(Selector('.coin-counter').innerText).contains("" + (coinsPerLevel * levelNumber + extraCoins - helpCost));
|
||||
|
||||
levelNumber++;
|
||||
//THREE Level
|
||||
@ -206,11 +205,10 @@ test.only('Play', async t => {
|
||||
.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 * levelNumber + extraCoins - helpCost));
|
||||
.expect(Selector('.coin-counter').innerText).contains("" + (coinsPerLevel * levelNumber + extraCoins - helpCost));
|
||||
|
||||
levelNumber++;
|
||||
|
||||
console.log("dragDimen", dragDimen);
|
||||
await t.drag(Selector('.segment-parent').nth(SEGMENT.ONE), -dragDimen, 4, {
|
||||
offsetX: dragDimen + 50,
|
||||
offsetY: 17
|
||||
@ -247,24 +245,24 @@ test.only('Play', async t => {
|
||||
.expect(Selector('.segment-parent').nth(SEGMENT.THIRTEEN).textContent).eql("TUTO")
|
||||
.expect(Selector('.segment-parent').nth(SEGMENT.FOURTEEN).textContent).eql("NGPF")
|
||||
.drag(Selector('.segment-parent').nth(SEGMENT.TEN), dragDimen, 4, {
|
||||
offsetX: 54,
|
||||
offsetY: 17
|
||||
offsetX: dragDimen/5,
|
||||
offsetY: 10
|
||||
})
|
||||
.drag(Selector('.segment-parent').nth(SEGMENT.ONE), dragDimen, 3, {
|
||||
offsetX: 54,
|
||||
offsetY: 17
|
||||
offsetX: dragDimen/5,
|
||||
offsetY: 10
|
||||
})
|
||||
.drag(Selector('.segment-parent').nth(SEGMENT.TEN).find('div').withText('I'), dragDimen, 4, {
|
||||
offsetX: 27,
|
||||
offsetY: 41
|
||||
offsetX: dragDimen/5,
|
||||
offsetY: dragDimen/5
|
||||
})
|
||||
.drag(Selector('.segment-parent').nth(SEGMENT.ONE).find('div').withText('S'), 10, dragDimen, {
|
||||
offsetX: dragDimen,
|
||||
offsetY: 32
|
||||
offsetY: dragDimen/5
|
||||
})
|
||||
.drag(Selector('.segment-parent').nth(SEGMENT.TEN), dragDimen, 4, {
|
||||
offsetX: 27,
|
||||
offsetY: 41
|
||||
offsetX: 10,
|
||||
offsetY: dragDimen/5
|
||||
})
|
||||
.click(Selector('.segment-parent').nth(SEGMENT.NINE))
|
||||
.click(Selector('.segment-parent').nth(SEGMENT.EIGHT))
|
||||
@ -285,7 +283,7 @@ test.only('Play', async t => {
|
||||
.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 * levelNumber + extraCoins - helpCost));
|
||||
.expect(Selector('.coin-counter').innerText).contains("" + (coinsPerLevel * levelNumber + extraCoins - helpCost));
|
||||
|
||||
levelNumber++;
|
||||
|
||||
@ -300,28 +298,20 @@ test.only('Play', async t => {
|
||||
.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
|
||||
offsetX: 10,
|
||||
offsetY: dragDimen/5
|
||||
})
|
||||
.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 * levelNumber + extraCoins - helpCost));
|
||||
.expect(Selector('.coin-counter').innerText).contains("" + (coinsPerLevel * levelNumber + extraCoins - helpCost));
|
||||
|
||||
levelNumber++;
|
||||
//Level 6
|
||||
@ -335,8 +325,8 @@ test.only('Play', async t => {
|
||||
.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
|
||||
offsetX: 10,
|
||||
offsetY: 10
|
||||
})
|
||||
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
|
||||
.click(Selector('.segment-parent').nth(SEGMENT.SIX))
|
||||
@ -366,14 +356,14 @@ test.only('Play', async t => {
|
||||
.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
|
||||
offsetX: 10,
|
||||
offsetY: 10
|
||||
})
|
||||
.expect(await checkMatrix(Selector('div').withText('P').nth(11).find('.segment.segment-parent.layer-2.rotate-360').getStyleProperty('transform'), [1, 0, 0, 1, ])).ok()
|
||||
.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 * levelNumber + extraCoins - helpCost));
|
||||
.expect(Selector('.coin-counter').innerText).contains("" + (coinsPerLevel * levelNumber + extraCoins - helpCost));
|
||||
|
||||
levelNumber++;
|
||||
//Level 7
|
||||
@ -381,15 +371,15 @@ test.only('Play', async t => {
|
||||
.expect(Selector('.segment-row > .child-container').childElementCount).eql(3)
|
||||
|
||||
.drag(Selector('.segment-parent').nth(SEGMENT.ONE), 4, dragDimen, {
|
||||
offsetX: 50,
|
||||
offsetY: 73
|
||||
offsetX: 10,
|
||||
offsetY: 10
|
||||
})
|
||||
.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: dragDimen,
|
||||
offsetY: 57
|
||||
offsetX: 10,
|
||||
offsetY: 10
|
||||
})
|
||||
.click(Selector('.segment-parent').nth(SEGMENT.THREE))
|
||||
.click(Selector('.segment-parent').nth(SEGMENT.EIGHT))
|
||||
@ -403,12 +393,12 @@ test.only('Play', async t => {
|
||||
.click(Selector('.segment-parent').nth(SEGMENT.NINE))
|
||||
.click(Selector('.segment-parent').nth(SEGMENT.FOUR))
|
||||
.drag(Selector('.segment-parent').nth(SEGMENT.ELEVEN), 14, dragDimen, {
|
||||
offsetX: dragDimen,
|
||||
offsetY: 57
|
||||
offsetX: 10,
|
||||
offsetY: 10
|
||||
})
|
||||
.click(Selector('#help-button'))
|
||||
.wait(5000)
|
||||
.expect(Selector('.coin-counter').innerText).eql("" + (coinsPerLevel * levelNumber - helpCost + extraCoins - helpCost))
|
||||
.expect(Selector('.coin-counter').innerText).contains("" + (coinsPerLevel * levelNumber - helpCost + extraCoins - helpCost))
|
||||
|
||||
.expect(Selector('#won-text').visible).eql(true)
|
||||
.expect(Selector('#continue-button').visible).eql(true)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user