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.
147 lines
4.3 KiB
147 lines
4.3 KiB
'use strict' |
|
/* global describe, it, inject, expect, beforeEach, jasmine, spyOn */ |
|
|
|
describe('VideoModalController', function () { |
|
beforeEach(module('myApp.controllers')) |
|
|
|
beforeEach(function () { |
|
this.AppDocsManager = { |
|
wrapVideoForFull: jasmine.createSpy('wrapVideoForFull'), |
|
saveDocFile: jasmine.createSpy('saveDocFile') |
|
} |
|
|
|
this.ErrorService = { |
|
input: {}, |
|
confirm: function (message) { |
|
this.input = message |
|
return { |
|
then: function (f) { |
|
f() |
|
} |
|
} |
|
} |
|
} |
|
|
|
this.PeersSelectService = { |
|
input: {}, |
|
selectPeer: function (options) { |
|
this.input = options |
|
return { |
|
then: function (f) { |
|
f('Peerselected') |
|
} |
|
} |
|
} |
|
} |
|
|
|
this.AppMessagesManager = { |
|
deleteMessages: jasmine.createSpy('deleteMessages') |
|
} |
|
|
|
this.$modalInstance = { |
|
dismiss: jasmine.createSpy('dismissModal') |
|
} |
|
|
|
inject(function (_$controller_, _$rootScope_) { |
|
this.$rootScope = _$rootScope_ |
|
this.$scope = this.$rootScope.$new() |
|
this.$scope.docID = 'randomvideo' |
|
|
|
this.$controller = _$controller_ |
|
|
|
spyOn(this.$rootScope, '$broadcast').and.callThrough() |
|
spyOn(this.$scope, '$on').and.callThrough() |
|
|
|
this.$controller('VideoModalController', { |
|
$scope: this.$scope, |
|
$rootScope: this.$rootScope, |
|
$modalInstance: this.$modalInstance, |
|
PeersSelectService: this.PeersSelectService, |
|
AppMessagesManager: this.AppMessagesManager, |
|
AppDocsManager: this.AppDocsManager, |
|
AppPeersManager: {}, |
|
ErrorService: this.ErrorService |
|
}) |
|
}) |
|
}) |
|
|
|
// define tests |
|
it('sets the video in the scope', function (done) { |
|
expect(this.$scope.progress).toEqual({enabled: false}) |
|
expect(this.$scope.player).toEqual({}) |
|
expect(this.AppDocsManager.wrapVideoForFull).toHaveBeenCalledWith(this.$scope.docID) |
|
done() |
|
}) |
|
|
|
it('forwards a message with a video', function (done) { |
|
this.$scope.messageID = 'id68567' |
|
var messageID = this.$scope.messageID |
|
|
|
this.$scope.forward() |
|
expect(this.PeersSelectService.input).toEqual({canSend: true}) |
|
expect(this.$scope.$broadcast).toHaveBeenCalledWith('history_focus', { |
|
peerString: 'Peerselected', |
|
attachment: { |
|
_: 'fwd_messages', |
|
id: [messageID] |
|
} |
|
}) |
|
done() |
|
}) |
|
|
|
it('deletes a message with a video', function (done) { |
|
this.$scope.messageID = 'id235235' |
|
|
|
this.$scope.delete() |
|
expect(this.ErrorService.input).toEqual({type: 'MESSAGE_DELETE'}) |
|
expect(this.AppMessagesManager.deleteMessages).toHaveBeenCalledWith([this.$scope.messageID]) |
|
done() |
|
}) |
|
|
|
it('downloads the document (video)', function (done) { |
|
this.$scope.download() |
|
expect(this.AppDocsManager.saveDocFile).toHaveBeenCalledWith(this.$scope.docID) |
|
done() |
|
}) |
|
|
|
it('delete a video linked to a message', function (done) { |
|
this.$scope.messageID = 'id2352' |
|
|
|
this.$rootScope.$broadcast('history_delete') |
|
expect(this.$scope.$on).toHaveBeenCalledWith('history_delete', jasmine.any(Function)) |
|
expect(this.$modalInstance.dismiss).not.toHaveBeenCalled() |
|
done() |
|
}) |
|
|
|
it('can not delete a video not linked to a message', function (done) { |
|
this.$scope.messageID = 'id42' |
|
|
|
var historyUpdate = {} |
|
this.$rootScope.$broadcast('history_delete', historyUpdate) |
|
expect(this.$scope.$on).toHaveBeenCalledWith('history_delete', jasmine.any(Function)) |
|
expect(this.$modalInstance.dismiss).not.toHaveBeenCalled() |
|
|
|
historyUpdate.msgs = {} |
|
this.$rootScope.$broadcast('history_delete', historyUpdate) |
|
expect(this.$scope.$on).toHaveBeenCalledWith('history_delete', jasmine.any(Function)) |
|
expect(this.$modalInstance.dismiss).not.toHaveBeenCalled() |
|
done() |
|
}) |
|
|
|
describe('when the video is related to the message', function () { |
|
beforeEach(function () { |
|
this.historyUpdate = { |
|
msgs: {} |
|
} |
|
}) |
|
it('delete that video', function (done) { |
|
this.$scope.messageID = 'id33' |
|
this.historyUpdate.msgs[this.$scope.messageID] = 'an update for id33' |
|
|
|
this.$rootScope.$broadcast('history_delete', this.historyUpdate) |
|
expect(this.$scope.$on).toHaveBeenCalledWith('history_delete', jasmine.any(Function)) |
|
expect(this.$modalInstance.dismiss).toHaveBeenCalled() |
|
done() |
|
}) |
|
}) |
|
})
|
|
|