Author: ddumont
Date: Wed Nov 7 13:56:21 2012
New Revision: 1406637
URL: http://svn.apache.org/viewvc?rev=1406637&view=rev
Log:
Create isDebug api in gadget.utils to help gadget developers
Modified:
shindig/trunk/features/src/main/javascript/features/core.util/feature.xml
shindig/trunk/features/src/main/javascript/features/core.util/util.js
shindig/trunk/features/src/test/javascript/features/core.io/iotest.js
shindig/trunk/features/src/test/javascript/features/core/authtest.js
shindig/trunk/features/src/test/javascript/features/core/utiltest.js
shindig/trunk/features/src/test/javascript/features/views/views-init-test.js
Modified:
shindig/trunk/features/src/main/javascript/features/core.util/feature.xml
URL:
http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/core.util/feature.xml?rev=1406637&r1=1406636&r2=1406637&view=diff
==============================================================================
--- shindig/trunk/features/src/main/javascript/features/core.util/feature.xml
(original)
+++ shindig/trunk/features/src/main/javascript/features/core.util/feature.xml
Wed Nov 7 13:56:21 2012
@@ -34,6 +34,7 @@
<exports type="js">gadgets.util.getFeatureParameters</exports>
<exports type="js">gadgets.util.hasFeature</exports>
<exports type="js">gadgets.util.getServices</exports>
+ <exports type="js">gadgets.util.isDebug</exports>
</api>
</all>
</feature>
Modified: shindig/trunk/features/src/main/javascript/features/core.util/util.js
URL:
http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/core.util/util.js?rev=1406637&r1=1406636&r2=1406637&view=diff
==============================================================================
--- shindig/trunk/features/src/main/javascript/features/core.util/util.js
(original)
+++ shindig/trunk/features/src/main/javascript/features/core.util/util.js Wed
Nov 7 13:56:21 2012
@@ -29,8 +29,27 @@ gadgets.util = gadgets.util || {};
(function() {
- var features = {};
- var services = {};
+ var features = {},
+ services = {},
+ undef,
+ isDebug;
+
+ /**
+ * Checks injected feature script to see if it's debug mode.
+ */
+ function checkIsDebug(config) {
+ var coreio = config['core.io'],
+ jsPath = coreio && coreio.jsPath,
+ scripts = document.getElementsByTagName('script');
+
+ for (var i = 0; jsPath && i < scripts.length; i++) {
+ var src = scripts[i].src;
+ if (src && src.indexOf(jsPath) > -1) {
+ return isDebug = gadgets.util.getUrlParameters(src).debug == '1';
+ }
+ }
+ isDebug = false;
+ }
/**
* Initializes feature parameters.
@@ -38,8 +57,10 @@ gadgets.util = gadgets.util || {};
function init(config) {
features = config['core.util'] || {};
}
+
if (gadgets.config) {
gadgets.config.register('core.util', null, init);
+ gadgets.config.register('core.io', undef, checkIsDebug, checkIsDebug);
}
/**
@@ -72,4 +93,10 @@ gadgets.util = gadgets.util || {};
return services;
};
+ /**
+ * @return {boolean} If gadget is being rendered in debug mode.
+ */
+ gadgets.util.isDebug = function() {
+ return isDebug;
+ };
})();
Modified: shindig/trunk/features/src/test/javascript/features/core.io/iotest.js
URL:
http://svn.apache.org/viewvc/shindig/trunk/features/src/test/javascript/features/core.io/iotest.js?rev=1406637&r1=1406636&r2=1406637&view=diff
==============================================================================
--- shindig/trunk/features/src/test/javascript/features/core.io/iotest.js
(original)
+++ shindig/trunk/features/src/test/javascript/features/core.io/iotest.js Wed
Nov 7 13:56:21 2012
@@ -24,6 +24,7 @@ function IoTest(name) {
IoTest.inherits(TestCase);
IoTest.prototype.setUp = function() {
+ this.getUrlParameters = gadgets.util.getUrlParameters;
gadgets.util.getUrlParameters = function() {
return { "st" : "authtoken", "url" : "http://www.gadget.com/gadget.xml",
"container" : "foo" };
};
@@ -44,6 +45,9 @@ IoTest.prototype.setUp = function() {
"unparseableCruft" : "throw 1; < don't be evil' >"}});
gadgets.io.preloaded_ = [];
};
+IoTest.prototype.tearDown = function() {
+ gadgets.util.getUrlParameters = this.getUrlParameters;
+};
IoTest.prototype.setSchemaless = function() {
gadgets.config.init({ "core.io" : {
Modified: shindig/trunk/features/src/test/javascript/features/core/authtest.js
URL:
http://svn.apache.org/viewvc/shindig/trunk/features/src/test/javascript/features/core/authtest.js?rev=1406637&r1=1406636&r2=1406637&view=diff
==============================================================================
--- shindig/trunk/features/src/test/javascript/features/core/authtest.js
(original)
+++ shindig/trunk/features/src/test/javascript/features/core/authtest.js Wed
Nov 7 13:56:21 2012
@@ -28,11 +28,13 @@ AuthTest.prototype.setUp = function() {
gadgets.util = gadgets.util || {};
gadgets.config = gadgets.config || {};
this.oldConfigRegister = gadgets.config.register;
+ this.getUrlParameters = gadgets.util.getUrlParameters;
};
AuthTest.prototype.tearDown = function() {
// Remove mocks
gadgets.config.register = this.oldConfigRegister;
+ gadgets.util.getUrlParameters = this.getUrlParameters;
};
AuthTest.prototype.testTokenOnFragment = function() {
Modified: shindig/trunk/features/src/test/javascript/features/core/utiltest.js
URL:
http://svn.apache.org/viewvc/shindig/trunk/features/src/test/javascript/features/core/utiltest.js?rev=1406637&r1=1406636&r2=1406637&view=diff
==============================================================================
--- shindig/trunk/features/src/test/javascript/features/core/utiltest.js
(original)
+++ shindig/trunk/features/src/test/javascript/features/core/utiltest.js Wed
Nov 7 13:56:21 2012
@@ -31,9 +31,11 @@ function UtilTest(name) {
UtilTest.inherits(TestCase);
UtilTest.prototype.setUp = function() {
+ this.oldDocument = document;
};
UtilTest.prototype.tearDown = function() {
+ document = this.oldDocument;
};
UtilTest.prototype.testMakeEnum = function() {
@@ -43,3 +45,31 @@ UtilTest.prototype.testMakeEnum = functi
this.assertEquals('BAR', obj['BAR']);
this.assertEquals('baz', obj['baz']);
};
+
+UtilTest.prototype.testIsDebug = function() {
+ document = {
+ getElementsByTagName: function () {
+ return [
+ {src: 'http://www.example.com/foobar.js?debug=1'},
+ {src: 'http://www.example.com/js/features/foobar.js'},
+ ];
+ }
+ };
+
+ gadgets.config.init({'core.io':{jsPath: '/js/features', jsonProxyUrl:
'/blah'}});
+ this.assertFalse('isDebug not set on the injected feature js.',
gadgets.util.isDebug());
+};
+
+UtilTest.prototype.testIsDebug2 = function() {
+ document = {
+ getElementsByTagName: function () {
+ return [
+ {src: 'http://www.example.com/foobar.js?debug=0'},
+ {src: 'http://www.example.com/js/features/foobar.js?debug=1'},
+ ];
+ }
+ };
+
+ gadgets.config.init({'core.io':{jsPath: '/js/features', jsonProxyUrl:
'/blah'}});
+ this.assertTrue('isDebug set on the injected feature js.',
gadgets.util.isDebug());
+};
\ No newline at end of file
Modified:
shindig/trunk/features/src/test/javascript/features/views/views-init-test.js
URL:
http://svn.apache.org/viewvc/shindig/trunk/features/src/test/javascript/features/views/views-init-test.js?rev=1406637&r1=1406636&r2=1406637&view=diff
==============================================================================
---
shindig/trunk/features/src/test/javascript/features/views/views-init-test.js
(original)
+++
shindig/trunk/features/src/test/javascript/features/views/views-init-test.js
Wed Nov 7 13:56:21 2012
@@ -25,11 +25,15 @@ ViewsInitTest.inherits(TestCase);
(function() {
-var oldDocument = document;
var callback;
+ViewsInitTest.prototype.setUp = function() {
+ this.document = document;
+ this.getUrlParameters = gadgets.util.getUrlParameters;
+};
ViewsInitTest.prototype.tearDown = function() {
- document = oldDocument;
+ document = this.document;
+ gadgets.util.getUrlParameters = this.getUrlParameters;
};
ViewsInitTest.prototype.testObjectParams = function() {
@@ -65,7 +69,8 @@ ViewsInitTest.prototype.testRewriteLinks
name = arguments[0];
func = arguments[1];
bubble = arguments[2];
- }
+ },
+ getElementsByTagName: function (name) { return []; }
};
document.scripts = [];
@@ -83,9 +88,10 @@ ViewsInitTest.prototype.testRewriteLinks
attachEvent: function() {
name = arguments[0];
func = arguments[1];
-
+
},
- addEventListener: undefined
+ addEventListener: undefined,
+ getElementsByTagName: function (name) { return []; }
};
document.scripts = [];