mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
chore: cleanup
This commit is contained in:
236
apps/automated/app/timer/timer-tests.ts
Normal file
236
apps/automated/app/timer/timer-tests.ts
Normal file
@@ -0,0 +1,236 @@
|
||||
import * as TKUnit from '../tk-unit';
|
||||
import * as timer from '@nativescript/core/timer';
|
||||
|
||||
// >> timer-require
|
||||
// require("globals");
|
||||
//// OR
|
||||
// var timer = require("timer");
|
||||
// << timer-require
|
||||
|
||||
export function test_setTimeout_isDefined() {
|
||||
TKUnit.assertNotEqual(timer.setTimeout, undefined, 'Method timer.setTimeout() should be defined!');
|
||||
}
|
||||
|
||||
export function test_clearTimeout_isDefined() {
|
||||
TKUnit.assertNotEqual(timer.clearTimeout, undefined, 'Method timer.clearTimeout() should be defined!');
|
||||
}
|
||||
|
||||
export function test_setInsDefined() {
|
||||
TKUnit.assertNotEqual(timer.setInterval, undefined, 'Method timer.setInterval() should be defined!');
|
||||
}
|
||||
|
||||
export function test_clear_isDefined() {
|
||||
TKUnit.assertNotEqual(timer.clearInterval, undefined, 'Method timer.clearInterval() should be defined!');
|
||||
}
|
||||
|
||||
export function test_setTimeout() {
|
||||
let completed: boolean;
|
||||
|
||||
// >> timer-set-zero
|
||||
const id = timer.setTimeout(() => {
|
||||
// >> (hide)
|
||||
completed = true;
|
||||
// << (hide)
|
||||
});
|
||||
// << timer-set-zero
|
||||
|
||||
TKUnit.waitUntilReady(() => completed, 0.5, false);
|
||||
timer.clearTimeout(id);
|
||||
TKUnit.assert(completed, 'Callback should be called!');
|
||||
}
|
||||
|
||||
export function test_setTimeout_extraArgs() {
|
||||
let completed: boolean;
|
||||
let rnd: number = Math.random();
|
||||
|
||||
// >> timer-set-zero-args
|
||||
const id = timer.setTimeout(
|
||||
(arg) => {
|
||||
// >> (hide)
|
||||
completed = rnd === arg;
|
||||
// << (hide)
|
||||
},
|
||||
0,
|
||||
rnd
|
||||
);
|
||||
// << timer-set-zero-args
|
||||
|
||||
TKUnit.waitUntilReady(() => completed, 0.5, false);
|
||||
timer.clearTimeout(id);
|
||||
TKUnit.assert(completed, 'Callback called with expected argument!');
|
||||
}
|
||||
|
||||
export function test_setTimeout_callbackCalledAfterSpecifiedTime() {
|
||||
let completed = false;
|
||||
|
||||
// >> timer-set-ten
|
||||
const id = timer.setTimeout(() => {
|
||||
// >> (hide)
|
||||
completed = true;
|
||||
// << (hide)
|
||||
}, 10);
|
||||
// << timer-set-ten
|
||||
|
||||
TKUnit.waitUntilReady(() => completed, 1);
|
||||
timer.clearTimeout(id);
|
||||
TKUnit.assert(completed, 'Callback should be called after the specified time!');
|
||||
}
|
||||
|
||||
export function test_setTimeout_callbackCalledWithBooleanPeriod() {
|
||||
let completed = false;
|
||||
|
||||
// >> timer-set-false
|
||||
const id = timer.setTimeout(() => {
|
||||
// >> (hide)
|
||||
completed = true;
|
||||
// << (hide)
|
||||
// @ts-ignore
|
||||
}, false);
|
||||
// << timer-set-false
|
||||
|
||||
TKUnit.waitUntilReady(() => completed, 1);
|
||||
timer.clearTimeout(id);
|
||||
TKUnit.assert(completed, 'Callback should be called in 0 seconds!');
|
||||
}
|
||||
|
||||
export function test_setTimeout_callbackNotCalled() {
|
||||
let completed = false;
|
||||
|
||||
const id = timer.setTimeout(() => (completed = true), 10);
|
||||
timer.clearTimeout(id);
|
||||
TKUnit.wait(30 / 1000);
|
||||
|
||||
TKUnit.assert(!completed, 'Callback should not be called after the specified time!');
|
||||
}
|
||||
|
||||
export function test_setTimeout_shouldReturnNumber() {
|
||||
let id = timer.setTimeout(() => {
|
||||
//
|
||||
});
|
||||
timer.clearTimeout(id);
|
||||
TKUnit.assertTrue(typeof id === 'number', 'Callback should return number!');
|
||||
}
|
||||
|
||||
export function test_setTimeout_callbackShouldBeCleared() {
|
||||
let completed = false;
|
||||
|
||||
// >> timer-set-fifty
|
||||
const id = timer.setTimeout(() => {
|
||||
// >> (hide)
|
||||
completed = true;
|
||||
// << (hide)
|
||||
}, 50);
|
||||
|
||||
//// Clear timeout with specified id.
|
||||
timer.clearTimeout(id);
|
||||
|
||||
// << timer-set-fifty
|
||||
|
||||
TKUnit.wait(0.06);
|
||||
timer.clearTimeout(id);
|
||||
TKUnit.assert(!completed, 'Callback should be cleared when clearTimeout() is executed for specified id!');
|
||||
}
|
||||
|
||||
export function test_setInterval_callbackCalledDuringPeriod(done) {
|
||||
let counter = 0;
|
||||
const expected = 4;
|
||||
const timeLimit = 300;
|
||||
|
||||
const start = TKUnit.time();
|
||||
// >> timer-set-expression
|
||||
const id = timer.setInterval(() => {
|
||||
// >> (hide)
|
||||
counter++;
|
||||
if (counter === expected) {
|
||||
const end = TKUnit.time();
|
||||
timer.clearInterval(id);
|
||||
const time = end - start;
|
||||
done(time > timeLimit ? new Error(`setInterval too slow. Actual time: ${time} timelimit: ${timeLimit}`) : null);
|
||||
}
|
||||
// << (hide)
|
||||
}, 50);
|
||||
// << timer-set-expression
|
||||
}
|
||||
|
||||
export function test_setInterval_callbackCalledWithExtraArgs(done) {
|
||||
let counter: number = 0;
|
||||
const rnd: number = Math.random();
|
||||
|
||||
const start = TKUnit.time();
|
||||
const id = timer.setInterval(
|
||||
(arg) => {
|
||||
counter += arg === rnd ? 1 : -1;
|
||||
if (counter === 4) {
|
||||
const end = TKUnit.time();
|
||||
timer.clearInterval(id);
|
||||
done(end - start > 250 ? new Error('setInterval too slow.') : null);
|
||||
}
|
||||
},
|
||||
50,
|
||||
rnd
|
||||
);
|
||||
}
|
||||
|
||||
export function test_setInterval_callbackShouldBeCleared(done) {
|
||||
const start = TKUnit.time();
|
||||
// >> timer-set-interval
|
||||
const id = timer.setInterval(() => {
|
||||
// >> (hide)
|
||||
const end = TKUnit.time();
|
||||
timer.clearInterval(id);
|
||||
done(end - start > 150 ? new Error('setInterval too slow.') : null);
|
||||
// << (hide)
|
||||
timer.clearInterval(id);
|
||||
}, 50);
|
||||
// << timer-set-interval
|
||||
}
|
||||
|
||||
export function test_clearTimeout_multipleTimes_afterTick() {
|
||||
let completed = false;
|
||||
|
||||
const id = timer.setTimeout(() => {
|
||||
completed = true;
|
||||
});
|
||||
|
||||
TKUnit.waitUntilReady(() => completed, 0.5);
|
||||
TKUnit.assert(completed, 'Callback should be called');
|
||||
|
||||
timer.clearTimeout(id);
|
||||
timer.clearTimeout(id);
|
||||
}
|
||||
|
||||
export function test_clearTimeout_immediatelyAfterCreate() {
|
||||
let completed = false;
|
||||
|
||||
const id = timer.setTimeout(() => {
|
||||
completed = true;
|
||||
});
|
||||
timer.clearTimeout(id);
|
||||
|
||||
TKUnit.wait(0.02);
|
||||
TKUnit.assert(!completed, 'Callback should not be called');
|
||||
}
|
||||
|
||||
export function test_clearInterval_immediatelyAfterCreate() {
|
||||
let completed = false;
|
||||
|
||||
const id = timer.setInterval(() => {
|
||||
completed = true;
|
||||
});
|
||||
timer.clearInterval(id);
|
||||
|
||||
TKUnit.wait(0.05);
|
||||
TKUnit.assert(!completed, 'Callback should not be called');
|
||||
}
|
||||
|
||||
export function test_clearTimeout_insideCallback() {
|
||||
let completed = false;
|
||||
|
||||
let id = timer.setTimeout(() => {
|
||||
completed = true;
|
||||
timer.clearTimeout(id);
|
||||
});
|
||||
|
||||
TKUnit.waitUntilReady(() => completed, 0.5);
|
||||
TKUnit.assert(completed, 'Callback should be called');
|
||||
}
|
||||
28
apps/automated/app/timer/timer.md
Normal file
28
apps/automated/app/timer/timer.md
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
nav-title: "timer How-To"
|
||||
title: "timer"
|
||||
environment: nativescript
|
||||
description: "Examples for using timer"
|
||||
previous_url: /ApiReference/timer/HOW-TO
|
||||
---
|
||||
# Timer module
|
||||
### How to require timer module
|
||||
{%snippet timer-require%}
|
||||
|
||||
### Evaluates an expression after 0 milliseconds.
|
||||
{%snippet timer-set-zero%}
|
||||
|
||||
### Evaluates an expression after 0 milliseconds.
|
||||
{%snippet timer-set-zero-args%}
|
||||
|
||||
### Evaluates an expression after a specified number of milliseconds.
|
||||
{%snippet timer-set-ten%}
|
||||
|
||||
### Cancels the evaluation with the clearTimeout method.
|
||||
{%snippet timer-set-fifty%}
|
||||
|
||||
### Evaluates an expression each time a specified number of milliseconds has elapsed.
|
||||
{%snippet timer-set-expression%}
|
||||
|
||||
### Cancel the interval previously started using the setInterval method.
|
||||
{%snippet timer-set-interval%}
|
||||
Reference in New Issue
Block a user