UNPKG

ng-cordova

Version:

[ngCordova](http://ngcordova.com/) ==========

92 lines (81 loc) 2.59 kB
/** * @ngdoc service * @name ngCordovaMocks.cordovaBarcodeScanner * * @description * A service for testing barcode scanner features * in an app build with ngCordova. **/ ngCordovaMocks.factory('$cordovaBarcodeScanner', ['$q', function ($q) { var throwsError = false; var scannedText = ''; var scannedFormat = ''; var wasCancelled = false; return { /** * @ngdoc property * @name throwsError * @propertyOf ngCordovaMocks.cordovaBarcodeScanner * * @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 scannedText * @propertyOf ngCordovaMocks.cordovaBarcodeScanner * * @description * Used to simulate the result.text property of a * successful scan. For more information, see the text at * https://github.com/wildabeast/BarcodeScanner/#using-the-plugin * This property should only be used in automated tests. **/ scannedText: scannedText, /** * @ngdoc property * @name scannedFormat * @propertyOf ngCordovaMocks.cordovaBarcodeScanner * @description * Used to simulate the result.format property of a * successful scan. For more information, see the text at * https://github.com/wildabeast/BarcodeScanner/#using-the-plugin * This property should only be used in automated tests. **/ scannedFormat: scannedFormat, /** * @ngdoc property * @name wasCancelled * @propertyOf ngCordovaMocks.cordovaBarcodeScanner * * @description * Used to simulate the result.cancelled property of a * successful scan. For more information, see the text at * https://github.com/wildabeast/BarcodeScanner/#using-the-plugin * This property should only be used in automated tests. **/ wasCancelled: wasCancelled, scan: function () { var defer = $q.defer(); if (this.throwsError) { defer.reject('There was an error scanning.'); } else { defer.resolve({text: this.scannedText, format: this.scannedFormat, cancelled: this.wasCancelled}); } return defer.promise; }, encode: function (type, data) { this.scannedFormat = type; this.scannedText = data; var defer = $q.defer(); if (this.throwsError) { defer.reject('There was an error encoding the data.'); } else { defer.resolve(); } return defer.promise; } }; }]);