tizen 2.3 release
[framework/web/wearable/wrt-security.git] / tests / smack_security / smackSecurityTest2 / js / WAC2.0 / TestDevicestatus.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 contact class.
18  *
19  * @author      Pawel Misiak (p.misiak@samsung.com)
20  * @author      Shi Hezhang (hezhang.shi@samsung.com)
21  * @version     0.1
22  */
23
24 var DevStatusObj = deviceapis.devicestatus;
25
26 var aspectsProperty=Object();
27 aspectsProperty['Battery']=['batteryLevel', 'batteryBeingCharged'];
28 aspectsProperty['CellularHardware']=['status'];
29 aspectsProperty['CellularNetwork']=['isInRoaming', 'signalStrength', 'operatorName'];
30 aspectsProperty['Device']=['imei', 'model', 'version', 'vendor'];
31 aspectsProperty['Display']=['resolutionHeight', 'pixelAspectRatio', 'dpiY', 'resolutionWidth', 'dpiX', 'colorDepth'];
32 aspectsProperty['MemoryUnit']=['size', 'removable', 'availableSize'];
33 aspectsProperty['OperatingSystem']=['language', 'version', 'name', 'vendor'];
34 aspectsProperty['WebRuntime']=['wacVersion', 'supportedImageFormats', 'version', 'name', 'vendor'];
35 aspectsProperty['WiFiHardware']=['status'];
36 aspectsProperty['WiFiNetwork']=['ssid', 'signalStrength', 'networkStatus'];
37
38 var wrongProperty=['', 'abc'];
39
40 var aspectsComponent=Object();
41 aspectsComponent['Battery']=['_default'];
42 aspectsComponent['CellularHardware']=['_default'];
43 aspectsComponent['CellularNetwork']=['_default'];
44 aspectsComponent['Device']=['_default'];
45 aspectsComponent['Display']=['_default', '_active'];
46 aspectsComponent['MemoryUnit']=['_default'];
47 aspectsComponent['OperatingSystem']=['_active', '_default'];
48 aspectsComponent['WebRuntime']=['_active', '_default'];
49 aspectsComponent['WiFiHardware']=['_default'];
50 aspectsComponent['WiFiNetwork']=['_default'];
51
52 //callbacks;
53 function emptyCallback() {
54     jsPrint("empty callback");
55 }
56
57 function onValueRetrieved(value) {
58     jsPrint("!!!!! value=" + value);
59     TestEngine.test("return value is valid", (value != null));
60 }
61
62 function onError (error) {
63     TestEngine.test("onError", false);
64 }
65
66 //DevStatus001;
67 function presenceTest()
68 {
69     TestEngine.test("Checking deviceapis object", deviceapis);
70     TestEngine.test("Checking Devicestatus object", DevStatusObj);
71
72     TestEngine.test("Checking type of getComponents", isFunction(DevStatusObj.getComponents));
73     TestEngine.test("Checking type of isSupported", isFunction(DevStatusObj.isSupported));
74     TestEngine.test("Checking type of getPropertyValue", isFunction(DevStatusObj.getPropertyValue));
75     TestEngine.test("Checking type of watchPropertyChange", isFunction(DevStatusObj.watchPropertyChange));
76     TestEngine.test("Checking type of clearPropertyChange", isFunction(DevStatusObj.clearPropertyChange));
77 }
78
79 //DevStatus002;
80 function getCompomentInvalidParametersTest() {
81     TestEngine.catchErrorType("code", 17, DevStatusObj, "getComponents");
82
83     try {
84         DevStatusObj.getComponents(undefined);
85         TestEngine.test("exception should not be thrown", true);
86     } catch(e) {
87         jsPrint("e.message=" + e.message);
88         jsPrint("e.code=" + e.code);
89         TestEngine.test("exception catched", false);
90     }
91
92     try {
93         DevStatusObj.getComponents(null);
94         TestEngine.test("exception should not be thrown", true);
95     } catch(e) {
96         jsPrint("e.message=" + e.message);
97         jsPrint("e.code=" + e.code);
98         TestEngine.test("exception catched", false);
99     }
100
101     try {
102         DevStatusObj.getComponents(1234);
103         TestEngine.test("exception should not be thrown", true);
104     } catch(e) {
105         jsPrint("e.message=" + e.message);
106         jsPrint("e.code=" + e.code);
107         TestEngine.test("exception catched", false);
108     }
109 }
110
111 //DevStatus003;
112 function isSupportedInvalidParametersTest() {
113     TestEngine.catchErrorType("code", 17, DevStatusObj, "isSupported");
114     try {
115         var stat = DevStatusObj.isSupported(undefined);
116         TestEngine.test("exception should not be thrown", stat == false);
117     } catch(e) {
118         jsPrint("e.message=" + e.message);
119         jsPrint("e.code=" + e.code);
120         TestEngine.test("exception catched", false);
121     }
122
123     try {
124         var stat = DevStatusObj.isSupported(null);
125         TestEngine.test("exception should not be thrown", stat == false);
126     } catch(e) {
127         jsPrint("e.message=" + e.message);
128         jsPrint("e.code=" + e.code);
129         TestEngine.test("exception catched", false);
130     }
131
132     try {
133         var stat = DevStatusObj.isSupported(1234);
134         TestEngine.test("exception should not be thrown", stat == false);
135     } catch(e) {
136         jsPrint("e.message=" + e.message);
137         jsPrint("e.code=" + e.code);
138         TestEngine.test("exception catched", false);
139     }
140 }
141
142 //DevStatus004;
143 function getPropertyValueInvalidArgumentsTest() {
144     var onInvalidValueError = function (error) {
145         TestEngine.test("INVALID_VALUES_ERR", error.code == error.INVALID_VALUES_ERR);
146     }
147     var failedSuccess = function (value) {
148         TestEngine.logErr("Success should not be called");
149     }
150     var cbObjInvalidErr = TestEngine.registerCallback("BatterybatteryLeveltest",
151         failedSuccess,
152         onInvalidValueError,
153         6);
154
155     try {
156         DevStatusObj.getPropertyValue(null, null,{
157             property:"batteryLevel",
158             aspect:"Battery"
159         });
160         TestEngine.test("exception should not be thrown", true);
161     } catch(e) {
162         jsPrint("e.message=" + e.message);
163         TestEngine.test("exception catched", false);
164     }
165
166     try {
167         DevStatusObj.getPropertyValue(null, cbObjInvalidErr.errorCallback,{
168             property:"batteryLevel",
169             aspect:"Battery"
170         });
171         TestEngine.test("exception should not be thrown", true);
172     } catch(e) {
173         jsPrint("e.message=" + e.message);
174         TestEngine.test("exception catched", false);
175     }
176
177     try {
178         DevStatusObj.getPropertyValue(cbObjInvalidErr.successCallback, cbObjInvalidErr.errorCallback, 1);
179         TestEngine.test("exception should not be thrown", true);
180     } catch(e) {
181         jsPrint("e.message=" + e.message);
182         TestEngine.test("exception catched", false);
183     }
184
185     try {
186         DevStatusObj.getPropertyValue(cbObjInvalidErr.successCallback, cbObjInvalidErr.errorCallback, {
187             property:"batteryLevel"
188         });
189         TestEngine.test("exception should not be thrown", true);
190     } catch(e) {
191         jsPrint("e.message=" + e.message);
192         TestEngine.test("exception catched", false);
193     }
194
195     try {
196         DevStatusObj.getPropertyValue(cbObjInvalidErr.successCallback, cbObjInvalidErr.errorCallback, {
197             property:"batteryLevel",
198             aspect:"invalid"
199         });
200         TestEngine.test("exception should not be thrown", true);
201     } catch(e) {
202         jsPrint("e.message=" + e.message);
203         TestEngine.test("exception catched", false);
204     }
205
206     try {
207         DevStatusObj.getPropertyValue(cbObjInvalidErr.successCallback, cbObjInvalidErr.errorCallback, {
208             aspect:"invalid"
209         });
210         TestEngine.test("exception should not be thrown", true);
211     } catch(e) {
212         jsPrint("e.message=" + e.message);
213         TestEngine.test("exception catched", false);
214     }
215
216     try {
217         DevStatusObj.getPropertyValue(cbObjInvalidErr.successCallback, cbObjInvalidErr.errorCallback, {
218             invalid1:"",
219             invalid2:""
220         });
221         TestEngine.test("exception should not be thrown", true);
222     } catch(e) {
223         jsPrint("e.message=" + e.message);
224         TestEngine.test("exception catched", false);
225     }
226 }
227
228 //DevStatus005;
229 function watchPropertyChangeInvalidParametersTest() {
230
231     var callbackFunction = function (value) {
232         TestEngine.test("SuccessCallback should not be thrown", false);
233     }
234     var onSuccessError = function(err) {
235         TestEngine.logOK("Error: " + err.code);
236         TestEngine.test("Error callback called as expected", true);
237     }
238
239     try {
240         DevStatusObj.watchPropertyChange(callbackFunction, onSuccessError, 1);
241         TestEngine.test("exception should not be thrown", true);
242     } catch(e) {
243         jsPrint("e.message=" + e.message);
244         TestEngine.test("exception catched", false);
245     }
246
247     try {
248         DevStatusObj.watchPropertyChange(null, null, 1);
249         TestEngine.test("exception should not be thrown", true);
250     } catch(e) {
251         jsPrint("e.message=" + e.message);
252         TestEngine.test("exception catched", false);
253     }
254
255     try {
256         DevStatusObj.watchPropertyChange(callbackFunction, onSuccessError, {
257             property:"batteryLevel"
258         });
259         TestEngine.test("exception should not be thrown", true);
260     } catch(e) {
261         jsPrint("e.message=" + e.message);
262         TestEngine.test("exception catched", false);
263     }
264
265     try {
266         DevStatusObj.watchPropertyChange(callbackFunction, onSuccessError, {
267             property:"batteryLevel",
268             aspect:"invalid"
269         });
270         TestEngine.test("exception should not be thrown", true);
271     } catch(e) {
272         jsPrint("e.message=" + e.message);
273         TestEngine.test("exception catched", false);
274     }
275
276     try {
277         DevStatusObj.watchPropertyChange(callbackFunction, onSuccessError, {
278             invalid:"batteryLevel",
279             invalid:"Battery"
280         });
281         TestEngine.test("exception should not be thrown", true);
282     } catch(e) {
283         jsPrint("e.message=" + e.message);
284         TestEngine.test("exception catched", false);
285     }
286
287     try {
288         DevStatusObj.watchPropertyChange(callbackFunction, onSuccessError, {
289             property:"invalid",
290             aspect:"invalid"
291         });
292         TestEngine.test("exception should not be thrown", true);
293     } catch(e) {
294         jsPrint("e.message=" + e.message);
295         TestEngine.test("exception catched", false);
296     }
297
298 }
299
300 //DevStatus006;
301 function clearPropertyChangeInvalidParametersTest() {
302     var callbackFunction = function (value) {
303         TestEngine.logErr("Function called as watch id ???", false);
304     }
305
306     try {
307         DevStatusObj.clearPropertyChange("invalid int value");
308         TestEngine.test("exception should not be thrown", true);
309     } catch(e) {
310         jsPrint("e.message=" + e.message);
311         TestEngine.test("exception catched", false);
312     }
313
314     try {
315         DevStatusObj.clearPropertyChange(callbackFunction);
316         TestEngine.test("exception should be thrown", false);
317     } catch(e) {
318         jsPrint("e.message=" + e.message);
319         TestEngine.test("exception catched", e.code==e.TYPE_MISMATCH_ERR);
320     }
321
322     try {
323         DevStatusObj.clearPropertyChange(11111111);
324         TestEngine.test("exception should not be thrown", true);
325     } catch(e) {
326         jsPrint("e.message=" + e.message);
327         TestEngine.test("exception catched", false);
328     }
329 }
330
331 //DevStatus007;
332 function getComponentsTest() {
333     for (var aspect in aspectsComponent) {
334         var retComponent = DevStatusObj.getComponents(aspect);
335         aspectsComponent[aspect].sort();
336         retComponent.sort();
337         jsPrint("retComponent=" + retComponent);
338         jsPrint("aspectsComponent[aspect]="+aspectsComponent[aspect]);
339         TestEngine.test("length of component for aspect = " + aspect + "is proper", retComponent.length == aspectsComponent[aspect].length);
340
341         for (var i =0; i<retComponent.length; i++) {
342             TestEngine.test("component for aspect " + aspect + " table is equal", retComponent[i] == aspectsComponent[aspect][i]);
343         }
344     }
345 }
346
347 //DevStatus008;
348 function isSupportedTest() {
349     //aspect check;
350     for (var aspect in aspectsProperty) {
351         TestEngine.test("Aspect " + aspect + " check", DevStatusObj.isSupported(aspect));
352     }
353     TestEngine.test("Aspect empty check", !DevStatusObj.isSupported(""));
354     TestEngine.test("Aspect random abc check", !DevStatusObj.isSupported("abc"));
355
356     //aspect and property check;
357     for (var aspect in aspectsProperty) {
358         for (var property in aspectsProperty[aspect]) {
359             var propertyName = aspectsProperty[aspect][property];
360             TestEngine.test("Aspect " + aspect + "/" + propertyName + " check", DevStatusObj.isSupported(aspect, propertyName));
361         }
362         TestEngine.test("Aspect " + aspect + "/null check", DevStatusObj.isSupported(aspect, null));
363     }
364
365     //aspect and wrong property check;
366     for (var aspect in aspectsProperty) {
367         for (var property in wrongProperty) {
368             var propertyName = wrongProperty[property];
369             TestEngine.test("Wrong aspect " + aspect + "/" + propertyName  + " check", !DevStatusObj.isSupported(aspect, propertyName ));
370         }
371     }
372 }
373
374 //DevStatus009-1;
375 function getPropertyValueTest1a() {
376     var cbObj = TestEngine.registerCallback("BatterybatteryLeveltest",
377         onValueRetrieved,
378         onError
379         );
380
381     DevStatusObj.getPropertyValue(
382         cbObj.successCallback, cbObj.errorCallback,
383         {
384             property:"batteryLevel",
385             aspect:"Battery"
386         }
387         );
388 }
389
390 //DevStatus009-1;
391 function getPropertyValueTest1b() {
392     var cbObj = TestEngine.registerCallback("BatterybatteryBeingChargedtest",
393         onValueRetrieved,
394         onError
395         );
396
397     DevStatusObj.getPropertyValue(
398         cbObj.successCallback, cbObj.errorCallback,
399         {
400             property:"batteryBeingCharged",
401             aspect:"Battery"
402         }
403         );
404 }
405
406 //DevStatus009-2;
407 function getPropertyValueTest2a() {
408     var cbObj = TestEngine.registerCallback("CellularHardwarestatustest",
409         onValueRetrieved,
410         onError
411         );
412
413     DevStatusObj.getPropertyValue(
414         cbObj.successCallback, cbObj.errorCallback,
415         {
416             property:"status",
417             aspect:"CellularHardware"
418         }
419         );
420 }
421
422 //DevStatus009-3;
423 function getPropertyValueTest3a() {
424     var cbObj = TestEngine.registerCallback("CellularNetworkisInRoamingtest",
425         onValueRetrieved,
426         onError
427         );
428
429     DevStatusObj.getPropertyValue(
430         cbObj.successCallback, cbObj.errorCallback,
431         {
432             property:"isInRoaming",
433             aspect:"CellularNetwork"
434         }
435         );
436 }
437
438 //DevStatus009-2;
439 function getPropertyValueTest3b() {
440     var cbObj = TestEngine.registerCallback("CellularNetworksignalStrengthtest",
441         onValueRetrieved,
442         onError
443         );
444
445     DevStatusObj.getPropertyValue(
446         cbObj.successCallback, cbObj.errorCallback,
447         {
448             property:"signalStrength",
449             aspect:"CellularNetwork"
450         }
451         );
452 }
453
454 //DevStatus009-2;
455 function getPropertyValueTest3c() {
456     var cbObj = TestEngine.registerCallback("CellularNetworkoperatorNametest",
457         onValueRetrieved,
458         onError
459         );
460
461     DevStatusObj.getPropertyValue(
462         cbObj.successCallback, cbObj.errorCallback,
463         {
464             property:"operatorName",
465             aspect:"CellularNetwork"
466         }
467         );
468 }
469
470 //DevStatus009-4;
471 function getPropertyValueTest4a() {
472     var cbObj = TestEngine.registerCallback("Deviceimeitest",
473         onValueRetrieved,
474         onError
475         );
476
477     DevStatusObj.getPropertyValue(
478         cbObj.successCallback, cbObj.errorCallback,
479         {
480             property:"imei",
481             aspect:"Device"
482         }
483         );
484 }
485
486 //DevStatus009-4;
487 function getPropertyValueTest4b() {
488     var cbObj = TestEngine.registerCallback("Devicemodeltest",
489         onValueRetrieved,
490         onError
491         );
492
493     DevStatusObj.getPropertyValue(
494         cbObj.successCallback, cbObj.errorCallback,
495         {
496             property:"model",
497             aspect:"Device"
498         }
499         );
500 }
501
502 //DevStatus009-4;
503 function getPropertyValueTest4c() {
504     var cbObj = TestEngine.registerCallback("Deviceversiontest",
505         onValueRetrieved,
506         onError
507         );
508
509     DevStatusObj.getPropertyValue(
510         cbObj.successCallback, cbObj.errorCallback,
511         {
512             property:"version",
513             aspect:"Device"
514         }
515         );
516 }
517
518 //DevStatus009-4;
519 function getPropertyValueTest4d() {
520     var cbObj = TestEngine.registerCallback("Devicevendortest",
521         onValueRetrieved,
522         onError
523         );
524
525     DevStatusObj.getPropertyValue(
526         cbObj.successCallback, cbObj.errorCallback,
527         {
528             property:"vendor",
529             aspect:"Device"
530         }
531         );
532 }
533
534 //DevStatus009-5;
535 function getPropertyValueTest5a() {
536     var cbObj = TestEngine.registerCallback("DisplayresolutionHeighttest",
537         onValueRetrieved,
538         onError
539         );
540
541     DevStatusObj.getPropertyValue(
542         cbObj.successCallback, cbObj.errorCallback,
543         {
544             property:"resolutionHeight",
545             aspect:"Display"
546         }
547         );
548 }
549
550 //DevStatus009-5;
551 function getPropertyValueTest5b() {
552     var cbObj = TestEngine.registerCallback("DisplaypixelAspectRatiotest",
553         onValueRetrieved,
554         onError
555         );
556
557     DevStatusObj.getPropertyValue(
558         cbObj.successCallback, cbObj.errorCallback,
559         {
560             property:"pixelAspectRatio",
561             aspect:"Display"
562         }
563         );
564 }
565
566 //DevStatus009-5;
567 function getPropertyValueTest5c() {
568     var cbObj = TestEngine.registerCallback("DisplaydpiYtest",
569         onValueRetrieved,
570         onError
571         );
572
573     DevStatusObj.getPropertyValue(
574         cbObj.successCallback, cbObj.errorCallback,
575         {
576             property:"dpiY",
577             aspect:"Display"
578         }
579         );
580 }
581
582 //DevStatus009-5;
583 function getPropertyValueTest5d() {
584     var cbObj = TestEngine.registerCallback("DisplayresolutionWidthtest",
585         onValueRetrieved,
586         onError
587         );
588
589     DevStatusObj.getPropertyValue(
590         cbObj.successCallback, cbObj.errorCallback,
591         {
592             property:"resolutionWidth",
593             aspect:"Display"
594         }
595         );
596 }
597
598 //DevStatus009-5;
599 function getPropertyValueTest5e() {
600     var cbObj = TestEngine.registerCallback("DisplaydpiXtest",
601         onValueRetrieved,
602         onError
603         );
604
605     DevStatusObj.getPropertyValue(
606         cbObj.successCallback, cbObj.errorCallback,
607         {
608             property:"dpiX",
609             aspect:"Display"
610         }
611         );
612 }
613
614 //DevStatus009-5;
615 function getPropertyValueTest5f() {
616     var cbObj = TestEngine.registerCallback("DisplaycolorDepthtest",
617         onValueRetrieved,
618         onError
619         );
620
621     DevStatusObj.getPropertyValue(
622         cbObj.successCallback, cbObj.errorCallback,
623         {
624             property:"colorDepth",
625             aspect:"Display"
626         }
627         );
628 }
629
630 //DevStatus009-6;
631 function getPropertyValueTest6a() {
632     var cbObj = TestEngine.registerCallback("MemoryUnitsizetest",
633         onValueRetrieved,
634         onError
635         );
636
637     DevStatusObj.getPropertyValue(
638         cbObj.successCallback, cbObj.errorCallback,
639         {
640             property:"size",
641             aspect:"MemoryUnit"
642         }
643         );
644 }
645
646 //DevStatus009-6;
647 function getPropertyValueTest6b() {
648     var cbObj = TestEngine.registerCallback("MemoryUnitremovabletest",
649         onValueRetrieved,
650         onError
651         );
652
653     DevStatusObj.getPropertyValue(
654         cbObj.successCallback, cbObj.errorCallback,
655         {
656             property:"removable",
657             aspect:"MemoryUnit"
658         }
659         );
660 }
661
662 //DevStatus009-6;
663 function getPropertyValueTest6c() {
664     var cbObj = TestEngine.registerCallback("MemoryUnitavailableSizetest",
665         onValueRetrieved,
666         onError
667         );
668
669     DevStatusObj.getPropertyValue(
670         cbObj.successCallback, cbObj.errorCallback,
671         {
672             property:"availableSize",
673             aspect:"MemoryUnit"
674         }
675         );
676 }
677
678 //DevStatus009-7;
679 function getPropertyValueTest7a() {
680     var cbObj = TestEngine.registerCallback("OperatingSystemlanguagetest",
681         onValueRetrieved,
682         onError
683         );
684
685     DevStatusObj.getPropertyValue(
686         cbObj.successCallback, cbObj.errorCallback,
687         {
688             property:"language",
689             aspect:"OperatingSystem"
690         }
691         );
692 }
693
694 //DevStatus009-7;
695 function getPropertyValueTest7b() {
696     var cbObj = TestEngine.registerCallback("OperatingSystemversiontest",
697         onValueRetrieved,
698         onError
699         );
700
701     DevStatusObj.getPropertyValue(
702         cbObj.successCallback, cbObj.errorCallback,
703         {
704             property:"version",
705             aspect:"OperatingSystem"
706         }
707         );
708 }
709
710 //DevStatus009-7;
711 function getPropertyValueTest7c() {
712     var cbObj = TestEngine.registerCallback("OperatingSystemnametest",
713         onValueRetrieved,
714         onError
715         );
716
717     DevStatusObj.getPropertyValue(
718         cbObj.successCallback, cbObj.errorCallback,
719         {
720             property:"name",
721             aspect:"OperatingSystem"
722         }
723         );
724 }
725
726 //DevStatus009-7;
727 function getPropertyValueTest7d() {
728     var cbObj = TestEngine.registerCallback("OperatingSystemvendortest",
729         onValueRetrieved,
730         onError
731         );
732
733     DevStatusObj.getPropertyValue(
734         cbObj.successCallback, cbObj.errorCallback,
735         {
736             property:"vendor",
737             aspect:"OperatingSystem"
738         }
739         );
740 }
741
742 //DevStatus009-8;
743 function getPropertyValueTest8a() {
744     var cbObj = TestEngine.registerCallback("WebRuntimeversiontest",
745         onValueRetrieved,
746         onError
747         );
748
749     DevStatusObj.getPropertyValue(
750         cbObj.successCallback, cbObj.errorCallback,
751         {
752             property:"version",
753             aspect:"WebRuntime"
754         }
755         );
756 }
757
758 //DevStatus009-8;
759 function getPropertyValueTest8b() {
760     var cbObj = TestEngine.registerCallback("WebRuntimenametest",
761         onValueRetrieved,
762         onError
763         );
764
765     DevStatusObj.getPropertyValue(
766         cbObj.successCallback, cbObj.errorCallback,
767         {
768             property:"name",
769             aspect:"WebRuntime"
770         }
771         );
772 }
773
774 //DevStatus009-8;
775 function getPropertyValueTest8c() {
776     var cbObj = TestEngine.registerCallback("WebRuntimevendortest",
777         onValueRetrieved,
778         onError
779         );
780
781     DevStatusObj.getPropertyValue(
782         cbObj.successCallback, cbObj.errorCallback,
783         {
784             property:"vendor",
785             aspect:"WebRuntime"
786         }
787         );
788 }
789
790 //DevStatus009-8;
791 function getPropertyValueTest8d() {
792     var cbObj = TestEngine.registerCallback("WebRuntimewacVersiontest",
793         onValueRetrieved,
794         onError
795         );
796
797     DevStatusObj.getPropertyValue(
798         cbObj.successCallback, cbObj.errorCallback,
799         {
800             property:"wacVersion",
801             aspect:"WebRuntime"
802         }
803         );
804 }
805
806 //DevStatus009-8;
807 function getPropertyValueTest8e() {
808     var cbObj = TestEngine.registerCallback("WebRuntimesupportedImageFormatstest",
809         onValueRetrieved,
810         onError
811         );
812
813     DevStatusObj.getPropertyValue(
814         cbObj.successCallback, cbObj.errorCallback,
815         {
816             property:"supportedImageFormats",
817             aspect:"WebRuntime"
818         }
819         );
820 }
821
822 //DevStatus009-9;
823 function getPropertyValueTest9a() {
824     var cbObj = TestEngine.registerCallback("WiFiHardwarestatustest",
825         onValueRetrieved,
826         onError
827         );
828
829     DevStatusObj.getPropertyValue(
830         cbObj.successCallback, cbObj.errorCallback,
831         {
832             property:"status",
833             aspect:"WiFiHardware"
834         }
835         );
836 }
837
838 //DevStatus009-10;
839 function getPropertyValueTest10a() {
840     var cbObj = TestEngine.registerCallback("WiFiNetworkssidtest",
841         onValueRetrieved,
842         onError
843         );
844
845     DevStatusObj.getPropertyValue(
846         cbObj.successCallback, cbObj.errorCallback,
847         {
848             property:"ssid",
849             aspect:"WiFiNetwork"
850         }
851         );
852 }
853
854 //DevStatus009-10;
855 function getPropertyValueTest10b() {
856     var cbObj = TestEngine.registerCallback("WiFiNetworksignalStrengthtest",
857         onValueRetrieved,
858         onError
859         );
860
861     DevStatusObj.getPropertyValue(
862         cbObj.successCallback, cbObj.errorCallback,
863         {
864             property:"signalStrength",
865             aspect:"WiFiNetwork"
866         }
867         );
868 }
869
870 //DevStatus009-10;
871 function getPropertyValueTest10c() {
872     var cbObj = TestEngine.registerCallback("WiFiNetworknetworkStatustest",
873         onValueRetrieved,
874         onError
875         );
876
877     DevStatusObj.getPropertyValue(
878         cbObj.successCallback, cbObj.errorCallback,
879         {
880             property:"networkStatus",
881             aspect:"WiFiNetwork"
882         }
883         );
884 }
885
886 function onCellidRetrieved(value) {
887     jsPrint("!!!!! mcc=" + value.mcc);
888     jsPrint("!!!!! mnc=" + value.mnc);
889     jsPrint("!!!!! cellid=" + value.cellid);
890     jsPrint("!!!!! lac=" + value.lac);
891     jsPrint("!!!!! rat=" + value.rat);
892     TestEngine.test("success callback executed", (value != null));
893 }
894
895 function acceptError(){
896     TestEngine.test("Error occure as expected", true);
897 }
898
899 function rejectSuccess(){
900     TestEngine.test("Success - error expected", false);
901 }
902
903 //DevStatus-extra;
904 function getPropertyValueTestCellid() {
905     var cbObj = TestEngine.registerCallback("CellularNetworkcellidtest",
906         rejectSuccess,
907         acceptError);
908 //    var cbObj = TestEngine.registerCallback("CellularNetworkcellidtest",
909 //        onCellidRetrieved,
910 //        onError
911 //        );
912
913     DevStatusObj.getPropertyValue(
914         cbObj.successCallback, cbObj.errorCallback,
915         {
916             property:"cellid",
917             aspect:"CellularNetwork"
918         }
919         );
920 }
921
922 //DevStatus010;
923 function watchClearPropertyChangeTest() {
924     var watcherId1 = 0;
925     var watcherId2 = 0;
926     var watcherId3 = 0;
927
928     var callbackFunction1 = function (value) {
929         TestEngine.test("Callback 1 called: " +value, true);
930         DevStatusObj.clearPropertyChange(watcherId1);
931
932     }
933     var callbackFunction2 = function (value) {
934         TestEngine.test("Callback 2 called: " +value, true);
935         DevStatusObj.clearPropertyChange(watcherId2);
936
937     }
938     var callbackFunction3 = function (value) {
939         TestEngine.test("Callback 3 called: " +value, true);
940         DevStatusObj.clearPropertyChange(watcherId3);
941     }
942
943     var call1 = TestEngine.registerCallback("watchPropertyCallback1", callbackFunction1, onError);
944     var call2 = TestEngine.registerCallback("watchPropertyCallback2", callbackFunction2, onError);
945     var call3 = TestEngine.registerCallback("watchPropertyCallback3", callbackFunction3, onError);
946
947     watcherId1 = DevStatusObj.watchPropertyChange(
948         call1.successCallback,
949         call1.errorCallback,
950         {
951             property:"batteryLevel",
952             aspect:"Battery"
953         },
954
955         {
956             maxNotificationInterval:2000 //every 2 second;
957         }
958         );
959
960     watcherId2 = DevStatusObj.watchPropertyChange(
961         call2.successCallback,
962         call2.errorCallback,
963         {
964             property:"availableSize",
965             aspect:"MemoryUnit"
966         },
967
968         {
969             maxNotificationInterval:1000 //every 1 second;
970         }
971         );
972
973     watcherId3 = DevStatusObj.watchPropertyChange(
974         call3.successCallback,
975         call3.errorCallback,
976         {
977             aspect:"Battery",
978             property:"batteryLevel"
979         },
980
981         {
982             maxNotificationInterval:2000 //every 2 second;
983         }
984         );
985 }
986
987 function watchClearPropertyChangeTest1() {
988     var watchId = 0;
989     var callbackFunction1 = function (value) {
990         TestEngine.test("Callback called: " + value, true);
991         DevStatusObj.clearPropertyChange(watchId);
992     }
993     var callObj = TestEngine.registerCallback("watchPropertyCallback", callbackFunction1, onError);
994
995     watchId = DevStatusObj.watchPropertyChange(
996         callObj.successCallback,
997         callObj.errorCallback,
998         {
999             property:"version",
1000             aspect:"WebRuntime"
1001         },
1002
1003         {
1004             maxNotificationInterval:2000 //every 2 second;
1005         }
1006         );
1007 }
1008
1009 function watchClearPropertyChangeTest2() {
1010     var watchId = 0;
1011     var callbackFunction1 = function (value) {
1012         TestEngine.test("Callback called: " + value, true);
1013         DevStatusObj.clearPropertyChange(watchId);
1014     }
1015     var callObj = TestEngine.registerCallback("watchPropertyCallback", callbackFunction1, onError);
1016
1017     watchId = DevStatusObj.watchPropertyChange(
1018         callObj.successCallback,
1019         callObj.errorCallback,
1020         {
1021             property:"version",
1022             aspect:"WebRuntime"
1023         },
1024
1025         {
1026             minNotificationInterval:2000 //every 2 second;
1027         }
1028         );
1029 }
1030
1031 function watchClearPropertyChangeTest3() {
1032     var watchId = 0;
1033     var callbackFunction1 = function (value) {
1034         TestEngine.test("Callback called: " + value, true);
1035         DevStatusObj.clearPropertyChange(watchId);
1036     }
1037     var callObj = TestEngine.registerCallback("watchPropertyCallback", callbackFunction1, onError);
1038
1039     watchId = DevStatusObj.watchPropertyChange(
1040         callObj.successCallback,
1041         callObj.errorCallback,
1042         {
1043             property:"version",
1044             aspect:"WebRuntime"
1045         }
1046         );
1047 }
1048
1049 function watchClearPropertyChangeTest4() {
1050     var callbackCnt1 = 0;
1051
1052     var callbackFunction1 = function (value) {
1053         jsPrint("callbackFunction1, value = " + value);
1054         if (callbackCnt1 == 0) {
1055             TestEngine.test("Callback called once", true);
1056         } else {
1057             TestEngine.test("Callback called more", false);
1058         }
1059         callbackCnt1++;
1060     }
1061
1062     var callObj = TestEngine.registerCallback("callback counter check",
1063         callbackFunction1, onError);
1064
1065     var watcherId1 = DevStatusObj.watchPropertyChange(
1066         callObj.successCallback,
1067         callObj.errorCallback,
1068         {
1069             property:"batteryLevel",
1070             aspect:"Battery"
1071         },
1072
1073         {
1074             minChangePercent:50
1075         }
1076         );
1077
1078     var finalCallback = TestEngine.registerCallback("callback counter check",
1079         function() {
1080             jsPrint("TimeOut executed, trying to clear watch, id=" + watcherId1);
1081
1082             DevStatusObj.clearPropertyChange(watcherId1);
1083
1084             TestEngine.test("there should be invoked callback", callbackCnt1 == 1);
1085         }
1086         );
1087
1088     setTimeout(finalCallback.successCallback,
1089         2500); //wait before continuing;
1090 }
1091
1092 function cleaning() {
1093     DevStatusObj = null;
1094     aspectsProperty = null;
1095     wrongProperty = null;
1096     aspectsComponent = null;
1097     TestEngine.test("null==DevStatusObj", null==DevStatusObj);
1098     TestEngine.test("null==aspectsProperty", null==aspectsProperty);
1099     TestEngine.test("null==wrongProperty", null==wrongProperty);
1100     TestEngine.test("null==aspectsComponent", null==aspectsComponent);
1101 }
1102
1103 //=============================================================================;
1104
1105 TestEngine.setTestSuiteName("[WAC2.0][Devicestatus]", 10*1000); //5sec time out for callbacks;
1106 //TestEngine.addTest(true, presenceTest, "[WAC2.0][Devicestatus] Devicestatus functions presence test");
1107 TestEngine.addTest(true, getPropertyValueTestCellid, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTestCellid");
1108 //
1109 //TestEngine.addTest(true, getPropertyValueInvalidArgumentsTest, "[WAC2.0][Devicestatus] Devicestatus invalid argument test (getPropertyValue)");
1110 //TestEngine.addTest(true, watchPropertyChangeInvalidParametersTest, "[WAC2.0][Devicestatus] Devicestatus invalid argument test (watchPropertyChange)");
1111 //TestEngine.addTest(true, clearPropertyChangeInvalidParametersTest, "[WAC2.0][Devicestatus] Devicestatus invalid argument test (clearPropertyChange)");
1112 //TestEngine.addTest(true, getCompomentInvalidParametersTest, "[WAC2.0][Devicestatus] Devicestatus invalid argument test (getCompoment)");
1113 //TestEngine.addTest(true, isSupportedInvalidParametersTest, "[WAC2.0][Devicestatus] Devicestatus invalid argument test (isSupported)");
1114 //
1115 //TestEngine.addTest(true, getComponentsTest, "[WAC2.0][Devicestatus] Devicestatus getComponents");
1116 //
1117 //TestEngine.addTest(true, isSupportedTest, "[WAC2.0][Devicestatus] Devicestatus isSupported");
1118 //
1119 //TestEngine.addTest(true, getPropertyValueTest1a, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest1a");
1120 //TestEngine.addTest(true, getPropertyValueTest1b, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest1b");
1121 //TestEngine.addTest(true, getPropertyValueTest2a, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest2a");
1122 //TestEngine.addTest(true, getPropertyValueTest3a, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest3a");
1123 //TestEngine.addTest(true, getPropertyValueTest3b, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest3b");
1124 //TestEngine.addTest(true, getPropertyValueTest3c, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest3c");
1125 //TestEngine.addTest(true, getPropertyValueTest4a, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest4a");
1126 //TestEngine.addTest(true, getPropertyValueTest4b, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest4b");
1127 //TestEngine.addTest(true, getPropertyValueTest4c, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest4c");
1128 //TestEngine.addTest(true, getPropertyValueTest4d, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest4d");
1129 //TestEngine.addTest(true, getPropertyValueTest5a, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest5a");
1130 //TestEngine.addTest(true, getPropertyValueTest5b, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest5b");
1131 //TestEngine.addTest(true, getPropertyValueTest5c, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest5c");
1132 //TestEngine.addTest(true, getPropertyValueTest5d, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest5d");
1133 //TestEngine.addTest(true, getPropertyValueTest5e, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest5e");
1134 //TestEngine.addTest(true, getPropertyValueTest5f, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest5f");
1135 //TestEngine.addTest(true, getPropertyValueTest6a, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest6a");
1136 //TestEngine.addTest(true, getPropertyValueTest6b, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest6b");
1137 //TestEngine.addTest(true, getPropertyValueTest6c, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest6c");
1138 //TestEngine.addTest(true, getPropertyValueTest7a, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest7a");
1139 //TestEngine.addTest(true, getPropertyValueTest7b, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest7b");
1140 //TestEngine.addTest(true, getPropertyValueTest7c, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest7c");
1141 //TestEngine.addTest(true, getPropertyValueTest7d, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest7d");
1142 //TestEngine.addTest(true, getPropertyValueTest8a, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest8a");
1143 //TestEngine.addTest(true, getPropertyValueTest8b, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest8b");
1144 //TestEngine.addTest(true, getPropertyValueTest8c, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest8c");
1145 //TestEngine.addTest(true, getPropertyValueTest8d, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest8d");
1146 //TestEngine.addTest(true, getPropertyValueTest8e, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest8e");
1147 //TestEngine.addTest(true, getPropertyValueTest9a, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest9a");
1148 //TestEngine.addTest(true, getPropertyValueTest10a, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest10a");
1149 //TestEngine.addTest(true, getPropertyValueTest10b, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest10b");
1150 //TestEngine.addTest(true, getPropertyValueTest10c, "[WAC2.0][Devicestatus] Devicestatus getPropertyValueTest10c");
1151 //
1152 //TestEngine.addTest(true, watchClearPropertyChangeTest, "[WAC2.0][Devicestatus] Devicestatus watchClearPropertyChangeTest");
1153 //TestEngine.addTest(true, watchClearPropertyChangeTest1, "[WAC2.0][Devicestatus] Devicestatus watchClearPropertyChangeTest1");
1154 //TestEngine.addTest(true, watchClearPropertyChangeTest2, "[WAC2.0][Devicestatus] Devicestatus watchClearPropertyChangeTest2");
1155 //TestEngine.addTest(true, watchClearPropertyChangeTest3, "[WAC2.0][Devicestatus] Devicestatus watchClearPropertyChangeTest3");
1156 //TestEngine.addTest(true, watchClearPropertyChangeTest4, "[WAC2.0][Devicestatus] Devicestatus watchClearPropertyChangeTest4");
1157
1158 TestEngine.addTest(true, cleaning, "[WAC2.0][Devicestatus] Cleaning data");
1159