Best Python code snippet using Testify_python
FileLoaderPluginTest.js
Source:FileLoaderPluginTest.js
1/*2 * Copyright 2009 Google Inc.3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not5 * use this file except in compliance with the License. You may obtain a copy of6 * the License at7 * 8 * http://www.apache.org/licenses/LICENSE-2.09 * 10 * Unless required by applicable law or agreed to in writing, software11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the13 * License for the specific language governing permissions and limitations under14 * the License.15 */16var FileLoaderPluginCallbackTests = ConditionalTestCase(17 'FileLoaderPluginCallbackTests',18 function() {19 return !jstestdriver.jQuery.browser.opera;20});21FileLoaderPluginCallbackTests.prototype.createScriptLoader = function(win, dom) {22 return new jstestdriver.plugins.ScriptLoader(win, dom, {23 updateLatestTestCase: function() {},24 removeTestCaseForFilename: function() {}25 }, jstestdriver.now);26};27FileLoaderPluginCallbackTests.prototype.testFileOnLoadJs = function() {28 var mockDOM = new jstestdriver.MockDOM();29 var head = mockDOM.createElement('head');30 var scriptLoader = this.createScriptLoader({}, mockDOM);31 var stylesheetLoader = new jstestdriver.plugins.StylesheetLoader({}, mockDOM, false);32 var fileLoaderPlugin = new jstestdriver.plugins.FileLoaderPlugin(scriptLoader,33 stylesheetLoader,34 jstestdriver.now);35 var file = new jstestdriver.FileSource('file.js', 12);36 var callbackCalled = false;37 var callbackFileResult = null;38 var callback = function(fileResult) {39 callbackCalled = true;40 callbackFileResult = fileResult;41 };42 fileLoaderPlugin.loadSource(file, callback);43 assertEquals(1, head.childNodes.length);44 var script = head.childNodes[0];45 script.onload();46 assertEquals('script', script.nodeName);47 assertEquals('text/javascript', script.type);48 assertEquals('file.js', script.src);49 assertTrue(callbackCalled);50 assertNotNull(callbackFileResult);51 assertTrue(callbackFileResult.success);52 assertEquals('', callbackFileResult.message);53 assertNotNull(callbackFileResult.file);54 assertEquals('file.js', callbackFileResult.file.fileSrc);55 assertEquals(12, callbackFileResult.file.timestamp);56};57FileLoaderPluginCallbackTests.prototype.testFileOnLoadJsError = function() {58 var mockDOM = new jstestdriver.MockDOM();59 var head = mockDOM.createElement('head');60 var scriptLoader = this.createScriptLoader({}, mockDOM);61 var stylesheetLoader = new jstestdriver.plugins.StylesheetLoader({}, mockDOM, false);62 var fileLoaderPlugin = new jstestdriver.plugins.FileLoaderPlugin(scriptLoader,63 stylesheetLoader);64 var file = new jstestdriver.FileSource('file.js', 42);65 var callbackCalled = false;66 var callbackFileResult = null;67 var callback = function(fileResult) {68 callbackCalled = true;69 callbackFileResult = fileResult;70 };71 fileLoaderPlugin.loadSource(file, callback);72 assertEquals(1, head.childNodes.length);73 var script = head.childNodes[0];74 script.onerror('msg', 'url', 42);75 script.onload();76 assertEquals('script', script.nodeName);77 assertEquals('text/javascript', script.type);78 assertEquals('file.js', script.src);79 assertTrue(callbackCalled);80 assertNotNull(callbackFileResult);81 assertFalse(callbackFileResult.success);82 assertEquals('error loading file: file.js:42: msg', callbackFileResult.message);83 assertNotNull(callbackFileResult.file);84 assertEquals('file.js', callbackFileResult.file.fileSrc);85 assertEquals(42, callbackFileResult.file.timestamp);86};87FileLoaderPluginCallbackTests.prototype.testFileOnLoadJsWindowError = function() {88 var mockDOM = new jstestdriver.MockDOM();89 var head = mockDOM.createElement('head');90 var win = {};91 var scriptLoader = this.createScriptLoader(win, mockDOM);92 var stylesheetLoader = new jstestdriver.plugins.StylesheetLoader(win, mockDOM, false);93 var fileLoaderPlugin = new jstestdriver.plugins.FileLoaderPlugin(scriptLoader,94 stylesheetLoader);95 var file = new jstestdriver.FileSource('file.js', 42);96 var callbackCalled = false;97 var callbackFileResult = null;98 var callback = function(fileResult) {99 callbackCalled = true;100 callbackFileResult = fileResult;101 };102 fileLoaderPlugin.loadSource(file, callback);103 assertNotNull(win.onerror);104 assertEquals(1, head.childNodes.length);105 var script = head.childNodes[0];106 win.onerror('msg', 'url', 42);107 script.onload();108 assertSame(jstestdriver.EMPTY_FUNC, win.onerror);109 assertEquals('script', script.nodeName);110 assertEquals('text/javascript', script.type);111 assertEquals('file.js', script.src);112 assertTrue(callbackCalled);113 assertNotNull(callbackFileResult);114 assertFalse(callbackFileResult.success);115 assertEquals('error loading file: file.js:42: msg', callbackFileResult.message);116 assertNotNull(callbackFileResult.file);117 assertEquals('file.js', callbackFileResult.file.fileSrc);118 assertEquals(42, callbackFileResult.file.timestamp);119};120FileLoaderPluginCallbackTests.prototype.testFileOnLoadCss = function() {121 var mockDOM = new jstestdriver.MockDOM();122 var head = mockDOM.createElement('head');123 var scriptLoader = this.createScriptLoader({}, mockDOM);124 var stylesheetLoader = new jstestdriver.plugins.StylesheetLoader({}, mockDOM, false);125 var fileLoaderPlugin = new jstestdriver.plugins.FileLoaderPlugin(scriptLoader,126 stylesheetLoader);127 var file = new jstestdriver.FileSource('file.css', 24);128 var callbackCalled = false;129 var callbackFileResult = null;130 var callback = function(fileResult) {131 callbackCalled = true;132 callbackFileResult = fileResult;133 };134 fileLoaderPlugin.loadSource(file, callback);135 assertEquals(1, head.childNodes.length);136 var link = head.childNodes[0];137 link.onload();138 assertEquals('link', link.nodeName);139 assertEquals('text/css', link.type);140 assertEquals('stylesheet', link.rel);141 assertEquals('file.css', link.href);142 assertTrue(callbackCalled);143 assertNotNull(callbackFileResult);144 assertTrue(callbackFileResult.success);145 assertEquals('', callbackFileResult.message);146 assertNotNull(callbackFileResult.file);147 assertEquals('file.css', callbackFileResult.file.fileSrc);148 assertEquals(24, callbackFileResult.file.timestamp);149};150FileLoaderPluginCallbackTests.prototype.testFileOnLoadCssError = function() {151 var mockDOM = new jstestdriver.MockDOM();152 var head = mockDOM.createElement('head');153 var scriptLoader = this.createScriptLoader({}, mockDOM);154 var stylesheetLoader = new jstestdriver.plugins.StylesheetLoader({}, mockDOM, false);155 var fileLoaderPlugin = new jstestdriver.plugins.FileLoaderPlugin(scriptLoader,156 stylesheetLoader);157 var file = new jstestdriver.FileSource('file.css', 84);158 var callbackCalled = false;159 var callbackFileResult = null;160 var callback = function(fileResult) {161 callbackCalled = true;162 callbackFileResult = fileResult;163 };164 fileLoaderPlugin.loadSource(file, callback);165 assertEquals(1, head.childNodes.length);166 var link = head.childNodes[0];167 link.onerror('it sucks', 'url', 90);168 link.onload();169 assertEquals('link', link.nodeName);170 assertEquals('text/css', link.type);171 assertEquals('stylesheet', link.rel);172 assertEquals('file.css', link.href);173 assertTrue(callbackCalled);174 assertNotNull(callbackFileResult);175 assertFalse(callbackFileResult.success);176 assertEquals('error loading file: file.css:90: it sucks', callbackFileResult.message);177 assertNotNull(callbackFileResult.file);178 assertEquals('file.css', callbackFileResult.file.fileSrc);179 assertEquals(84, callbackFileResult.file.timestamp);180};181FileLoaderPluginCallbackTests.prototype.testFileOnLoadCssWindowError = function() {182 var mockDOM = new jstestdriver.MockDOM();183 var head = mockDOM.createElement('head');184 var win = {};185 var scriptLoader = this.createScriptLoader(win, mockDOM);186 var stylesheetLoader = new jstestdriver.plugins.StylesheetLoader(win, mockDOM, false);187 var fileLoaderPlugin = new jstestdriver.plugins.FileLoaderPlugin(scriptLoader,188 stylesheetLoader);189 var file = new jstestdriver.FileSource('file.css', 84);190 var callbackCalled = false;191 var callbackFileResult = null;192 var callback = function(fileResult) {193 callbackCalled = true;194 callbackFileResult = fileResult;195 };196 fileLoaderPlugin.loadSource(file, callback);197 assertNotNull(win.onerror);198 assertEquals(1, head.childNodes.length);199 var link = head.childNodes[0];200 win.onerror('it sucks', 'url', 90);201 link.onload();202 assertSame(jstestdriver.EMPTY_FUNC, win.onerror);203 assertEquals('link', link.nodeName);204 assertEquals('text/css', link.type);205 assertEquals('stylesheet', link.rel);206 assertEquals('file.css', link.href);207 assertTrue(callbackCalled);208 assertNotNull(callbackFileResult);209 assertFalse(callbackFileResult.success);210 assertEquals('error loading file: file.css:90: it sucks', callbackFileResult.message);211 assertNotNull(callbackFileResult.file);212 assertEquals('file.css', callbackFileResult.file.fileSrc);213 assertEquals(84, callbackFileResult.file.timestamp);214};215var FileLoaderPluginTest = TestCase('FileLoaderPluginTest');216FileLoaderPluginTest.prototype.createScriptLoader = function(win, dom) {217 return new jstestdriver.plugins.ScriptLoader(win, dom, {218 updateLatestTestCase: function() {},219 removeTestCaseForFilename: function() {}220 }, jstestdriver.now);221};222FileLoaderPluginTest.prototype.testFileOnReadyStateChangeJs = function() {223 var mockDOM = new jstestdriver.MockDOM();224 var head = mockDOM.createElement('head');225 var scriptLoader = this.createScriptLoader({}, mockDOM);226 var stylesheetLoader = new jstestdriver.plugins.StylesheetLoader({}, mockDOM, false);227 var fileLoaderPlugin = new jstestdriver.plugins.FileLoaderPlugin(scriptLoader, stylesheetLoader);228 var file = new jstestdriver.FileSource('file.js', 12);229 var callbackCalled = false;230 var callbackFileResult = null;231 var callback = function(fileResult) {232 callbackCalled = true;233 callbackFileResult = fileResult;234 };235 fileLoaderPlugin.loadSource(file, callback);236 assertEquals(1, head.childNodes.length);237 var script = head.childNodes[0];238 script.readyState = 'loaded';239 script.onreadystatechange();240 assertEquals('script', script.nodeName);241 assertEquals('text/javascript', script.type);242 assertEquals('file.js', script.src);243 assertTrue(callbackCalled);244 assertNotNull(callbackFileResult);245 assertTrue(callbackFileResult.success);246 assertEquals('', callbackFileResult.message);247 assertNotNull(callbackFileResult.file);248 assertEquals('file.js', callbackFileResult.file.fileSrc);249 assertEquals(12, callbackFileResult.file.timestamp);250};251FileLoaderPluginTest.prototype.testFileOnReadyStateChangeJsError = function() {252 var mockDOM = new jstestdriver.MockDOM();253 var head = mockDOM.createElement('head');254 var scriptLoader = this.createScriptLoader({}, mockDOM);255 var stylesheetLoader = new jstestdriver.plugins.StylesheetLoader({}, mockDOM, false);256 var fileLoaderPlugin = new jstestdriver.plugins.FileLoaderPlugin(scriptLoader, stylesheetLoader);257 var file = new jstestdriver.FileSource('file.js', 42);258 var callbackCalled = false;259 var callbackFileResult = null;260 var callback = function(fileResult) {261 callbackCalled = true;262 callbackFileResult = fileResult;263 };264 fileLoaderPlugin.loadSource(file, callback);265 assertEquals(1, head.childNodes.length);266 var script = head.childNodes[0];267 script.onerror('msg', 'url', 42);268 script.readyState = 'loaded';269 script.onreadystatechange();270 assertEquals('script', script.nodeName);271 assertEquals('text/javascript', script.type);272 assertEquals('file.js', script.src);273 assertTrue(callbackCalled);274 assertNotNull(callbackFileResult);275 assertFalse(callbackFileResult.success);276 assertEquals('error loading file: file.js:42: msg', callbackFileResult.message);277 assertNotNull(callbackFileResult.file);278 assertEquals('file.js', callbackFileResult.file.fileSrc);279 assertEquals(42, callbackFileResult.file.timestamp);280};281FileLoaderPluginTest.prototype.testFileOnReadyStateChangeJsWindowError = function() {282 var mockDOM = new jstestdriver.MockDOM();283 var head = mockDOM.createElement('head');284 var win = {};285 var scriptLoader = this.createScriptLoader(win, mockDOM);286 var stylesheetLoader = new jstestdriver.plugins.StylesheetLoader(win, mockDOM, false);287 var fileLoaderPlugin = new jstestdriver.plugins.FileLoaderPlugin(scriptLoader, stylesheetLoader);288 var file = new jstestdriver.FileSource('file.js', 42);289 var callbackCalled = false;290 var callbackFileResult = null;291 var callback = function(fileResult) {292 callbackCalled = true;293 callbackFileResult = fileResult;294 };295 fileLoaderPlugin.loadSource(file, callback);296 assertNotNull(win.onerror);297 assertEquals(1, head.childNodes.length);298 var script = head.childNodes[0];299 win.onerror('msg', 'url', 42);300 script.readyState = 'loaded';301 script.onreadystatechange();302 assertSame(jstestdriver.EMPTY_FUNC, win.onerror);303 assertEquals('script', script.nodeName);304 assertEquals('text/javascript', script.type);305 assertEquals('file.js', script.src);306 assertTrue(callbackCalled);307 assertNotNull(callbackFileResult);308 assertFalse(callbackFileResult.success);309 assertEquals('error loading file: file.js:42: msg', callbackFileResult.message);310 assertNotNull(callbackFileResult.file);311 assertEquals('file.js', callbackFileResult.file.fileSrc);312 assertEquals(42, callbackFileResult.file.timestamp);313};314FileLoaderPluginTest.prototype.testFileOnReadyStateChangeCss = function() {315 var mockDOM = new jstestdriver.MockDOM();316 var head = mockDOM.createElement('head');317 var scriptLoader = this.createScriptLoader({}, mockDOM);318 var stylesheetLoader = new jstestdriver.plugins.StylesheetLoader({}, mockDOM, false);319 var fileLoaderPlugin = new jstestdriver.plugins.FileLoaderPlugin(scriptLoader, stylesheetLoader);320 var file = new jstestdriver.FileSource('file.css', 24);321 var callbackCalled = false;322 var callbackFileResult = null;323 var callback = function(fileResult) {324 callbackCalled = true;325 callbackFileResult = fileResult;326 };327 fileLoaderPlugin.loadSource(file, callback);328 assertEquals(1, head.childNodes.length);329 var link = head.childNodes[0];330 link.readyState = 'loaded';331 link.onreadystatechange();332 assertEquals('link', link.nodeName);333 assertEquals('text/css', link.type);334 assertEquals('stylesheet', link.rel);335 assertEquals('file.css', link.href);336 assertTrue(callbackCalled);337 assertNotNull(callbackFileResult);338 assertTrue(callbackFileResult.success);339 assertEquals('', callbackFileResult.message);340 assertNotNull(callbackFileResult.file);341 assertEquals('file.css', callbackFileResult.file.fileSrc);342 assertEquals(24, callbackFileResult.file.timestamp);343};344FileLoaderPluginTest.prototype.testFileLoadCssOnLoadHack = function() {345 var mockDOM = new jstestdriver.MockDOM();346 var head = mockDOM.createElement('head');347 var scriptLoader = this.createScriptLoader({}, mockDOM);348 var stylesheetLoader = new jstestdriver.plugins.StylesheetLoader({}, mockDOM, true);349 var fileLoaderPlugin = new jstestdriver.plugins.FileLoaderPlugin(scriptLoader, stylesheetLoader);350 var file = new jstestdriver.FileSource('file.css', 24);351 var callbackCalled = 0;352 var callbackFileResult = null;353 var callback = function(fileResult) {354 callbackCalled++;355 callbackFileResult = fileResult;356 };357 fileLoaderPlugin.loadSource(file, callback);358 assertEquals(1, head.childNodes.length);359 var link = head.childNodes[0];360 assertEquals('link', link.nodeName);361 assertEquals('text/css', link.type);362 assertEquals('stylesheet', link.rel);363 assertEquals('file.css', link.href);364 assertEquals(1, callbackCalled);365 assertNotNull(callbackFileResult);366 assertTrue(callbackFileResult.success);367 assertEquals('', callbackFileResult.message);368 assertNotNull(callbackFileResult.file);369 assertEquals('file.css', callbackFileResult.file.fileSrc);370 assertEquals(24, callbackFileResult.file.timestamp);371};372FileLoaderPluginTest.prototype.testFileOnReadyStateChangeCssError = function() {373 var mockDOM = new jstestdriver.MockDOM();374 var head = mockDOM.createElement('head');375 var scriptLoader = this.createScriptLoader({}, mockDOM);376 var stylesheetLoader = new jstestdriver.plugins.StylesheetLoader({}, mockDOM, false);377 var fileLoaderPlugin = new jstestdriver.plugins.FileLoaderPlugin(scriptLoader, stylesheetLoader);378 var file = new jstestdriver.FileSource('file.css', 84);379 var callbackCalled = false;380 var callbackFileResult = null;381 var callback = function(fileResult) {382 callbackCalled = true;383 callbackFileResult = fileResult;384 };385 fileLoaderPlugin.loadSource(file, callback);386 assertEquals(1, head.childNodes.length);387 var link = head.childNodes[0];388 link.onerror('it sucks', 'url', 90);389 link.readyState = 'loaded';390 link.onreadystatechange();391 assertEquals('link', link.nodeName);392 assertEquals('text/css', link.type);393 assertEquals('stylesheet', link.rel);394 assertEquals('file.css', link.href);395 assertTrue(callbackCalled);396 assertNotNull(callbackFileResult);397 assertFalse(callbackFileResult.success);398 assertEquals('error loading file: file.css:90: it sucks', callbackFileResult.message);399 assertNotNull(callbackFileResult.file);400 assertEquals('file.css', callbackFileResult.file.fileSrc);401 assertEquals(84, callbackFileResult.file.timestamp);402};403FileLoaderPluginTest.prototype.testFileOnReadyStateChangeCssWindowError = function() {404 var mockDOM = new jstestdriver.MockDOM();405 var head = mockDOM.createElement('head');406 var win = {};407 var scriptLoader = this.createScriptLoader(win, mockDOM);408 var stylesheetLoader = new jstestdriver.plugins.StylesheetLoader(win, mockDOM, false);409 var fileLoaderPlugin = new jstestdriver.plugins.FileLoaderPlugin(scriptLoader, stylesheetLoader);410 var file = new jstestdriver.FileSource('file.css', 84);411 var callbackCalled = false;412 var callbackFileResult = null;413 var callback = function(fileResult) {414 callbackCalled = true;415 callbackFileResult = fileResult;416 };417 fileLoaderPlugin.loadSource(file, callback);418 assertNotNull(win.onerror);419 assertEquals(1, head.childNodes.length);420 var link = head.childNodes[0];421 win.onerror('it sucks', 'url', 90);422 link.readyState = 'loaded';423 link.onreadystatechange();424 assertSame(jstestdriver.EMPTY_FUNC, win.onerror);425 assertEquals('link', link.nodeName);426 assertEquals('text/css', link.type);427 assertEquals('stylesheet', link.rel);428 assertEquals('file.css', link.href);429 assertTrue(callbackCalled);430 assertNotNull(callbackFileResult);431 assertFalse(callbackFileResult.success);432 assertEquals('error loading file: file.css:90: it sucks', callbackFileResult.message);433 assertNotNull(callbackFileResult.file);434 assertEquals('file.css', callbackFileResult.file.fileSrc);435 assertEquals(84, callbackFileResult.file.timestamp);...
local-notification-core.js
Source:local-notification-core.js
1/*2 * Copyright (c) 2013-2015 by appPlant UG. All rights reserved.3 *4 * @APPPLANT_LICENSE_HEADER_START@5 *6 * This file contains Original Code and/or Modifications of Original Code7 * as defined in and that are subject to the Apache License8 * Version 2.0 (the 'License'). You may not use this file except in9 * compliance with the License. Please obtain a copy of the License at10 * http://opensource.org/licenses/Apache-2.0/ and read it before using this11 * file.12 *13 * The Original Code and all software distributed under the License are14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.18 * Please see the License for the specific language governing rights and19 * limitations under the License.20 *21 * @APPPLANT_LICENSE_HEADER_END@22 */23var exec = require('cordova/exec');24/********25 * CORE *26 ********/27/**28 * Returns the default settings.29 *30 * @return {Object}31 */32exports.getDefaults = function () {33 return this._defaults;34};35/**36 * Overwrite default settings.37 *38 * @param {Object} defaults39 */40exports.setDefaults = function (newDefaults) {41 var defaults = this.getDefaults();42 for (var key in defaults) {43 if (newDefaults.hasOwnProperty(key)) {44 defaults[key] = newDefaults[key];45 }46 }47};48/**49 * Schedule a new local notification.50 *51 * @param {Object} msgs52 * The notification properties53 * @param {Function} callback54 * A function to be called after the notification has been canceled55 * @param {Object?} scope56 * The scope for the callback function57 * @param {Object?} args58 * skipPermission:true schedules the notifications immediatly without59 * registering or checking for permission60 */61exports.schedule = function (msgs, callback, scope, args) {62 var fn = function(granted) {63 if (!granted) return;64 var notifications = Array.isArray(msgs) ? msgs : [msgs];65 for (var i = 0; i < notifications.length; i++) {66 var notification = notifications[i];67 this.mergeWithDefaults(notification);68 this.convertProperties(notification);69 }70 this.exec('schedule', notifications, callback, scope);71 };72 if (args && args.skipPermission) {73 fn.call(this, true);74 } else {75 this.registerPermission(fn, this);76 }77};78/**79 * Update existing notifications specified by IDs in options.80 *81 * @param {Object} notifications82 * The notification properties to update83 * @param {Function} callback84 * A function to be called after the notification has been updated85 * @param {Object?} scope86 * The scope for the callback function87 * @param {Object?} args88 * skipPermission:true schedules the notifications immediatly without89 * registering or checking for permission90 */91exports.update = function (msgs, callback, scope, args) {92 var fn = function(granted) {93 if (!granted) return;94 var notifications = Array.isArray(msgs) ? msgs : [msgs];95 for (var i = 0; i < notifications.length; i++) {96 var notification = notifications[i];97 this.convertProperties(notification);98 }99 this.exec('update', notifications, callback, scope);100 };101 if (args && args.skipPermission) {102 fn.call(this, true);103 } else {104 this.registerPermission(fn, this);105 }106};107/**108 * Clear the specified notification.109 *110 * @param {String} id111 * The ID of the notification112 * @param {Function} callback113 * A function to be called after the notification has been cleared114 * @param {Object?} scope115 * The scope for the callback function116 */117exports.clear = function (ids, callback, scope) {118 ids = Array.isArray(ids) ? ids : [ids];119 ids = this.convertIds(ids);120 this.exec('clear', ids, callback, scope);121};122/**123 * Clear all previously sheduled notifications.124 *125 * @param {Function} callback126 * A function to be called after all notifications have been cleared127 * @param {Object?} scope128 * The scope for the callback function129 */130exports.clearAll = function (callback, scope) {131 this.exec('clearAll', null, callback, scope);132};133/**134 * Cancel the specified notifications.135 *136 * @param {String[]} ids137 * The IDs of the notifications138 * @param {Function} callback139 * A function to be called after the notifications has been canceled140 * @param {Object?} scope141 * The scope for the callback function142 */143exports.cancel = function (ids, callback, scope) {144 ids = Array.isArray(ids) ? ids : [ids];145 ids = this.convertIds(ids);146 this.exec('cancel', ids, callback, scope);147};148/**149 * Remove all previously registered notifications.150 *151 * @param {Function} callback152 * A function to be called after all notifications have been canceled153 * @param {Object?} scope154 * The scope for the callback function155 */156exports.cancelAll = function (callback, scope) {157 this.exec('cancelAll', null, callback, scope);158};159/**160 * Check if a notification with an ID is present.161 *162 * @param {String} id163 * The ID of the notification164 * @param {Function} callback165 * A callback function to be called with the list166 * @param {Object?} scope167 * The scope for the callback function168 */169exports.isPresent = function (id, callback, scope) {170 this.exec('isPresent', id || 0, callback, scope);171};172/**173 * Check if a notification with an ID is scheduled.174 *175 * @param {String} id176 * The ID of the notification177 * @param {Function} callback178 * A callback function to be called with the list179 * @param {Object?} scope180 * The scope for the callback function181 */182exports.isScheduled = function (id, callback, scope) {183 this.exec('isScheduled', id || 0, callback, scope);184};185/**186 * Check if a notification with an ID was triggered.187 *188 * @param {String} id189 * The ID of the notification190 * @param {Function} callback191 * A callback function to be called with the list192 * @param {Object?} scope193 * The scope for the callback function194 */195exports.isTriggered = function (id, callback, scope) {196 this.exec('isTriggered', id || 0, callback, scope);197};198/**199 * List all local notification IDs.200 *201 * @param {Function} callback202 * A callback function to be called with the list203 * @param {Object?} scope204 * The scope for the callback function205 */206exports.getAllIds = function (callback, scope) {207 this.exec('getAllIds', null, callback, scope);208};209/**210 * Alias for `getAllIds`.211 */212exports.getIds = function () {213 this.getAllIds.apply(this, arguments);214};215/**216 * List all scheduled notification IDs.217 *218 * @param {Function} callback219 * A callback function to be called with the list220 * @param {Object?} scope221 * The scope for the callback function222 */223exports.getScheduledIds = function (callback, scope) {224 this.exec('getScheduledIds', null, callback, scope);225};226/**227 * List all triggered notification IDs.228 *229 * @param {Function} callback230 * A callback function to be called with the list231 * @param {Object?} scope232 * The scope for the callback function233 */234exports.getTriggeredIds = function (callback, scope) {235 this.exec('getTriggeredIds', null, callback, scope);236};237/**238 * Property list for given local notifications.239 * If called without IDs, all notification will be returned.240 *241 * @param {Number[]?} ids242 * Set of notification IDs243 * @param {Function} callback244 * A callback function to be called with the list245 * @param {Object?} scope246 * The scope for the callback function247 */248exports.get = function () {249 var args = Array.apply(null, arguments);250 if (typeof args[0] == 'function') {251 args.unshift([]);252 }253 var ids = args[0],254 callback = args[1],255 scope = args[2];256 if (!Array.isArray(ids)) {257 this.exec('getSingle', Number(ids), callback, scope);258 return;259 }260 ids = this.convertIds(ids);261 this.exec('getAll', ids, callback, scope);262};263/**264 * Property list for all local notifications.265 *266 * @param {Function} callback267 * A callback function to be called with the list268 * @param {Object?} scope269 * The scope for the callback function270 */271exports.getAll = function (callback, scope) {272 this.exec('getAll', null, callback, scope);273};274/**275 * Property list for given scheduled notifications.276 * If called without IDs, all notification will be returned.277 *278 * @param {Number[]?} ids279 * Set of notification IDs280 * @param {Function} callback281 * A callback function to be called with the list282 * @param {Object?} scope283 * The scope for the callback function284 */285exports.getScheduled = function () {286 var args = Array.apply(null, arguments);287 if (typeof args[0] == 'function') {288 args.unshift([]);289 }290 var ids = args[0],291 callback = args[1],292 scope = args[2];293 if (!Array.isArray(ids)) {294 ids = [ids];295 }296 if (!Array.isArray(ids)) {297 this.exec('getSingleScheduled', Number(ids), callback, scope);298 return;299 }300 ids = this.convertIds(ids);301 this.exec('getScheduled', ids, callback, scope);302};303/**304 * Property list for all scheduled notifications.305 *306 * @param {Function} callback307 * A callback function to be called with the list308 * @param {Object?} scope309 * The scope for the callback function310 */311exports.getAllScheduled = function (callback, scope) {312 this.exec('getScheduled', null, callback, scope);313};314/**315 * Property list for given triggered notifications.316 * If called without IDs, all notification will be returned.317 *318 * @param {Number[]?} ids319 * Set of notification IDs320 * @param {Function} callback321 * A callback function to be called with the list322 * @param {Object?} scope323 * The scope for the callback function324 */325exports.getTriggered = function () {326 var args = Array.apply(null, arguments);327 if (typeof args[0] == 'function') {328 args.unshift([]);329 }330 var ids = args[0],331 callback = args[1],332 scope = args[2];333 if (!Array.isArray(ids)) {334 ids = [ids];335 }336 if (!Array.isArray(ids)) {337 this.exec('getSingleTriggered', Number(ids), callback, scope);338 return;339 }340 ids = this.convertIds(ids);341 this.exec('getTriggered', ids, callback, scope);342};343/**344 * Property list for all triggered notifications.345 *346 * @param {Function} callback347 * A callback function to be called with the list348 * @param {Object?} scope349 * The scope for the callback function350 */351exports.getAllTriggered = function (callback, scope) {352 this.exec('getTriggered', null, callback, scope);353};354/**355 * Informs if the app has the permission to show notifications.356 *357 * @param {Function} callback358 * The function to be exec as the callback359 * @param {Object?} scope360 * The callback function's scope361 */362exports.hasPermission = function (callback, scope) {363 var fn = this.createCallbackFn(callback, scope);364 if (device.platform != 'iOS') {365 fn(true);366 return;367 }368 exec(fn, null, 'LocalNotification', 'hasPermission', []);369};370/**371 * Register permission to show notifications if not already granted.372 *373 * @param {Function} callback374 * The function to be exec as the callback375 * @param {Object?} scope376 * The callback function's scope377 */378exports.registerPermission = function (callback, scope) {379 if (this._registered) {380 return this.hasPermission(callback, scope);381 } else {382 this._registered = true;383 }384 var fn = this.createCallbackFn(callback, scope);385 if (device.platform != 'iOS') {386 fn(true);387 return;388 }389 exec(fn, null, 'LocalNotification', 'registerPermission', []);390};391/**********392 * EVENTS *393 **********/394/**395 * Register callback for given event.396 *397 * @param {String} event398 * The event's name399 * @param {Function} callback400 * The function to be exec as callback401 * @param {Object?} scope402 * The callback function's scope403 */404exports.on = function (event, callback, scope) {405 if (typeof callback !== "function")406 return;407 if (!this._listener[event]) {408 this._listener[event] = [];409 }410 var item = [callback, scope || window];411 this._listener[event].push(item);412};413/**414 * Unregister callback for given event.415 *416 * @param {String} event417 * The event's name418 * @param {Function} callback419 * The function to be exec as callback420 */421exports.un = function (event, callback) {422 var listener = this._listener[event];423 if (!listener)424 return;425 for (var i = 0; i < listener.length; i++) {426 var fn = listener[i][0];427 if (fn == callback) {428 listener.splice(i, 1);429 break;430 }431 }...
Element.anim.js
Source:Element.anim.js
1xdescribe("Ext.Element.anim", function() {2 var el,3 todoIt = Ext.isSafari4 ? xit : it;4 5 beforeEach(function() {6 el = Ext.getBody().createChild({7 id: 'testElement'8 });9 });10 11 afterEach(function() {12 el.destroy();13 });14 15 describe("callbacks", function() {16 var callback, called, scope, actualScope;17 18 beforeEach(function() {19 called = false;20 scope = {};21 callback = jasmine.createSpy('callback').andCallFake(function() {22 called = true;23 actualScope = this;24 });25 });26 27 afterEach(function() {28 actualScope = undefined;29 });30 describe("slideIn()", function() {31 beforeEach(function() {32 el.slideIn('t', {33 duration: 10,34 callback: callback,35 scope: scope36 });37 });38 39 todoIt("should run callback", function() {40 waitsFor(function() { return called; }, 1000, 'Callback to fire');41 42 runs(function() {43 expect(called).toBeTruthy();44 });45 });46 47 todoIt("should run callback in correct scope", function() {48 waitsFor(function() { return called; }, 1000, 'Callback to fire');49 50 runs(function() {51 expect(actualScope).toBe(scope);52 });53 });54 });55 56 describe("slideOut()", function() {57 beforeEach(function() {58 el.slideOut('t', {59 duration: 10,60 callback: callback,61 scope: scope62 });63 });64 65 todoIt("should run callback", function() {66 waitsFor(function() { return called; }, 1000, 'Callback to fire');67 68 runs(function() {69 expect(called).toBeTruthy();70 });71 });72 73 todoIt("should run callback in correct scope", function() {74 waitsFor(function() { return called; }, 1000, 'Callback to fire');75 76 runs(function() {77 expect(actualScope).toBe(scope);78 });79 });80 });81 82 describe("puff()", function() {83 beforeEach(function() {84 el.slideIn('t', {85 duration: 10,86 callback: callback,87 scope: scope88 });89 });90 91 todoIt("should run callback", function() {92 waitsFor(function() { return called; }, 1000, 'Callback to fire');93 94 runs(function() {95 expect(called).toBeTruthy();96 });97 });98 99 todoIt("should run callback in correct scope", function() {100 waitsFor(function() { return called; }, 1000, 'Callback to fire');101 102 runs(function() {103 expect(actualScope).toBe(scope);104 });105 });106 });107 108 describe("switchOff()", function() {109 beforeEach(function() {110 el.switchOff({111 duration: 10,112 callback: callback,113 scope: scope114 });115 });116 117 todoIt("should run callback", function() {118 waitsFor(function() { return called; }, 1000, 'Callback to fire');119 120 runs(function() {121 expect(called).toBeTruthy();122 });123 });124 125 todoIt("should run callback in correct scope", function() {126 waitsFor(function() { return called; }, 1000, 'Callback to fire');127 128 runs(function() {129 expect(actualScope).toBe(scope);130 });131 });132 });133 describe("frame()", function() {134 beforeEach(function() {135 el.frame('#ff0000', 1, {136 duration: 10,137 callback: callback,138 scope: scope139 });140 });141 142 todoIt("should run callback", function() {143 waitsFor(function() { return called; }, 1000, 'Callback to fire');144 145 runs(function() {146 expect(called).toBeTruthy();147 });148 });149 150 todoIt("should run callback in correct scope", function() {151 waitsFor(function() { return called; }, 1000, 'Callback to fire');152 153 runs(function() {154 expect(actualScope).toBe(scope);155 });156 });157 });158 159 describe("ghost()", function() {160 beforeEach(function() {161 el.ghost('b', {162 duration: 10,163 callback: callback,164 scope: scope165 });166 });167 168 todoIt("should run callback", function() {169 waitsFor(function() { return called; }, 1000, 'Callback to fire');170 171 runs(function() {172 expect(called).toBeTruthy();173 });174 });175 176 todoIt("should run callback in correct scope", function() {177 waitsFor(function() { return called; }, 1000, 'Callback to fire');178 179 runs(function() {180 expect(actualScope).toBe(scope);181 });182 });183 });184 185 describe("highlight()", function() {186 beforeEach(function() {187 el.highlight('#0000ff', {188 duration: 10,189 callback: callback,190 scope: scope191 });192 });193 194 todoIt("should run callback", function() {195 waitsFor(function() { return called; }, 1000, 'Callback to fire');196 197 runs(function() {198 expect(called).toBeTruthy();199 });200 });201 202 todoIt("should run callback in correct scope", function() {203 waitsFor(function() { return called; }, 1000, 'Callback to fire');204 205 runs(function() {206 expect(actualScope).toBe(scope);207 });208 });209 });210 211 describe("fadeIn()", function() {212 beforeEach(function() {213 el.fadeIn({214 duration: 10,215 callback: callback,216 scope: scope217 });218 });219 220 todoIt("should run callback", function() {221 waitsFor(function() { return called; }, 1000, 'Callback to fire');222 223 runs(function() {224 expect(called).toBeTruthy();225 });226 });227 228 todoIt("should run callback in correct scope", function() {229 waitsFor(function() { return called; }, 1000, 'Callback to fire');230 231 runs(function() {232 expect(actualScope).toBe(scope);233 });234 });235 });236 237 describe("fadeOut()", function() {238 beforeEach(function() {239 el.fadeOut({240 duration: 10,241 callback: callback,242 scope: scope243 });244 });245 246 todoIt("should run callback", function() {247 waitsFor(function() { return called; }, 1000, 'Callback to fire');248 249 runs(function() {250 expect(called).toBeTruthy();251 });252 });253 254 todoIt("should run callback in correct scope", function() {255 waitsFor(function() { return called; }, 1000, 'Callback to fire');256 257 runs(function() {258 expect(actualScope).toBe(scope);259 });260 });261 });262 263 describe("scale()", function() {264 beforeEach(function() {265 el.scale(100, 100, {266 duration: 10,267 callback: callback,268 scope: scope269 });270 });271 272 todoIt("should run callback", function() {273 waitsFor(function() { return called; }, 1000, 'Callback to fire');274 275 runs(function() {276 expect(called).toBeTruthy();277 });278 });279 280 todoIt("should run callback in correct scope", function() {281 waitsFor(function() { return called; }, 1000, 'Callback to fire');282 283 runs(function() {284 expect(actualScope).toBe(scope);285 });286 });287 });288 289 describe("shift()", function() {290 beforeEach(function() {291 el.shift({292 x: 200,293 y: 200,294 duration: 10,295 callback: callback,296 scope: scope297 });298 });299 300 todoIt("should run callback", function() {301 waitsFor(function() { return called; }, 1000, 'Callback to fire');302 303 runs(function() {304 expect(called).toBeTruthy();305 });306 });307 308 todoIt("should run callback in correct scope", function() {309 waitsFor(function() { return called; }, 1000, 'Callback to fire');310 311 runs(function() {312 expect(actualScope).toBe(scope);313 });314 });315 });316 });...
local-notification.js
Source:local-notification.js
1/*2 * Copyright (c) 2013-2015 by appPlant UG. All rights reserved.3 *4 * @APPPLANT_LICENSE_HEADER_START@5 *6 * This file contains Original Code and/or Modifications of Original Code7 * as defined in and that are subject to the Apache License8 * Version 2.0 (the 'License'). You may not use this file except in9 * compliance with the License. Please obtain a copy of the License at10 * http://opensource.org/licenses/Apache-2.0/ and read it before using this11 * file.12 *13 * The Original Code and all software distributed under the License are14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.18 * Please see the License for the specific language governing rights and19 * limitations under the License.20 *21 * @APPPLANT_LICENSE_HEADER_END@22 */23/*************24 * INTERFACE *25 *************/26/**27 * Returns the default settings.28 *29 * @return {Object}30 */31exports.getDefaults = function () {32 return this.core.getDefaults();33};34/**35 * Overwrite default settings.36 *37 * @param {Object} defaults38 */39exports.setDefaults = function (defaults) {40 this.core.setDefaults(defaults);41};42/**43 * Schedule a new local notification.44 *45 * @param {Object} notifications46 * The notification properties47 * @param {Function} callback48 * A function to be called after the notification has been canceled49 * @param {Object?} scope50 * The scope for the callback function51 * @param {Object?} args52 * skipPermission:true schedules the notifications immediatly without53 * registering or checking for permission54 */55exports.schedule = function (notifications, callback, scope, args) {56 this.core.schedule(notifications, callback, scope, args);57};58/**59 * Update existing notifications specified by IDs in options.60 *61 * @param {Object} notifications62 * The notification properties to update63 * @param {Function} callback64 * A function to be called after the notification has been updated65 * @param {Object?} scope66 * The scope for the callback function67 * @param {Object?} args68 * skipPermission:true schedules the notifications immediatly without69 * registering or checking for permission70 */71exports.update = function (notifications, callback, scope, args) {72 this.core.update(notifications, callback, scope, args);73};74/**75 * Clear the specified notification.76 *77 * @param {String} id78 * The ID of the notification79 * @param {Function} callback80 * A function to be called after the notification has been cleared81 * @param {Object?} scope82 * The scope for the callback function83 */84exports.clear = function (ids, callback, scope) {85 this.core.clear(ids, callback, scope);86};87/**88 * Clear all previously sheduled notifications.89 *90 * @param {Function} callback91 * A function to be called after all notifications have been cleared92 * @param {Object?} scope93 * The scope for the callback function94 */95exports.clearAll = function (callback, scope) {96 this.core.clearAll(callback, scope);97};98/**99 * Cancel the specified notifications.100 *101 * @param {String[]} ids102 * The IDs of the notifications103 * @param {Function} callback104 * A function to be called after the notifications has been canceled105 * @param {Object?} scope106 * The scope for the callback function107 */108exports.cancel = function (ids, callback, scope) {109 this.core.cancel(ids, callback, scope);110};111/**112 * Remove all previously registered notifications.113 *114 * @param {Function} callback115 * A function to be called after all notifications have been canceled116 * @param {Object?} scope117 * The scope for the callback function118 */119exports.cancelAll = function (callback, scope) {120 this.core.cancelAll(callback, scope);121};122/**123 * Check if a notification with an ID is present.124 *125 * @param {String} id126 * The ID of the notification127 * @param {Function} callback128 * A callback function to be called with the list129 * @param {Object?} scope130 * The scope for the callback function131 */132exports.isPresent = function (id, callback, scope) {133 this.core.isPresent(id, callback, scope);134};135/**136 * Check if a notification with an ID is scheduled.137 *138 * @param {String} id139 * The ID of the notification140 * @param {Function} callback141 * A callback function to be called with the list142 * @param {Object?} scope143 * The scope for the callback function144 */145exports.isScheduled = function (id, callback, scope) {146 this.core.isScheduled(id, callback, scope);147};148/**149 * Check if a notification with an ID was triggered.150 *151 * @param {String} id152 * The ID of the notification153 * @param {Function} callback154 * A callback function to be called with the list155 * @param {Object?} scope156 * The scope for the callback function157 */158exports.isTriggered = function (id, callback, scope) {159 this.core.isTriggered(id, callback, scope);160};161/**162 * List all local notification IDs.163 *164 * @param {Function} callback165 * A callback function to be called with the list166 * @param {Object?} scope167 * The scope for the callback function168 */169exports.getAllIds = function (callback, scope) {170 this.core.getAllIds(callback, scope);171};172/**173 * Alias for `getAllIds`.174 */175exports.getIds = function () {176 this.getAllIds.apply(this, arguments);177};178/**179 * List all scheduled notification IDs.180 *181 * @param {Function} callback182 * A callback function to be called with the list183 * @param {Object?} scope184 * The scope for the callback function185 */186exports.getScheduledIds = function (callback, scope) {187 this.core.getScheduledIds(callback, scope);188};189/**190 * List all triggered notification IDs.191 *192 * @param {Function} callback193 * A callback function to be called with the list194 * @param {Object?} scope195 * The scope for the callback function196 */197exports.getTriggeredIds = function (callback, scope) {198 this.core.getTriggeredIds(callback, scope);199};200/**201 * Property list for given local notifications.202 * If called without IDs, all notification will be returned.203 *204 * @param {Number[]?} ids205 * Set of notification IDs206 * @param {Function} callback207 * A callback function to be called with the list208 * @param {Object?} scope209 * The scope for the callback function210 */211exports.get = function () {212 this.core.get.apply(this.core, arguments);213};214/**215 * Property list for all local notifications.216 *217 * @param {Function} callback218 * A callback function to be called with the list219 * @param {Object?} scope220 * The scope for the callback function221 */222exports.getAll = function (callback, scope) {223 this.core.getAll(callback, scope);224};225/**226 * Property list for given scheduled notifications.227 * If called without IDs, all notification will be returned.228 *229 * @param {Number[]?} ids230 * Set of notification IDs231 * @param {Function} callback232 * A callback function to be called with the list233 * @param {Object?} scope234 * The scope for the callback function235 */236exports.getScheduled = function () {237 this.core.getScheduled.apply(this.core, arguments);238};239/**240 * Property list for all scheduled notifications.241 *242 * @param {Function} callback243 * A callback function to be called with the list244 * @param {Object?} scope245 * The scope for the callback function246 */247exports.getAllScheduled = function (callback, scope) {248 this.core.getAllScheduled(callback, scope);249};250/**251 * Property list for given triggered notifications.252 * If called without IDs, all notification will be returned.253 *254 * @param {Number[]?} ids255 * Set of notification IDs256 * @param {Function} callback257 * A callback function to be called with the list258 * @param {Object?} scope259 * The scope for the callback function260 */261exports.getTriggered = function () {262 this.core.getTriggered.apply(this.core, arguments);263};264/**265 * Property list for all triggered notifications.266 *267 * @param {Function} callback268 * A callback function to be called with the list269 * @param {Object?} scope270 * The scope for the callback function271 */272exports.getAllTriggered = function (callback, scope) {273 this.core.getAllTriggered(callback, scope);274};275/**276 * Informs if the app has the permission to show notifications.277 *278 * @param {Function} callback279 * The function to be exec as the callback280 * @param {Object?} scope281 * The callback function's scope282 */283exports.hasPermission = function (callback, scope) {284 this.core.hasPermission(callback, scope);285};286/**287 * Register permission to show notifications if not already granted.288 *289 * @param {Function} callback290 * The function to be exec as the callback291 * @param {Object?} scope292 * The callback function's scope293 */294exports.registerPermission = function (callback, scope) {295 this.core.registerPermission(callback, scope);296};297/****************298 * DEPRECATIONS *299 ****************/300/**301 * Schedule a new local notification.302 */303exports.add = function () {304 console.warn('Depreated: Please use `notification.local.schedule` instead.');305 this.schedule.apply(this, arguments);306};307/**308 * Register permission to show notifications309 * if not already granted.310 */311exports.promptForPermission = function () {312 console.warn('Depreated: Please use `notification.local.registerPermission` instead.');313 this.registerPermission.apply(this, arguments);314};315/**********316 * EVENTS *317 **********/318/**319 * Register callback for given event.320 *321 * @param {String} event322 * The event's name323 * @param {Function} callback324 * The function to be exec as callback325 * @param {Object?} scope326 * The callback function's scope327 */328exports.on = function (event, callback, scope) {329 this.core.on(event, callback, scope);330};331/**332 * Unregister callback for given event.333 *334 * @param {String} event335 * The event's name336 * @param {Function} callback337 * The function to be exec as callback338 */339exports.un = function (event, callback) {340 this.core.un(event, callback, scope);...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!