2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 * This file contains the implementation of test Accelerometer class.
19 * @author xiangguo.qi (xiangguo.qi @samsung.com)
24 var AccelerometerObj = deviceapis.accelerometer;
27 function presenceTest()
29 TestEngine.test("Checking checking", true);
30 TestEngine.test("Checking deviceapis object", deviceapis);
31 TestEngine.test("Checking Accelerometer object", AccelerometerObj);
33 TestEngine.test("Checking type of getCurrentAcceleration", isFunction(AccelerometerObj.getCurrentAcceleration));
34 TestEngine.test("Checking type of watchAcceleration", isFunction(AccelerometerObj.watchAcceleration));
35 TestEngine.test("Checking type of clearWatch", isFunction(AccelerometerObj.clearWatch));
39 function getCurrentAccelerationInvalidParamsTest()
41 // Following two tests should silently fail according to WAC 2.0
42 TestEngine.test("getCurrentAcceleration undefined callback", isUndefined(AccelerometerObj.getCurrentAcceleration(undefined)));
43 TestEngine.test("getCurrentAcceleration null callback", isUndefined(AccelerometerObj.getCurrentAcceleration(null)));
44 // Following tests should throw errors according to WAC 2.0
45 TestEngine.catchErrorType("code",17, AccelerometerObj, "getCurrentAcceleration", "test");
46 TestEngine.catchErrorType("code",17, AccelerometerObj, "getCurrentAcceleration", new Date());
47 TestEngine.catchErrorType("code",17, AccelerometerObj, "getCurrentAcceleration", [6, 6, 6]);
52 function getCurrentAccelerationTest()
54 getCurrentAccelerationCheck();
57 function getCurrentAccelerationCheck()
59 function getSuccess(acceleration) {
60 TestEngine.test("get current acceleration",true);
61 TestEngine.test("acceleration.xAxis", isNumber(acceleration.xAxis));
62 TestEngine.test("acceleration.yAxis", isNumber(acceleration.yAxis));
63 TestEngine.test("acceleration.zAxis", isNumber(acceleration.zAxis));
67 TestEngine.test("get current acceleration",false);
70 var cbObj = TestEngine.registerCallback("getCurrentAcceleration", getSuccess, getFail);
71 AccelerometerObj.getCurrentAcceleration(cbObj.successCallback, cbObj.errorCallback);
76 function watchAccelerationInvalidParamsTest()
78 // Following two tests should silently fail according to WAC 2.0
79 TestEngine.test("watchAcceleration undefined callback", isUndefined(AccelerometerObj.watchAcceleration(undefined)));
80 TestEngine.test("watchAcceleration null callback", isUndefined(AccelerometerObj.watchAcceleration(null)));
81 // Following tests should throw errors according to WAC 2.0
82 TestEngine.catchErrorType("code",17, AccelerometerObj, "watchAcceleration", "test");
83 TestEngine.catchErrorType("code",17, AccelerometerObj, "watchAcceleration", new Date());
84 TestEngine.catchErrorType("code",17, AccelerometerObj, "watchAcceleration", [6, 6, 6]);
85 // Following tests should ignore optional parameter if it is of invalid type, according to WAC 2.0
86 TestEngine.test("watchAcceleration ignore invalid params", isNumber(AccelerometerObj.watchAcceleration(function(){}, function(){}, "test")));
87 TestEngine.test("watchAcceleration ignore invalid params", isNumber(AccelerometerObj.watchAcceleration(function(){}, function(){}, {minNotificationInterval:"test"})));
88 TestEngine.test("watchAcceleration ignore invalid params", isNumber(AccelerometerObj.watchAcceleration(function(){}, function(){}, {minNotificationInterval:true})));
93 function watchAccelerationTest()
95 watchAccelerationCheck();
98 function watchAccelerationCheck()
100 function watchSuccess(acceleration) {
101 TestEngine.test("watch acceleration",true);
102 TestEngine.test("acceleration.xAxis", isNumber(acceleration.xAxis));
103 TestEngine.test("acceleration.yAxis", isNumber(acceleration.yAxis));
104 TestEngine.test("acceleration.zAxis", isNumber(acceleration.zAxis));
108 function watchFail() {
109 TestEngine.test("watch acceleration",false);
112 var cbObj = TestEngine.registerCallback("watchAcceleration", watchSuccess, watchFail);
113 WatchID = AccelerometerObj.watchAcceleration(cbObj.successCallback, cbObj.errorCallback, {minNotificationInterval:2000});
118 function clearWatchTest()
120 var ids = [WatchID, null, new Date(), true, undefined, "test", [6, 6, 6]];
121 for (var i =0; i < ids.length; ++i) {
124 AccelerometerObj.clearWatch(ids[i]);
125 TestEngine.logOK("clearWatch OK");
128 TestEngine.logErr("clearWatch Error");
134 AccelerometerObj.clearWatch();
135 TestEngine.logOK("clearWatch OK");
138 TestEngine.logErr("clearWatch Error");
143 //=============================================================================
145 TestEngine.setTestSuiteName("[WAC2.0][Accelerometer]", 60*1000); //2min time out for callbacks
146 //TestEngine.addTest(true, presenceTest, "[WAC2.0][Accelerometer] Accelerometer functions presence test");
147 //TestEngine.addTest(true, getCurrentAccelerationInvalidParamsTest, "[WAC2.0][Accelerometer] getCurrentAcceleration invalid params test");
148 TestEngine.addTest(true, getCurrentAccelerationTest, "[WAC2.0][Accelerometer] getCurrentAcceleration test");
149 //TestEngine.addTest(true, watchAccelerationInvalidParamsTest, "[WAC2.0][Accelerometer] watchAcceleration invalid params test");
150 //TestEngine.addTest(true, watchAccelerationTest, "[WAC2.0][Accelerometer] watchtAcceleration test");
151 //TestEngine.addTest(true, clearWatchTest, "[WAC2.0][Accelerometer] clearWatch test");