aboutsummaryrefslogtreecommitdiff
path: root/tools/addon-sdk-1.5/examples/reading-data
diff options
context:
space:
mode:
Diffstat (limited to 'tools/addon-sdk-1.5/examples/reading-data')
-rw-r--r--tools/addon-sdk-1.5/examples/reading-data/data/mom.pngbin0 -> 4778 bytes
-rw-r--r--tools/addon-sdk-1.5/examples/reading-data/data/sample.html7
-rw-r--r--tools/addon-sdk-1.5/examples/reading-data/lib/main.js44
-rw-r--r--tools/addon-sdk-1.5/examples/reading-data/package.json9
-rw-r--r--tools/addon-sdk-1.5/examples/reading-data/tests/test-main.js24
5 files changed, 84 insertions, 0 deletions
diff --git a/tools/addon-sdk-1.5/examples/reading-data/data/mom.png b/tools/addon-sdk-1.5/examples/reading-data/data/mom.png
new file mode 100644
index 0000000..4ba89a2
--- /dev/null
+++ b/tools/addon-sdk-1.5/examples/reading-data/data/mom.png
Binary files differ
diff --git a/tools/addon-sdk-1.5/examples/reading-data/data/sample.html b/tools/addon-sdk-1.5/examples/reading-data/data/sample.html
new file mode 100644
index 0000000..c7c09cb
--- /dev/null
+++ b/tools/addon-sdk-1.5/examples/reading-data/data/sample.html
@@ -0,0 +1,7 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<html><body>
+<h1>Hello World</h1>
+</body></html>
diff --git a/tools/addon-sdk-1.5/examples/reading-data/lib/main.js b/tools/addon-sdk-1.5/examples/reading-data/lib/main.js
new file mode 100644
index 0000000..89a62a2
--- /dev/null
+++ b/tools/addon-sdk-1.5/examples/reading-data/lib/main.js
@@ -0,0 +1,44 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+var self = require("self");
+var panels = require("addon-kit/panel");
+var widgets = require("addon-kit/widget");
+
+function replaceMom(html) {
+ return html.replace("World", "Mom");
+}
+exports.replaceMom = replaceMom;
+
+exports.main = function(options, callbacks) {
+ console.log("My ID is " + self.id);
+
+ // Load the sample HTML into a string.
+ var helloHTML = self.data.load("sample.html");
+
+ // Let's now modify it...
+ helloHTML = replaceMom(helloHTML);
+
+ // ... and then create a panel that displays it.
+ var myPanel = panels.Panel({
+ contentURL: "data:text/html," + helloHTML
+ });
+
+ // Load the URL of the sample image.
+ var iconURL = self.data.url("mom.png");
+
+ // Create a widget that displays the image. We'll attach the panel to it.
+ // When you click the widget, the panel will pop up.
+ widgets.Widget({
+ id: "test-widget",
+ label: "Mom",
+ contentURL: iconURL,
+ panel: myPanel
+ });
+
+ // If you run cfx with --static-args='{"quitWhenDone":true}' this program
+ // will automatically quit Firefox when it's done.
+ if (options.staticArgs.quitWhenDone)
+ callbacks.quit();
+}
diff --git a/tools/addon-sdk-1.5/examples/reading-data/package.json b/tools/addon-sdk-1.5/examples/reading-data/package.json
new file mode 100644
index 0000000..0f203b2
--- /dev/null
+++ b/tools/addon-sdk-1.5/examples/reading-data/package.json
@@ -0,0 +1,9 @@
+{
+ "name": "reading-data",
+ "description": "A demonstration of reading bundled data.",
+ "keywords": [],
+ "author": "Brian Warner",
+ "contributors": [],
+ "license": "MPL 1.1/GPL 2.0/LGPL 2.1",
+ "id": "reading-data-example@jetpack.mozillalabs.com"
+}
diff --git a/tools/addon-sdk-1.5/examples/reading-data/tests/test-main.js b/tools/addon-sdk-1.5/examples/reading-data/tests/test-main.js
new file mode 100644
index 0000000..1a455fd
--- /dev/null
+++ b/tools/addon-sdk-1.5/examples/reading-data/tests/test-main.js
@@ -0,0 +1,24 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+var m = require("main");
+var self = require("self");
+
+exports.testReplace = function(test) {
+ var input = "Hello World";
+ var output = m.replaceMom(input);
+ test.assertEqual(output, "Hello Mom");
+ var callbacks = { quit: function() {} };
+
+ // Make sure it doesn't crash...
+ m.main({ staticArgs: {} }, callbacks);
+};
+
+exports.testID = function(test) {
+ // The ID is randomly generated during tests, so we cannot compare it against
+ // anything in particular. Just assert that it is not empty.
+ test.assert(self.id.length > 0);
+ test.assertEqual(self.data.url("sample.html"),
+ "resource://reading-data-example-at-jetpack-dot-mozillalabs-dot-com/reading-data/data/sample.html");
+};