Skip to content

Commit 1f6a3b7

Browse files
committed
Align alertview alerts with choiceset alerts
1 parent ead31de commit 1f6a3b7

2 files changed

Lines changed: 106 additions & 22 deletions

File tree

lib/js/src/manager/screen/utils/AlertView.js

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class AlertView {
4141
this._text = null;
4242
this._secondaryText = null;
4343
this._tertiaryText = null;
44-
this._timeout = null;
44+
this._timeout = AlertView._TIMEOUT_DEFAULT;
4545
this._audio = null;
4646
this._showWaitIndicator = false;
4747
this._softButtons = [];
@@ -197,10 +197,15 @@ class AlertView {
197197

198198
/**
199199
* Get the Timeout
200-
* @returns {Number} - the _defaultTimeout value
200+
* @returns {Number} - the AlertView._DEFAULT_TIMEOUT value
201201
*/
202202
getDefaultTimeout () {
203-
return AlertView._defaultTimeout;
203+
if (AlertView._DEFAULT_TIMEOUT < AlertView._TIMEOUT_MIN) {
204+
return AlertView._TIMEOUT_MIN;
205+
} else if (AlertView._DEFAULT_TIMEOUT > AlertView._TIMEOUT_MAX) {
206+
return AlertView._TIMEOUT_MAX;
207+
}
208+
return AlertView._DEFAULT_TIMEOUT;
204209
}
205210

206211
/**
@@ -214,14 +219,7 @@ class AlertView {
214219
* @returns {AlertView} - A reference to this instance to support method chaining.
215220
*/
216221
setDefaultTimeout (defaultTimeout) {
217-
if (defaultTimeout <= TIMEOUT_MIN) {
218-
AlertView._defaultTimeout = TIMEOUT_MIN;
219-
return this;
220-
} else if (defaultTimeout >= TIMEOUT_MAX) {
221-
AlertView._defaultTimeout = TIMEOUT_MAX;
222-
return this;
223-
}
224-
AlertView._defaultTimeout = defaultTimeout;
222+
AlertView._DEFAULT_TIMEOUT = defaultTimeout;
225223
return this;
226224
}
227225

@@ -242,14 +240,14 @@ class AlertView {
242240
* @returns {Number} - the timeout value
243241
*/
244242
getTimeout () {
245-
if (this._timeout === null || this._timeout === undefined) {
246-
this._timeout = AlertView._defaultTimeout;
247-
} else if (this._timeout === AlertView._defaultTimeout) {
248-
return AlertView._defaultTimeout;
249-
} else if (this._timeout < TIMEOUT_MIN) {
250-
return TIMEOUT_MIN;
251-
} else if (this._timeout > TIMEOUT_MAX) {
252-
return TIMEOUT_MAX;
243+
if (this._timeout === AlertView._TIMEOUT_DEFAULT) {
244+
this._timeout = this.getDefaultTimeout();
245+
} else if (this._timeout === AlertView._DEFAULT_TIMEOUT) {
246+
return AlertView._DEFAULT_TIMEOUT;
247+
} else if (this._timeout < AlertView._TIMEOUT_MIN) {
248+
return AlertView._TIMEOUT_MIN;
249+
} else if (this._timeout > AlertView._TIMEOUT_MAX) {
250+
return AlertView._TIMEOUT_MAX;
253251
}
254252
return this._timeout;
255253
}
@@ -304,8 +302,9 @@ class AlertView {
304302
}
305303
}
306304

307-
AlertView._defaultTimeout = 5;
308-
const TIMEOUT_MIN = 3;
309-
const TIMEOUT_MAX = 10;
305+
AlertView._TIMEOUT_DEFAULT = 0;
306+
AlertView._DEFAULT_TIMEOUT = 5;
307+
AlertView._TIMEOUT_MIN = 3;
308+
AlertView._TIMEOUT_MAX = 10;
310309

311310
export { AlertView };

tests/managers/screen/AlertViewTests.js

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,5 +96,90 @@ module.exports = function (appClient) {
9696

9797
done();
9898
});
99+
100+
it('testReturnDefaultTimeoutForUnsetTimeout', function () {
101+
const alertView = new SDL.manager.screen.utils.AlertView();
102+
const testDefaultTimeout = 6;
103+
alertView.setDefaultTimeout(testDefaultTimeout);
104+
105+
Validator.assertEquals(alertView.getDefaultTimeout(), testDefaultTimeout);
106+
Validator.assertEquals(alertView.getTimeout(), testDefaultTimeout);
107+
});
108+
109+
it('testReturnDefaultTimeoutForSetTimeout', function () {
110+
const alertView = new SDL.manager.screen.utils.AlertView();
111+
const testTimeout = 7;
112+
const testDefaultTimeout = 9;
113+
alertView.setDefaultTimeout(testDefaultTimeout);
114+
alertView.setTimeout(testTimeout);
115+
116+
Validator.assertEquals(alertView.getDefaultTimeout(), testDefaultTimeout);
117+
Validator.assertEquals(alertView.getTimeout(), testTimeout);
118+
});
119+
120+
it('testReturnDefaultMaxTimeout', function () {
121+
const alertView = new SDL.manager.screen.utils.AlertView();
122+
const testDefaultTimeout = 155;
123+
alertView.setDefaultTimeout(testDefaultTimeout);
124+
125+
Validator.assertEquals(alertView.getDefaultTimeout(), SDL.manager.screen.utils.AlertView._TIMEOUT_MAX);
126+
Validator.assertEquals(alertView.getTimeout(), SDL.manager.screen.utils.AlertView._TIMEOUT_MAX);
127+
});
128+
129+
it('testReturnDefaultMinTimeout', function () {
130+
const alertView = new SDL.manager.screen.utils.AlertView();
131+
const testDefaultTimeout = -3;
132+
alertView.setDefaultTimeout(testDefaultTimeout);
133+
134+
Validator.assertEquals(alertView.getDefaultTimeout(), SDL.manager.screen.utils.AlertView._TIMEOUT_MIN);
135+
Validator.assertEquals(alertView.getTimeout(), SDL.manager.screen.utils.AlertView._TIMEOUT_MIN);
136+
});
137+
138+
it('testReturnTimeoutUnset', function () {
139+
const alertView = new SDL.manager.screen.utils.AlertView();
140+
const testDefaultTimeout = 7;
141+
alertView.setDefaultTimeout(testDefaultTimeout);
142+
143+
Validator.assertEquals(alertView.getTimeout(), testDefaultTimeout);
144+
});
145+
146+
it('testReturnTimeoutZero', function () {
147+
const alertView = new SDL.manager.screen.utils.AlertView();
148+
const testDefaultTimeout = 7;
149+
alertView.setDefaultTimeout(testDefaultTimeout);
150+
alertView.setTimeout(0);
151+
152+
Validator.assertEquals(alertView.getTimeout(), testDefaultTimeout);
153+
});
154+
155+
it('testReturnTimeout', function () {
156+
const alertView = new SDL.manager.screen.utils.AlertView();
157+
const testDefaultTimeout = 7;
158+
const testTimeout = 9;
159+
alertView.setDefaultTimeout(testDefaultTimeout);
160+
alertView.setTimeout(testTimeout);
161+
162+
Validator.assertEquals(alertView.getTimeout(), testTimeout);
163+
});
164+
165+
it('testReturnMaxTimeout', function () {
166+
const alertView = new SDL.manager.screen.utils.AlertView();
167+
const testDefaultTimeout = 7;
168+
const testTimeout = 214;
169+
alertView.setDefaultTimeout(testDefaultTimeout);
170+
alertView.setTimeout(testTimeout);
171+
172+
Validator.assertEquals(alertView.getTimeout(), SDL.manager.screen.utils.AlertView._TIMEOUT_MAX);
173+
});
174+
175+
it('testReturnMinTimeout', function () {
176+
const alertView = new SDL.manager.screen.utils.AlertView();
177+
const testDefaultTimeout = 7;
178+
const testTimeout = 2.25;
179+
alertView.setDefaultTimeout(testDefaultTimeout);
180+
alertView.setTimeout(testTimeout);
181+
182+
Validator.assertEquals(alertView.getTimeout(), SDL.manager.screen.utils.AlertView._TIMEOUT_MIN);
183+
});
99184
});
100185
};

0 commit comments

Comments
 (0)