forked from NativeScript/NativeScript
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprogress-tests.ts
More file actions
141 lines (111 loc) · 4.76 KB
/
progress-tests.ts
File metadata and controls
141 lines (111 loc) · 4.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
import TKUnit = require("../../TKUnit");
import helper = require("../helper");
import viewModule = require("ui/core/view");
import observable = require("data/observable");
import color = require("color");
import platform = require("platform");
// >> article-require-progress-module
import progressModule = require("ui/progress");
// << article-require-progress-module
export function test_default_TNS_values() {
// >> article-create-progress-view
var progress = new progressModule.Progress();
// << article-create-progress-view
TKUnit.assertEqual(progress.value, 0, "Default progress.value");
TKUnit.assertEqual(progress.maxValue, 100, "Default progress.maxValue");
}
export function test_default_native_values() {
var progress = new progressModule.Progress();
function testAction(views: Array<viewModule.View>) {
TKUnit.assertEqual(getNativeValue(progress), 0, "Default native progress.value");
TKUnit.assertEqual(getNativeMaxValue(progress), 100, "Default native progress.maxValue");
};
helper.buildUIAndRunTest(progress, testAction);
}
export function test_set_TNS_value_updates_native_value() {
var progress = new progressModule.Progress();
function testAction(views: Array<viewModule.View>) {
progress.value = 5;
TKUnit.assertAreClose(getNativeValue(progress), 5, 0.001, "Native value is different from TNS value.");
};
helper.buildUIAndRunTest(progress, testAction);
}
export function test_set_value_greater_than_max_should_set_value_to_max() {
var progress = new progressModule.Progress();
function testAction(views: Array<viewModule.View>) {
progress.maxValue = 10;
progress.value = 20;
TKUnit.assertEqual(progress.value, 10, "progress.value");
};
helper.buildUIAndRunTest(progress, testAction);
}
// Uncomment this when find way to check android Drawable color set by setColorFilter() method.
if (platform.device.os === platform.platformNames.ios) {
exports.test_set_color = function () {
var progress = new progressModule.Progress();
progress.color = new color.Color("red");
function testAction(views: Array<viewModule.View>) {
TKUnit.assertEqual(progress.color.ios.CGColor, progress.ios.progressTintColor.CGColor, "progress.color");
};
helper.buildUIAndRunTest(progress, testAction);
}
exports.test_set_backgroundColor = function () {
var progress = new progressModule.Progress();
progress.backgroundColor = new color.Color("red");
function testAction(views: Array<viewModule.View>) {
TKUnit.assertEqual(progress.backgroundColor.ios.CGColor, progress.ios.trackTintColor.CGColor, "progress.color");
};
helper.buildUIAndRunTest(progress, testAction);
}
}
export function test_set_maxValue_should_adjust_value() {
var progress = new progressModule.Progress();
// >> article-set-value
progress.maxValue = 255;
progress.value = 16;
// << article-set-value
function testAction(views: Array<viewModule.View>) {
progress.maxValue = 10;
TKUnit.assertEqual(progress.maxValue, 10, "progress.maxValue");
TKUnit.assertEqual(progress.value, 10, "progress.value");
};
helper.buildUIAndRunTest(progress, testAction);
}
export function test_property_changed_event_when_setting_maxValue_with_adjust() {
var progress = new progressModule.Progress();
progress.maxValue = 100;
progress.value = 50;
function testAction(views: Array<viewModule.View>) {
var changedProperties = {};
var allChanges = 0;
progress.on(observable.Observable.propertyChangeEvent, function (data: observable.EventData) {
allChanges++;
changedProperties[(<observable.PropertyChangeData>data).propertyName] = true;
});
// Act
progress.maxValue = 40;
progress.off(observable.Observable.propertyChangeEvent);
// Assert
TKUnit.assert(changedProperties["value"], "Property changed for 'value' not called.");
TKUnit.assert(changedProperties["maxValue"], "Property changed for 'maxValue' not called.");
TKUnit.assertEqual(allChanges, 2, "Property changed callbacks.");
};
helper.buildUIAndRunTest(progress, testAction);
}
function getNativeValue(progress: progressModule.Progress): number {
if (progress.android) {
return progress.android.getProgress();
}
else if (progress.ios) {
return progress.ios.progress * progress.maxValue;
}
}
function getNativeMaxValue(progress: progressModule.Progress): number {
if (progress.android) {
return progress.android.getMax();
}
else if (progress.ios) {
// there is no max value in ios - the range is always [0, 1]
return progress.maxValue;
}
}