diff options
Diffstat (limited to 'addon-sdk/source/examples/reading-data')
-rw-r--r-- | addon-sdk/source/examples/reading-data/data/mom.png | bin | 0 -> 4778 bytes | |||
-rw-r--r-- | addon-sdk/source/examples/reading-data/data/sample.html | 7 | ||||
-rw-r--r-- | addon-sdk/source/examples/reading-data/lib/main.js | 53 | ||||
-rw-r--r-- | addon-sdk/source/examples/reading-data/package.json | 9 | ||||
-rw-r--r-- | addon-sdk/source/examples/reading-data/tests/test-main.js | 25 |
5 files changed, 94 insertions, 0 deletions
diff --git a/addon-sdk/source/examples/reading-data/data/mom.png b/addon-sdk/source/examples/reading-data/data/mom.png Binary files differnew file mode 100644 index 000000000..4ba89a2c1 --- /dev/null +++ b/addon-sdk/source/examples/reading-data/data/mom.png diff --git a/addon-sdk/source/examples/reading-data/data/sample.html b/addon-sdk/source/examples/reading-data/data/sample.html new file mode 100644 index 000000000..c7c09cb98 --- /dev/null +++ b/addon-sdk/source/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/addon-sdk/source/examples/reading-data/lib/main.js b/addon-sdk/source/examples/reading-data/lib/main.js new file mode 100644 index 000000000..468a497b1 --- /dev/null +++ b/addon-sdk/source/examples/reading-data/lib/main.js @@ -0,0 +1,53 @@ +/* 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/. */ +"use strict"; + +var self = require("sdk/self"); +var { Panel } = require("sdk/panel"); +var { ToggleButton } = require("sdk/ui"); + +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 = Panel({ + contentURL: "data:text/html," + helloHTML, + onHide: handleHide + }); + + // Create a widget that displays the image. We'll attach the panel to it. + // When you click the widget, the panel will pop up. + var button = ToggleButton({ + id: "test-widget", + label: "Mom", + icon: './mom.png', + onChange: handleChange + }); + + // 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(); +} + +function handleChange(state) { + if (state.checked) { + myPanel.show({ position: button }); + } +} + +function handleHide() { + button.state('window', { checked: false }); +} diff --git a/addon-sdk/source/examples/reading-data/package.json b/addon-sdk/source/examples/reading-data/package.json new file mode 100644 index 000000000..8bdce6423 --- /dev/null +++ b/addon-sdk/source/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-2.0", + "id": "reading-data-example@jetpack.mozillalabs.com" +} diff --git a/addon-sdk/source/examples/reading-data/tests/test-main.js b/addon-sdk/source/examples/reading-data/tests/test-main.js new file mode 100644 index 000000000..4e85f49de --- /dev/null +++ b/addon-sdk/source/examples/reading-data/tests/test-main.js @@ -0,0 +1,25 @@ +/* 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/. */ +"use strict"; + +var m = require("main"); +var self = require("sdk/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"); +}; |