+QUnit.asyncTest("Invalid module", function () {
+ query("dontexist", {callback : function(data) {
+ start();
+ ok(data.status < 0);
+ }});
+});
+
+QUnit.module("Sensors");
+QUnit.asyncTest("Existence", function() {
+ query("sensors", {params : {id : 0}, callback : function(data) {
+ start();
+ ok(data.status > 0, "Return status");
+ ok(data.data !== undefined, "Data field existence");
+ var result = "Data: ";
+ for (var i = 0; i < data.data.length; i++) {
+ result += data.data[i][0] + ":" + data.data[i][1] + ", ";
+ }
+ ok(true, result);
+ }});
+});
+
+QUnit.asyncTest("Invalid sensor id 1", function() {
+ query("sensors", {params : {id : 999}, callback : function(data) {
+ start();
+ ok(data.status < 0, "Return status");
+ }});
+});
+
+QUnit.asyncTest("Invalid sensor id 2", function() {
+ query("sensors", {params : {id : ""}, callback : function(data) {
+ start();
+ ok(data.status < 0, "Return status");
+ }});
+});
+
+QUnit.asyncTest("Out of bounds sensor id 1", function() {
+ query("sensors", {params : {id : "-1"}, callback : function(data) {
+ start();
+ ok(data.status < 0, "Return status");
+ }});
+});
+
+QUnit.asyncTest("Out of bounds sensor id 2", function() {
+ query("sensors", {params : {id : "999"}, callback : function(data) {
+ start();
+ ok(data.status < 0, "Return status");
+ }});
+});
+
+QUnit.module("Controls and access");
+QUnit.asyncTest("Gaining access", function() {
+ ut.controlcb.add(function () {
+ query("control", {params : {action : "start", force : true},
+ username : $("#username").val(), password : $("#password").val(),
+ async : false,
+ callback : function(data) {
+ start();
+ ok(data.status > 0, "Return status");
+ ut.ckey = data.key;
+ }});
+ });
+});
+
+QUnit.asyncTest("Setting actuator value", function () {
+ ut.controlcb.add(function () {
+ query("control", {params : {action : "set", id : 0,
+ username : $("#username").val(), password : $("#password").val(),
+ value : 200, key : ut.ckey},
+ callback : function(data) {
+ start();
+ ok(data.status > 0, "Return status");
+ ok(true, data.description);
+ }});
+ });
+});
+
+$(document).ready(function(){
+ $("#control").submit(function () {
+ ut.controlcb.fire();
+ return false;
+ });