Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5456)

Unified Diff: chrome/test/data/extensions/greasemonkey_api_test.js

Issue 149619: Various minor extension fixes (Closed)
Patch Set: One more test Created 11 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« chrome/browser/profile.cc ('K') | « chrome/renderer/user_script_slave.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/data/extensions/greasemonkey_api_test.js
diff --git a/chrome/test/data/extensions/greasemonkey_api_test.js b/chrome/test/data/extensions/greasemonkey_api_test.js
deleted file mode 100644
index e629ceed932aa0f3a7c3ef73e327205a71408e3b..0000000000000000000000000000000000000000
--- a/chrome/test/data/extensions/greasemonkey_api_test.js
+++ /dev/null
@@ -1,338 +0,0 @@
-var localStorage;
-var document;
-var window;
-var XMLHttpRequest;
-var lastCreatedXhr;
-
-function testGetSetValue() {
- localStorage = new LocalStorageFake();
- GM_setValue('string', 'value');
- assert('value', GM_getValue('string'));
- GM_setValue('integer', 123);
- assert(123, GM_getValue('integer'));
- GM_setValue('boolean', true);
- assert(true, GM_getValue('boolean'));
-
- assert(undefined, GM_getValue('notset'));
- assert('default', GM_getValue('notset', 'default'));
-
- // illegal values
- assertThrow(function() {
- GM_setValue('illegal value', null);
- });
- assertThrow(function() {
- GM_setValue('illegal value', 1.5);
- });
-}
-
-function testDeleteValue() {
- localStorage = new LocalStorageFake();
- GM_setValue('delete', 'value');
- assert('value', GM_getValue('delete'));
- GM_deleteValue('delete');
- assert(undefined, GM_getValue('delete'));
- GM_deleteValue('notset');
-}
-
-function testListValues() {
- localStorage = new LocalStorageFake();
- var a = GM_listValues();
- assert(0, a.length);
-
- GM_setValue('one', 'first');
- a = GM_listValues();
- assert(1, a.length);
- assert('one', a[0]);
-
- GM_setValue('two', 'second');
- a = GM_listValues();
-
- // Test that keys that are not namespaced can't be read.
- localStorage.setItem('three', 'third');
- assert(2, a.length);
- assert(true, a.indexOf('one') >= 0);
- assert(true, a.indexOf('two') >= 0);
-}
-
-function testGetResourceURL() {
- assertThrow(function() {
- var resource = GM_getResourceURL('urlResourceName');
- });
-}
-
-function testGetResourceText() {
- assertThrow(function() {
- var resource = GM_getResourceText('textResourceName');
- });
-}
-
-function testAddStyle() {
- var documentElement = new ElementFake('');
- var head = new ElementFake('head');
- document = new DocumentFake(documentElement, head);
- var css = 'color: #decaff;';
- GM_addStyle(css);
- assert(0, documentElement.childNodes.length);
- assert(1, head.childNodes.length);
- var style = head.childNodes[0];
- assert("style", style.tagName);
- assert("text/css", style.type);
- assert(1, style.childNodes.length);
- var textNode = style.childNodes[0];
- assert(css, textNode.text);
-
- document = new DocumentFake(documentElement, null);
- GM_addStyle(css);
- assert(1, documentElement.childNodes.length);
- var style = documentElement.childNodes[0];
- assert("text/css", style.type);
- assert(1, style.childNodes.length);
- textNode = style.childNodes[0];
- assert(css, textNode.text);
-}
-
-function testXmlhttpRequest() {
- XMLHttpRequest = XMLHttpRequestFake;
- var url = 'http://example.com';
-
- var onLoadCallback = function(state) {
- onLoadCallbackResponseState = state;
- };
- var onErrorCallback = function(state) {
- onErrorCallbackResponseState = state;
- };
- var onReadyStateChangeCallback = function(state) {
- onReadyStateChangeCallbackResponseState = state;
- };
-
- var details = {
- onload: onLoadCallback,
- onerror: onErrorCallback,
- onreadystatechange: onReadyStateChangeCallback,
- method: 'GET',
- url: url,
- overrideMimeType: 'text/html',
- headers: {
- 'X-Header': 'foo'
- },
- data: 'data'
- };
-
- GM_xmlhttpRequest(details);
- var xhr = lastCreatedXhr;
-
- assert('GET', xhr.openedMethod);
- assert(url, xhr.openedUrl);
- assert('text/html', xhr.overrideMimeType);
- assert('foo', xhr.requestHeaders['X-Header']);
- assert('data', xhr.sentBody);
-
- xhr.responseText = 'foo';
- xhr.responseHeaders['X-Response'] = 'foo';
- xhr.status = 200;
- xhr.statusText = 'OK';
-
- xhr.readyState = 1;
- xhr.onreadystatechange();
- var state = onReadyStateChangeCallbackResponseState;
- assert(xhr.responseText, state.responseText);
- assert(xhr.readyState, state.readyState);
- assert('', state.responseHeaders);
- assert(0, state.status);
- assert('', state.statusText);
- assert('', state.finalUrl);
-
- xhr.readyState = 0;
- xhr.onerror();
- state = onErrorCallbackResponseState;
- assert(xhr.responseText, state.responseText);
- assert(xhr.readyState, state.readyState);
- assert('', state.responseHeaders);
- assert(0, state.status);
- assert('', state.statusText);
- assert('', state.finalUrl);
-
- xhr.readyState = 4;
- xhr.onload();
- state = onLoadCallbackResponseState;
- assert(xhr.responseText, state.responseText);
- assert(xhr.readyState, state.readyState);
- assert('X-Response: foo\r\n', state.responseHeaders);
- assert(xhr.status, state.status);
- assert(xhr.statusText, state.statusText);
- assert(url, state.finalUrl);
-}
-
-function testRegisterMenuCommand() {
- assertThrow(function() {
- GM_registerMenuCommand('name', function() {}, 'a', '', 'a');
- });
-}
-
-function testOpenInTab() {
- var mockWindow = {
- open: function(url, name, opt_options) {
- this.openedUrl = url;
- this.openedName = name;
- this.openedOptions = opt_options;
- }
- };
- window = mockWindow;
- var url = 'http://example.com';
- GM_openInTab(url);
- assert(mockWindow.openedUrl, url);
-}
-
-function testLog() {
- var mockWindow = {
- console: {
- message: null,
- log: function(message) {
- this.message = message;
- }
- }
- };
- window = mockWindow;
- var message = 'hello world';
- GM_log(message);
- assert(message, mockWindow.console.message);
-}
-
-function LocalStorageFake() {
- this.map_ = {};
- this.keys_ = [];
-}
-LocalStorageFake.prototype = {
- length: 0,
- key: function(index) {
- if (index >= this.length) {
- throw new Error('INDEX_SIZE_ERR');
- }
- return this.keys_[index];
- },
- getItem: function(key) {
- if (key in this.map_) {
- return this.map_[key];
- }
- return null;
- },
- setItem: function(key, data) {
- this.map_[key] = data;
- this.updateKeys_();
- },
- removeItem: function(key) {
- delete this.map_[key];
- this.updateKeys_();
- },
- clear: function() {
- this.map_ = {};
- this.updateKeys_();
- },
- updateKeys_: function() {
- var keys = [];
- for (var key in this.map_) {
- keys.push(key);
- }
- this.keys_ = keys;
- this.length = keys.length;
- }
-}
-
-function DocumentFake(documentElement, head) {
- this.documentElement = documentElement;
- this.head_ = head;
-}
-DocumentFake.prototype = {
- getElementsByTagName: function(tagName) {
- if (tagName == 'head' && this.head_) {
- return [this.head_];
- }
- return [];
- },
- createElement: function(tagName) {
- return new ElementFake(tagName);
- },
- createTextNode: function(text) {
- return new TextNodeFake(text);
- }
-}
-
-function ElementFake(tagName) {
- this.tagName = tagName;
- this.childNodes = [];
-}
-ElementFake.prototype = {
- appendChild: function(e) {
- this.childNodes.push(e);
- return e;
- }
-}
-
-function TextNodeFake(text) {
- this.text = text;
-}
-
-function XMLHttpRequestFake() {
- lastCreatedXhr = this;
- this.onload = null;
- this.onerror = null;
- this.onreadystatechange = null;
- this.openedMethod = null;
- this.openededUrl = null;
- this.overriddenMimeType = null;
- this.requestHeaders = {};
- this.sentBody = null;
- this.responseText = null;
- this.readyState = null;
- this.responseHeaders = {};
- this.status = null;
- this.statusText = null;
-}
-XMLHttpRequestFake.prototype = {
- open: function(method, url) {
- this.openedMethod = method;
- this.openedUrl = url;
- },
- overrideMimeType: function(mimeType) {
- this.overrideMimeType = mimeType;
- },
- setRequestHeader: function(header, value) {
- this.requestHeaders[header] = value;
- },
- send: function(opt_body) {
- this.sentBody = opt_body;
- },
- getAllResponseHeaders: function() {
- var s = '';
- for (var header in this.responseHeaders) {
- // The delimiter used in Webkit's XMLHttpRequest is \r\n, however
- // the new Chrome networking code (and Firefox) uses \n, so watch
- // out for this!
- s += header + ': ' + this.responseHeaders[header] + '\r\n';
- }
- return s;
- }
-}
-
-function assert(expected, actual) {
- if (expected !== actual) {
- throw new Error('Assert failed: "' + expected + '" !== "' + actual + '"');
- }
-}
-
-function fail() {
- throw new Error('Fail');
-}
-
-function assertThrow(f) {
- var threw = false;
- try {
- f();
- } catch(e) {
- threw = true;
- }
- if (!threw) {
- throw new Error('Assert failed, expression did not throw.');
- }
-}
-
« chrome/browser/profile.cc ('K') | « chrome/renderer/user_script_slave.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698