Files
pokedex/www/lib/ngCordova/src/mocks/push.js
2016-08-22 12:55:52 +02:00

77 lines
1.8 KiB
JavaScript

'use strict';
/**
* @ngdoc service
* @name ngCordovaMocks.cordovaPush
*
* @description
* A service for testing push notifications features
* in an app build with ngCordova.
*/
ngCordovaMocks.factory('$cordovaPush', ['$q', '$timeout', '$rootScope', function ($q, $timeout, $rootScope) {
var throwsError = false;
var deviceToken = '';
return {
/**
* @ngdoc property
* @name throwsError
* @propertyOf ngCordovaMocks.cordovaPush
*
* @description
* A flag that signals whether a promise should be rejected or not.
* This property should only be used in automated tests.
**/
throwsError: throwsError,
/**
* @ngdoc property
* @name deviceToken
* @propertyOf ngCordovaMocks.cordovaPush
*
* @description
* Token send when service register device
* This property should only be used in automated tests.
**/
deviceToken: deviceToken,
onNotification: function (notification) {
$timeout(function () {
$rootScope.$broadcast('$cordovaPush:notificationReceived', notification);
});
},
register: function (config) {
var _self = this;
var defer = $q.defer();
if (config !== undefined && config.ecb === undefined) {
config.ecb = this.onNotification;
}
if (this.throwsError) {
defer.reject('There was a register error.');
} else {
defer.resolve(this.deviceToken);
if (config && config.ecb) {
config.ecb({
event: 'registered',
regid: _self.deviceToken
});
}
}
return defer.promise;
},
unregister: function (options) {
var defer = $q.defer();
if (this.throwsError) {
defer.reject('There was a register error.');
} else {
defer.resolve();
}
return defer.promise;
},
};
}]);