tizen 2.3 release
[framework/web/wearable/wrt-security.git] / tests / smack_security / smackSecurityTest1 / js / WAC2.0 / TestAccelerometer.js
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3  *
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
7  *
8  *        http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16 /**
17  * This file contains the implementation of test Accelerometer class.
18  *
19  * @author      xiangguo.qi (xiangguo.qi @samsung.com)
20  * @version     0.1
21  */
22
23
24 var AccelerometerObj = deviceapis.accelerometer;
25 var WatchID = "";
26 // Accelerometer001
27 function presenceTest()
28 {
29     TestEngine.test("Checking checking", true);
30     TestEngine.test("Checking deviceapis object", deviceapis);
31     TestEngine.test("Checking Accelerometer object", AccelerometerObj);
32
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));
36 }
37
38 // Accelerometer002
39 function getCurrentAccelerationInvalidParamsTest()
40 {
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]);
48 }
49
50
51 // Accelerometer003
52 function getCurrentAccelerationTest()
53 {
54     getCurrentAccelerationCheck();
55 }
56
57 function getCurrentAccelerationCheck()
58 {
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));
64     }
65
66     function getFail() {
67         TestEngine.test("get current acceleration",false);
68     }
69
70     var cbObj = TestEngine.registerCallback("getCurrentAcceleration", getSuccess, getFail);
71     AccelerometerObj.getCurrentAcceleration(cbObj.successCallback, cbObj.errorCallback);
72
73 }
74
75 // Accelerometer004
76 function watchAccelerationInvalidParamsTest()
77 {
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})));
89 }
90
91
92 // Accelerometer005
93 function watchAccelerationTest()
94 {
95     watchAccelerationCheck();
96 }
97
98 function watchAccelerationCheck()
99 {
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));
105
106     }
107
108     function watchFail() {
109         TestEngine.test("watch acceleration",false);
110     }
111
112     var cbObj = TestEngine.registerCallback("watchAcceleration", watchSuccess, watchFail);
113     WatchID = AccelerometerObj.watchAcceleration(cbObj.successCallback, cbObj.errorCallback, {minNotificationInterval:2000});
114
115 }
116
117 // Accelerometer006
118 function clearWatchTest()
119 {
120     var ids = [WatchID, null, new Date(), true, undefined, "test", [6, 6, 6]];
121     for (var i =0; i < ids.length; ++i) {
122         try
123         {
124             AccelerometerObj.clearWatch(ids[i]);
125             TestEngine.logOK("clearWatch OK");
126         }
127         catch (error) {
128             TestEngine.logErr("clearWatch Error");
129         }
130     }
131
132     try
133     {
134         AccelerometerObj.clearWatch();
135         TestEngine.logOK("clearWatch OK");
136     }
137     catch (error) {
138         TestEngine.logErr("clearWatch Error");
139     }
140 }
141
142
143 //=============================================================================
144
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");
152