100 lines
2.4 KiB
JavaScript
100 lines
2.4 KiB
JavaScript
describe('ngCordovaMocks', function() {
|
|
beforeEach(function() {
|
|
module('ngCordovaMocks');
|
|
});
|
|
|
|
describe('cordovaDeviceOrientation', function () {
|
|
var count = 0;
|
|
var $interval = null;
|
|
var $rootScope = null;
|
|
var $cordovaDeviceOrientation = null;
|
|
var orientationServiceOptions = { frequency: 1000 };
|
|
|
|
beforeEach(inject(function (_$interval_, _$rootScope_, _$cordovaDeviceOrientation_) {
|
|
$cordovaDeviceOrientation = _$cordovaDeviceOrientation_;
|
|
$rootScope = _$rootScope_;
|
|
$interval = _$interval_;
|
|
count = 0;
|
|
}));
|
|
|
|
it('should get the current heading', function (done) {
|
|
var expected = { x:1, y:1, z:1, timestamp:Date() };
|
|
$cordovaDeviceOrientation.currentHeading = expected;
|
|
|
|
$cordovaDeviceOrientation.getCurrentHeading()
|
|
.then(
|
|
function(actual) { expect(actual).toBe(expected); },
|
|
function() { expect(false).toBe(true); }
|
|
)
|
|
.finally(function() { done(); })
|
|
;
|
|
|
|
$rootScope.$digest();
|
|
});
|
|
|
|
it('should throw an error while getting the current heading.', function(done) {
|
|
$cordovaDeviceOrientation.throwsError = true;
|
|
$cordovaDeviceOrientation.getCurrentHeading()
|
|
.then(
|
|
function(actual) { expect(false).toBe(true); },
|
|
function() { expect(true).toBe(true); }
|
|
)
|
|
.finally(function() { done(); })
|
|
;
|
|
|
|
$rootScope.$digest();
|
|
});
|
|
|
|
it('should track five readings over an interval', function() {
|
|
var watch = $cordovaDeviceOrientation.watchHeading(orientationServiceOptions);
|
|
watch.then(
|
|
function() { },
|
|
function(err) { expect(false).toBe(true); },
|
|
function(result) {
|
|
count = count + 1;
|
|
}
|
|
);
|
|
|
|
$interval.flush(5000);
|
|
$rootScope.$digest();
|
|
|
|
expect(count).toBe(5);
|
|
});
|
|
|
|
it('should clear a created watch', function() {
|
|
var watch = $cordovaDeviceOrientation.watchHeading(orientationServiceOptions);
|
|
watch.then(
|
|
function() { },
|
|
function(err) { expect(false).toBe(true); },
|
|
function(result) {
|
|
count = count + 1;
|
|
}
|
|
);
|
|
|
|
$interval.flush(5000);
|
|
$cordovaDeviceOrientation.clearWatch(watch.watchID);
|
|
$rootScope.$digest();
|
|
|
|
expect(count).toBe(5);
|
|
});
|
|
|
|
it('should cancel a created watch', function() {
|
|
var watch = $cordovaDeviceOrientation.watchHeading(orientationServiceOptions);
|
|
watch.then(
|
|
function() { },
|
|
function(err) { expect(false).toBe(true); },
|
|
function(result) {
|
|
count = count + 1;
|
|
}
|
|
);
|
|
|
|
$interval.flush(5000);
|
|
watch.cancel();
|
|
$rootScope.$digest();
|
|
|
|
expect(count).toBe(5);
|
|
});
|
|
|
|
});
|
|
})
|