summaryrefslogtreecommitdiffstats
path: root/js/tests/models/contact_model.js
blob: 09fbb2d697e65af1f9944e85aa181edcc3bb93ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
describe('contactModel', function() {

	var $Contact;
	beforeEach(module('contactsApp'));

	beforeEach(inject(function(Contact){
		$Contact = Contact;
	}));

	it('should match a search pattern in title', function() {
		var contact = new $Contact({displayName: 'test'});
		contact.title('The Boss');
		expect(contact.matches('123')).to.equal(false);
		expect(contact.matches('the')).to.equal(true);
		expect(contact.matches('OSS')).to.equal(true);
	});

	it('should match a search pattern in address', function() {
		var contact = new $Contact({displayName: 'test'});
		contact.setProperty('adr', {value: ["12", "", "", "Kenya", "", "", ""]});
		expect(contact.matches('12')).to.equal(true);
		expect(contact.matches('kenya')).to.equal(true);
	});

	it('should parse a valid avatar', function() {
		var contact = new $Contact({displayName: 'test'});
		var base64Photo = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wgARCAAEAAQDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAAB//EABUBAQEAAAAAAAAAAAAAAAAAAAQG/9oADAMBAAIQAxAAAAEuPT//xAAVEAEBAAAAAAAAAAAAAAAAAAADBP/aAAgBAQABBQKiplT/xAAYEQACAwAAAAAAAAAAAAAAAAABAwACMf/aAAgBAwEBPwGz2E7P/8QAGBEAAgMAAAAAAAAAAAAAAAAAAQIAAyH/2gAIAQIBAT8BFSLgE//EABcQAQADAAAAAAAAAAAAAAAAAAEAAgP/2gAIAQEABj8CW2is/8QAFRABAQAAAAAAAAAAAAAAAAAAAFH/2gAIAQEAAT8hq3j/2gAMAwEAAgADAAAAEN//xAAWEQADAAAAAAAAAAAAAAAAAAAAARH/2gAIAQMBAT8QumP/xAAVEQEBAAAAAAAAAAAAAAAAAAAAAf/aAAgBAgEBPxCaH//EABgQAQADAQAAAAAAAAAAAAAAAAEAIVFh/9oACAEBAAE/ECIUCwdzVn//2Q==';
		contact.photo(base64Photo);
		expect(contact.photo()).to.equal(base64Photo);
	});

	it('should ignore an invalid avatar', function() {
		var contact = new $Contact({displayName: 'test'});
		var base64Photo = 'ENCODING=b:iVBORw0KGgoAAAANSUhEUgAAAHwAAAB8CAMAAACcwCSMAAAAgVBMVEX/0QEAAAD/0QD/1wH/1AH/3QH/2QGkigE/NABPQQBSQwABIAAD/2wBDAAEQEBAAAAAAAAEBAAE/ECIUCwdzVn//2Q==';
		contact.photo(base64Photo);
		expect(contact.photo()).to.be.undefined;
	});

	it('should generate proper ISO.8601.2004 date string', function() {
		var contact = new $Contact({displayName: 'test'});
		var d = contact.getISODate(new Date('2016-09-01T09:07:05Z'));
		expect(d).to.equal('20160901T090705Z');
	});
});