Telegram Web, preconfigured for usage in I2P.
http://web.telegram.i2p/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
160 lines
4.5 KiB
160 lines
4.5 KiB
'use strict' |
|
/* global describe, it, inject, expect, beforeEach, jasmine */ |
|
|
|
describe('ImportContactModalController', function () { |
|
beforeEach(module('myApp.controllers')) |
|
|
|
beforeEach(function () { |
|
this.modalInstance = { |
|
close: jasmine.createSpy('close'), |
|
dismiss: jasmine.createSpy('dismiss') |
|
} |
|
|
|
this.randomID = 123456852 |
|
|
|
function thenFinallyFactory (input) { |
|
return { |
|
then: function (callback) { |
|
callback(input) |
|
return { |
|
finally: function (callback) { |
|
callback() |
|
} |
|
} |
|
} |
|
} |
|
} |
|
|
|
this.AppUsersManager = { |
|
thenValue: null, |
|
importContact: function (phone, first, last) { |
|
this.input = { |
|
phone: phone, |
|
first: first, |
|
last: last |
|
} |
|
return thenFinallyFactory(this.thenValue) |
|
} |
|
} |
|
|
|
this.ErrorService = { |
|
show: jasmine.createSpy('show') |
|
} |
|
|
|
this.PhonebookContactsService = { |
|
thenValue: false, |
|
isAvailable: function () { |
|
return false |
|
}, |
|
openPhonebookImport: function () { |
|
var then = thenFinallyFactory(this.thenValue) |
|
return { |
|
result: then |
|
} |
|
} |
|
} |
|
|
|
inject(function (_$controller_, _$rootScope_) { |
|
this.$controller = _$controller_ |
|
this.$rootScope = _$rootScope_ |
|
|
|
this.$scope = _$rootScope_.$new() |
|
this.createController = function () { |
|
this.$controller('ImportContactModalController', { |
|
$scope: this.$scope, |
|
$modalInstance: this.modalInstance, |
|
$rootScope: this.$rootScope, |
|
AppUsersManager: this.AppUsersManager, |
|
ErrorService: this.ErrorService, |
|
PhonebookContactsService: this.PhonebookContactsService |
|
}) |
|
} |
|
}) |
|
}) |
|
|
|
it('can create a controller when no imported contacts are defined', function (done) { |
|
this.createController() |
|
|
|
expect(this.$scope.importContact).toEqual({}) |
|
done() |
|
}) |
|
|
|
it('can create a controller when imported contacts are defined', function (done) { |
|
this.$scope.importContact = { non_empty: true } |
|
this.createController() |
|
var expected = { non_empty: true } |
|
|
|
expect(this.$scope.importContact).toEqual(expected) |
|
done() |
|
}) |
|
|
|
describe('(when the controller is created), ', function () { |
|
beforeEach(function () { |
|
this.createController() |
|
}) |
|
|
|
it('does nothing when no phonenumber was entered', function (done) { |
|
this.$scope.doImport() |
|
|
|
expect(this.$scope.progress).not.toBeDefined() |
|
|
|
this.$scope.importContact = { |
|
first_name: 'bob' |
|
} |
|
expect(this.$scope.progress).not.toBeDefined() |
|
done() |
|
}) |
|
|
|
describe('when contact-information is added, it', function () { |
|
beforeEach(function () { |
|
this.$scope.importContact = { |
|
phone: '+316132465798' |
|
} |
|
}) |
|
|
|
it('can handle phoneNumber that are not telegram users', function (done) { |
|
this.$scope.doImport() |
|
|
|
expect(this.ErrorService.show).toHaveBeenCalledWith({ error: {code: 404, type: 'USER_NOT_USING_TELEGRAM'} }) |
|
expect(this.modalInstance.close).toHaveBeenCalledWith(null) |
|
expect(this.$scope.progress.enabled).not.toBeDefined() |
|
done() |
|
}) |
|
|
|
it('can import contacts that are telegram users', function (done) { |
|
this.AppUsersManager.thenValue = this.randomID |
|
this.$scope.doImport() |
|
|
|
expect(this.ErrorService.show).not.toHaveBeenCalled() |
|
expect(this.modalInstance.close).toHaveBeenCalledWith(this.randomID) |
|
expect(this.$scope.progress.enabled).not.toBeDefined() |
|
expect(this.AppUsersManager.input).toEqual({phone: '+316132465798', first: '', last: ''}) |
|
done() |
|
}) |
|
|
|
it('can handle contacts with first and last name', function (done) { |
|
this.$scope.importContact.first_name = 'jan' |
|
this.$scope.importContact.last_name = 'wandelaar' |
|
this.$scope.doImport() |
|
|
|
expect(this.AppUsersManager.input).toEqual({phone: '+316132465798', first: 'jan', last: 'wandelaar'}) |
|
done() |
|
}) |
|
}) |
|
|
|
it('can not import contacts from a phonebook if none were found', function (done) { |
|
this.$scope.importPhonebook() |
|
|
|
expect(this.modalInstance.dismiss).toHaveBeenCalled() |
|
done() |
|
}) |
|
|
|
it('can import contacts from a phonebook', function (done) { |
|
this.PhonebookContactsService.thenValue = {0: 'dummy'} |
|
this.$scope.importPhonebook() |
|
|
|
expect(this.modalInstance.close).toHaveBeenCalledWith('dummy') |
|
done() |
|
}) |
|
}) |
|
})
|
|
|