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.
109 lines
2.8 KiB
109 lines
2.8 KiB
8 years ago
|
'use strict'
|
||
|
/* global describe, it, inject, expect, beforeEach, jasmine */
|
||
|
|
||
|
describe('ProfileEditModalController', function () {
|
||
|
beforeEach(module('myApp.controllers'))
|
||
|
|
||
|
beforeEach(function () {
|
||
|
var id = 42
|
||
|
this.randomID = id
|
||
|
|
||
|
this.MtpApiManager = {
|
||
|
errorField: null,
|
||
|
getUserID: function () {
|
||
|
return {
|
||
|
then: function (callback) {
|
||
|
callback(id)
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
invokeApi: function (action, params) {
|
||
|
return this
|
||
|
},
|
||
|
then: function (callback, error) {
|
||
|
if (!this.errorField) {
|
||
|
callback({})
|
||
|
} else {
|
||
|
error(this.errorField)
|
||
|
}
|
||
|
return {
|
||
|
finally: function (final) {
|
||
|
final()
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.AppUsersManager = {
|
||
|
getUser: function (userId) {
|
||
|
return {
|
||
|
first_name: 'John',
|
||
|
last_name: 'Doe'
|
||
|
}
|
||
|
},
|
||
|
saveApiUser: jasmine.createSpy('saveApiUser')
|
||
|
}
|
||
|
this.$modalInstance = { close: jasmine.createSpy('close') }
|
||
|
|
||
|
inject(function (_$controller_, _$rootScope_) {
|
||
|
this.$controller = _$controller_
|
||
|
this.$scope = _$rootScope_.$new()
|
||
|
|
||
|
this.$controller('ProfileEditModalController', {
|
||
|
$scope: this.$scope,
|
||
|
$modalInstance: this.$modalInstance,
|
||
|
AppUsersManager: this.AppUsersManager,
|
||
|
MtpApiManager: this.MtpApiManager
|
||
|
})
|
||
|
})
|
||
|
})
|
||
|
|
||
|
it('should initiate the right scope', function (done) {
|
||
|
expect(this.$scope.profile).toEqual({first_name: 'John', last_name: 'Doe'})
|
||
|
expect(this.$scope.error).toEqual({})
|
||
|
done()
|
||
|
})
|
||
|
|
||
|
it('can send a successful profile update request', function (done) {
|
||
|
this.$scope.updateProfile()
|
||
|
|
||
|
expect(this.AppUsersManager.saveApiUser).toHaveBeenCalled()
|
||
|
expect(this.$modalInstance.close).toHaveBeenCalled()
|
||
|
done()
|
||
|
})
|
||
|
|
||
|
it('can handle empty name/surname', function (done) {
|
||
|
delete this.$scope.profile.first_name
|
||
|
delete this.$scope.profile.last_name
|
||
|
this.$scope.updateProfile()
|
||
|
|
||
|
expect(this.AppUsersManager.saveApiUser).toHaveBeenCalled()
|
||
|
expect(this.$modalInstance.close).toHaveBeenCalled()
|
||
|
done()
|
||
|
})
|
||
|
|
||
|
it('can handle an invalid first name error', function (done) {
|
||
|
this.MtpApiManager.errorField = {type: 'FIRSTNAME_INVALID'}
|
||
|
this.$scope.updateProfile()
|
||
|
|
||
|
expect(this.$scope.error.field).toEqual('first_name')
|
||
|
done()
|
||
|
})
|
||
|
|
||
|
it('can handle an invalid last name error', function (done) {
|
||
|
this.MtpApiManager.errorField = {type: 'LASTNAME_INVALID'}
|
||
|
this.$scope.updateProfile()
|
||
|
|
||
|
expect(this.$scope.error.field).toEqual('last_name')
|
||
|
done()
|
||
|
})
|
||
|
|
||
|
it('can handle an unmodified name error', function (done) {
|
||
|
this.MtpApiManager.errorField = {type: 'NAME_NOT_MODIFIED'}
|
||
|
this.$scope.updateProfile()
|
||
|
|
||
|
expect(this.$modalInstance.close).toHaveBeenCalled()
|
||
|
done()
|
||
|
})
|
||
|
})
|