Neues Initialrelease mit IonicMaterial
This commit is contained in:
180
www/lib/ngCordova/test/mocks/contacts.spec.js
Normal file
180
www/lib/ngCordova/test/mocks/contacts.spec.js
Normal file
@@ -0,0 +1,180 @@
|
||||
describe('ngCordovaMocks', function() {
|
||||
beforeEach(function() {
|
||||
module('ngCordovaMocks');
|
||||
});
|
||||
|
||||
describe('cordovaContacts', function () {
|
||||
var $rootScope = null;
|
||||
var $cordovaContacts = null;
|
||||
var findOptions = {fields:'*'};
|
||||
|
||||
var createContact = function(id, firstName, lastName, nickname,
|
||||
phoneNumbers, emailAddresses, mailingAddresses, ims, organizations,
|
||||
birthday, note, photos, categories, urls) {
|
||||
var contact = {
|
||||
id: id,
|
||||
displayName: firstName + ' ' + lastName,
|
||||
name: { givenName: firstName, familyName: lastName },
|
||||
nickname: firstName,
|
||||
phoneNumbers: phoneNumbers,
|
||||
emails: emailAddresses,
|
||||
addresses: mailingAddresses,
|
||||
ims: ims,
|
||||
organizations: organizations,
|
||||
birthday: birthday,
|
||||
note: note,
|
||||
photos: photos,
|
||||
categories: categories,
|
||||
urls: urls
|
||||
};
|
||||
return contact;
|
||||
};
|
||||
|
||||
beforeEach(inject(function (_$rootScope_, _$cordovaContacts_) {
|
||||
$cordovaContacts = _$cordovaContacts_;
|
||||
$rootScope = _$rootScope_;
|
||||
|
||||
// Add some contacts for testing purposes
|
||||
var earl = createContact('1', 'Earl', 'Baleep', 'Earl',
|
||||
[], [], [], [], [], '06/21/1952',
|
||||
'', [], [], []);
|
||||
$cordovaContacts.contacts.push(earl);
|
||||
}));
|
||||
|
||||
it('should save a contact', function (done) {
|
||||
var originalLength = $cordovaContacts.contacts.length;
|
||||
|
||||
var contact = createContact('1000000', 'Norman', 'Yup', 'Norman');
|
||||
$cordovaContacts.save(contact)
|
||||
.then(
|
||||
function() {
|
||||
var newLength = $cordovaContacts.contacts.length;
|
||||
expect(newLength).toBe(originalLength+1);
|
||||
},
|
||||
function() { expect(false).toBe(true); }
|
||||
)
|
||||
.finally(function() { done(); })
|
||||
;
|
||||
|
||||
$rootScope.$digest();
|
||||
});
|
||||
|
||||
it('should not allow the same contact to be saved twice', function(done) {
|
||||
var originalLength = $cordovaContacts.contacts.length;
|
||||
|
||||
// Save the contact once
|
||||
var contact = createContact('1000001', 'John', 'Doe', 'John');
|
||||
$cordovaContacts.save(contact)
|
||||
.then(
|
||||
function() {
|
||||
// Ensure the contact was added
|
||||
var newLength = $cordovaContacts.contacts.length;
|
||||
expect(newLength).toBe(originalLength+1);
|
||||
|
||||
// If the contact is saved again, it should fail.
|
||||
$cordovaContacts.save(contact)
|
||||
.then(
|
||||
function() { expect(false).toBe(true); },
|
||||
function() { expect(true).toBe(true); }
|
||||
)
|
||||
.finally(function() { done(); })
|
||||
;
|
||||
},
|
||||
function() { expect(false).toBe(true); }
|
||||
)
|
||||
.finally(function() { done(); })
|
||||
;
|
||||
|
||||
$rootScope.$digest();
|
||||
});
|
||||
|
||||
it('should remove an existng contact', function(done) {
|
||||
// The unique identifier of the contact we'll remove
|
||||
var contactId = '1000002';
|
||||
var originalLength = $cordovaContacts.contacts.length;
|
||||
|
||||
// Save the contact once
|
||||
var contact = createContact(contactId, 'John', 'Doe', 'John');
|
||||
$cordovaContacts.save(contact)
|
||||
.then(
|
||||
function() {
|
||||
// Ensure the contact was added
|
||||
var newLength = $cordovaContacts.contacts.length;
|
||||
expect(newLength).toBe(originalLength+1);
|
||||
|
||||
// Attempt to remove the contact
|
||||
$cordovaContacts.remove(contact)
|
||||
.then(
|
||||
function() {
|
||||
newLength = $cordovaContacts.contacts.length;
|
||||
expect(newLength).toBe(originalLength);
|
||||
},
|
||||
|
||||
function() { expect(false).toBe(true); }
|
||||
)
|
||||
.finally(function() { done(); })
|
||||
;
|
||||
},
|
||||
function() { expect(false).toBe(true); }
|
||||
)
|
||||
.finally(function() { done(); })
|
||||
;
|
||||
|
||||
$rootScope.$digest();
|
||||
});
|
||||
|
||||
it('should fail to remove a contact if it does not exist', function(done) {
|
||||
// The unique identifier of the contact we'll try to remove
|
||||
var contactId = '10000003';
|
||||
var contact = createContact(contactId, 'John', 'Doe', 'John');
|
||||
|
||||
// Attempt to remove the contact
|
||||
$cordovaContacts.remove(contact)
|
||||
.then(
|
||||
function() { expect(false).toBe(true); },
|
||||
function() { expect(true).toBe(true); }
|
||||
)
|
||||
.finally(function() { done(); })
|
||||
;
|
||||
|
||||
$rootScope.$digest();
|
||||
});
|
||||
|
||||
it('should find an existing contact', function(done) {
|
||||
$cordovaContacts.find(findOptions)
|
||||
.then(
|
||||
function() { expect(true).toBe(true); },
|
||||
function(error) { expect(false).toBe(true); }
|
||||
)
|
||||
.finally(function() { done(); })
|
||||
;
|
||||
|
||||
$rootScope.$digest();
|
||||
});
|
||||
|
||||
it ('should not find a specific contact', function(done) {
|
||||
$cordovaContacts.find(findOptions)
|
||||
.then(
|
||||
function() { expect(true).toBe(true); },
|
||||
function(error) { expect(false).toBe(true); }
|
||||
)
|
||||
.finally(function() { done(); })
|
||||
;
|
||||
|
||||
$rootScope.$digest();
|
||||
});
|
||||
|
||||
it('should throw an error while finding a contact.', function(done) {
|
||||
$cordovaContacts.throwsError = true;
|
||||
$cordovaContacts.find(findOptions)
|
||||
.then(
|
||||
function() { expect(false).toBe(true); },
|
||||
function(error) { expect(true).toBe(true); }
|
||||
)
|
||||
.finally(function() { done(); })
|
||||
;
|
||||
|
||||
$rootScope.$digest();
|
||||
});
|
||||
});
|
||||
})
|
||||
Reference in New Issue
Block a user