You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by gt...@apache.org on 2012/11/09 20:43:07 UTC

[2/3] js commit: Added some more BlackBerry 10 Unit Tests

Added some more BlackBerry 10 Unit Tests

- tested:
-- battery
-- network
-- camera
-- device
-- platform
- fixed bug in battery
- removed unused require in network


Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/commit/9c2f547d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/tree/9c2f547d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/diff/9c2f547d

Branch: refs/heads/master
Commit: 9c2f547d571f36414c336e8e39b234e164571406
Parents: 9799533
Author: Gord Tanner <gt...@gmail.com>
Authored: Fri Nov 9 14:40:40 2012 -0500
Committer: Gord Tanner <gt...@gmail.com>
Committed: Fri Nov 9 14:40:40 2012 -0500

----------------------------------------------------------------------
 lib/blackberry/plugin/qnx/battery.js |    3 +-
 lib/blackberry/plugin/qnx/network.js |    3 +-
 lib/test/blackberryplatform.js       |    1 +
 test/blackberry/qnx/test.battery.js  |   72 ++++++++++++++++++++
 test/blackberry/qnx/test.camera.js   |   59 +++++++++++++++++
 test/blackberry/qnx/test.device.js   |   48 ++++++++++++++
 test/blackberry/qnx/test.network.js  |   39 +++++++++++
 test/blackberry/test.platform.js     |  102 +++++++++++++++++++++++++++++
 8 files changed, 324 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/9c2f547d/lib/blackberry/plugin/qnx/battery.js
----------------------------------------------------------------------
diff --git a/lib/blackberry/plugin/qnx/battery.js b/lib/blackberry/plugin/qnx/battery.js
index 81a35fc..8bd9f44 100644
--- a/lib/blackberry/plugin/qnx/battery.js
+++ b/lib/blackberry/plugin/qnx/battery.js
@@ -34,6 +34,7 @@ module.exports = {
     },
 
     stop: function (args, win, fail) {
-        window.stopInterval(interval);
+        window.clearInterval(interval);
+        return { "status" : cordova.callbackStatus.OK, "message" : "stopped" };
     }
 };

http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/9c2f547d/lib/blackberry/plugin/qnx/network.js
----------------------------------------------------------------------
diff --git a/lib/blackberry/plugin/qnx/network.js b/lib/blackberry/plugin/qnx/network.js
index 4df3e38..b640f75 100644
--- a/lib/blackberry/plugin/qnx/network.js
+++ b/lib/blackberry/plugin/qnx/network.js
@@ -19,8 +19,7 @@
  *
 */
 
-var cordova = require('cordova'),
-    connection = require('cordova/plugin/Connection');
+var cordova = require('cordova');
 
 module.exports = {
     getConnectionInfo: function (args, win, fail) {

http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/9c2f547d/lib/test/blackberryplatform.js
----------------------------------------------------------------------
diff --git a/lib/test/blackberryplatform.js b/lib/test/blackberryplatform.js
new file mode 120000
index 0000000..7c28899
--- /dev/null
+++ b/lib/test/blackberryplatform.js
@@ -0,0 +1 @@
+../blackberry/platform.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/9c2f547d/test/blackberry/qnx/test.battery.js
----------------------------------------------------------------------
diff --git a/test/blackberry/qnx/test.battery.js b/test/blackberry/qnx/test.battery.js
new file mode 100644
index 0000000..c66c0ef
--- /dev/null
+++ b/test/blackberry/qnx/test.battery.js
@@ -0,0 +1,72 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+describe("blackberry qnx battery", function () {
+    var battery = require('cordova/plugin/qnx/battery'),
+        cordova = require('cordova');
+
+    beforeEach(function () {
+        spyOn(window, "setInterval").andReturn(1);
+        spyOn(window, "clearInterval");
+    });
+
+    it("returns no_result when calling start", function () {
+        expect(battery.start()).toEqual({
+            status: cordova.callbackStatus.NO_RESULT,
+            message: "WebWorks Is On It"
+        });
+    });
+
+    it("sets an interval for 500 ms when calling start", function () {
+        battery.start();
+        expect(window.setInterval).toHaveBeenCalledWith(jasmine.any(Function), 500);
+    });
+
+    it("calls the win callback with values from navigator.webkitBattery", function () {
+        global.navigator = window.navigator;
+        window.navigator.webkitBattery = { level: 0.12, charging: true };
+
+        var win = jasmine.createSpy("win");
+        battery.start({}, win);
+
+        window.setInterval.mostRecentCall.args[0]();
+
+        expect(win).toHaveBeenCalledWith({
+            level: 12,
+            isPlugged: true
+        });
+
+        delete window.navigator.webkitBattery;
+    });
+
+    it("returns ok when calling stop", function () {
+        expect(battery.stop()).toEqual({
+            status: cordova.callbackStatus.OK,
+            message: "stopped"
+        });
+    });
+
+    it("calls clearInterval when stopping", function () {
+        battery.start();
+        battery.stop();
+        expect(window.clearInterval).toHaveBeenCalledWith(1);
+    });
+});

http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/9c2f547d/test/blackberry/qnx/test.camera.js
----------------------------------------------------------------------
diff --git a/test/blackberry/qnx/test.camera.js b/test/blackberry/qnx/test.camera.js
new file mode 100644
index 0000000..1cedd6c
--- /dev/null
+++ b/test/blackberry/qnx/test.camera.js
@@ -0,0 +1,59 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+describe("blackberry qnx camera", function () {
+    var camera = require('cordova/plugin/qnx/camera'),
+        cordova = require('cordova');
+
+    beforeEach(function () {
+        global.blackberry = {
+            invoke: {
+                card: {
+                    invokeCamera: jasmine.createSpy("invokeCamera")
+                }
+            }
+        };
+    });
+
+    afterEach(function () {
+        delete global.blackberry;
+    });
+    
+    it("returns no_result when calling takePicture", function () {
+        expect(camera.takePicture()).toEqual({
+            status: cordova.callbackStatus.NO_RESULT,
+            message: "WebWorks Is On It"
+        });
+    });
+
+    it("calls blackberry.invoke.card.invokeCamera", function () {
+        camera.takePicture();
+        expect(blackberry.invoke.card.invokeCamera).toHaveBeenCalledWith("photo", jasmine.any(Function), jasmine.any(Function), jasmine.any(Function));
+    });
+
+    it("adds file:// to the path provided to the callback and calls success", function () {
+        var win = jasmine.createSpy("win");
+        camera.takePicture({}, win);
+
+        blackberry.invoke.card.invokeCamera.mostRecentCall.args[1]("pics/ponies.jpg");
+        expect(win).toHaveBeenCalledWith("file://pics/ponies.jpg");
+    });
+});

http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/9c2f547d/test/blackberry/qnx/test.device.js
----------------------------------------------------------------------
diff --git a/test/blackberry/qnx/test.device.js b/test/blackberry/qnx/test.device.js
new file mode 100644
index 0000000..1595b4f
--- /dev/null
+++ b/test/blackberry/qnx/test.device.js
@@ -0,0 +1,48 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+describe("blackberry qnx device", function () {
+    var device = require('cordova/plugin/qnx/device');
+    
+    it("calls the win callback with the device info", function () {
+        global.blackberry = {
+            system: {
+                softwareVersion: "NaN"
+            },
+            identity: {
+                uuid: 1
+            }
+        };
+
+        var info;
+
+        //HACK: I know this is a sync call ;)
+        device.getDeviceInfo({}, function (i) { info = i; });
+
+        expect(info.platform).toBe("BB10");
+        expect(info.version).toBe("NaN");
+        expect(info.name).toBe("Dev Alpha");
+        expect(info.uuid).toBe(1);
+        expect(info.cordova).toBeDefined();
+        
+        delete global.blackberry;
+    });
+});

http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/9c2f547d/test/blackberry/qnx/test.network.js
----------------------------------------------------------------------
diff --git a/test/blackberry/qnx/test.network.js b/test/blackberry/qnx/test.network.js
new file mode 100644
index 0000000..63a224b
--- /dev/null
+++ b/test/blackberry/qnx/test.network.js
@@ -0,0 +1,39 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+describe("blackberry qnx network", function () {
+    var cordova = require('cordova'),
+        network = require('cordova/plugin/qnx/network');
+
+    it("returns the connection info", function () {
+        global.blackberry = {
+            connection: {
+                type: "pigeon"
+            }
+        };
+        expect(network.getConnectionInfo()).toEqual({
+            status: cordova.callbackStatus.OK,
+            message: "pigeon"
+        });
+
+        delete global.blackberry;
+    });
+});

http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/9c2f547d/test/blackberry/test.platform.js
----------------------------------------------------------------------
diff --git a/test/blackberry/test.platform.js b/test/blackberry/test.platform.js
new file mode 100644
index 0000000..4d909af
--- /dev/null
+++ b/test/blackberry/test.platform.js
@@ -0,0 +1,102 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+describe("blackberry platform", function () {
+    var platform = require('cordova/blackberryplatform');
+
+    describe("when getting the runtime", function () {
+        beforeEach(function () {
+            global.blackberry = {
+                system: {
+                    softwareVersion: ""
+                }
+            };
+        });
+
+        afterEach(function () {
+            delete global.blackberry;
+        });
+
+        it("returns qnx if webworks exists on window", function () {
+            window.webworks = {};
+            expect(platform.runtime()).toBe("qnx");
+            delete window.webworks;
+        });
+
+        it("returns air if softwareVersion starts with BlackBerry", function () {
+            blackberry.system.softwareVersion = "BlackBerry PlayBook OS"
+            expect(platform.runtime()).toBe("air");
+        });
+
+        it("returns java if software version is anything else", function () {
+            blackberry.system.softwareVersion = "7.0"
+            expect(platform.runtime()).toBe("java");
+        });
+    });
+
+    describe("when initializing", function () {
+        var builder = require('cordova/builder'),
+            clobber = jasmine.createSpy("intoAndClobber"),
+            merge = jasmine.createSpy("intoAndMerge");
+
+        beforeEach(function () {
+            spyOn(builder, "build").andReturn({
+                intoAndClobber: clobber,
+                intoAndMerge: merge
+            });
+        });
+
+        it("calls initialize for the platform from the runtime", function () {
+            var air = require('cordova/plugin/air/platform');
+
+            spyOn(air, "initialize");
+            spyOn(platform, "runtime").andReturn("air");
+
+            platform.initialize();
+
+            expect(air.initialize).toHaveBeenCalled();
+        });
+
+        it("builds given platforms objects into window and clobbers them", function () {
+            var java = require('cordova/plugin/java/platform');
+
+            spyOn(java, "initialize");
+            spyOn(platform, "runtime").andReturn("java");
+
+            platform.initialize();
+
+            expect(builder.build).toHaveBeenCalledWith(java.objects);
+            expect(clobber).toHaveBeenCalledWith(window);
+        });
+
+        it("builds given platforms merges into window and merges them", function () {
+            var qnx = require('cordova/plugin/qnx/platform');
+
+            spyOn(qnx, "initialize");
+            spyOn(platform, "runtime").andReturn("qnx");
+
+            platform.initialize();
+
+            expect(builder.build).toHaveBeenCalledWith(qnx.merges);
+            expect(merge).toHaveBeenCalledWith(window);
+        });
+    });
+});