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.
142 lines
4.5 KiB
142 lines
4.5 KiB
7 years ago
|
'use strict'
|
||
|
/* global describe, it, inject, expect, beforeEach , tsNow*/
|
||
|
|
||
|
describe('userStatus filter', function () {
|
||
|
beforeEach(module('myApp.filters'))
|
||
|
|
||
|
beforeEach(inject(function (_$filter_, ___) {
|
||
|
this.$filter = _$filter_
|
||
|
this._ = ___
|
||
|
}))
|
||
|
|
||
|
beforeEach(function () {
|
||
|
this.userStatusFilter = this.$filter('userStatus')
|
||
|
})
|
||
|
|
||
|
it('can recognize support users', function () {
|
||
|
var input = { id: 1000 }
|
||
|
var expected = this._('user_status_support')
|
||
|
var result = this.userStatusFilter(input)
|
||
|
|
||
|
expect(result).toBe(expected)
|
||
|
})
|
||
|
|
||
|
it('can recognize service notifications', function () {
|
||
|
// id 777000 is the id of the service notifications channel
|
||
|
var input = { id: 777000 }
|
||
|
var expected = this._('user_status_service_notifications')
|
||
|
var result = this.userStatusFilter(input)
|
||
|
|
||
|
expect(result).toBe(expected)
|
||
|
})
|
||
|
|
||
|
describe('when the user is not a bot, it', function () {
|
||
|
it('can handle empty user statuses', function () {
|
||
|
var input = null
|
||
|
var expected = this._('user_status_long_ago')
|
||
|
var result = this.userStatusFilter(input)
|
||
|
|
||
|
expect(result).toBe(expected)
|
||
|
|
||
|
input = { id: 12321 }
|
||
|
result = this.userStatusFilter(input)
|
||
|
expect(result).toBe(expected)
|
||
|
|
||
|
input = { id: 12321, status: {} }
|
||
|
result = this.userStatusFilter(input)
|
||
|
expect(result).toBe(expected)
|
||
|
|
||
|
input = { id: 12321, status: {_: null} }
|
||
|
result = this.userStatusFilter(input)
|
||
|
expect(result).toBe(expected)
|
||
|
|
||
|
input = { id: 12321, status: {_: null}, pFlag: {} }
|
||
|
result = this.userStatusFilter(input)
|
||
|
expect(result).toBe(expected)
|
||
|
|
||
|
input = { id: 12321, status: {_: null}, pFlags: {bot: false} }
|
||
|
result = this.userStatusFilter(input)
|
||
|
expect(result).toBe(expected)
|
||
|
})
|
||
|
|
||
|
it('can display an online status', function () {
|
||
|
var input = { id: 12321, status: {_: 'userStatusOnline'} }
|
||
|
var expected = this._('user_status_online')
|
||
|
var result = this.userStatusFilter(input)
|
||
|
|
||
|
expect(result).toBe(expected)
|
||
|
})
|
||
|
|
||
|
it('can display that the user was recently online', function () {
|
||
|
var input = { id: 12321, status: {_: 'userStatusRecently'} }
|
||
|
var expected = this._('user_status_recently')
|
||
|
var result = this.userStatusFilter(input)
|
||
|
|
||
|
expect(result).toBe(expected)
|
||
|
})
|
||
|
|
||
|
it('can display that the user was offline since a certain time', function () {
|
||
|
var time = tsNow(true) - 360000 // 100 hours ago
|
||
|
var relativeTimeFilter = this.$filter('relativeTime')
|
||
|
var input = { id: 12321, status: {_: 'userStatusOffline', was_online: time} }
|
||
|
var expected = this._('user_status_last_seen', relativeTimeFilter(time))
|
||
|
var result = this.userStatusFilter(input)
|
||
|
|
||
|
expect(result).toBe(expected)
|
||
|
})
|
||
|
|
||
|
// Further testing of relativeTimeFilter is done in relativeTimeFilterSpec.js
|
||
|
|
||
|
it('can display that the user was online last week', function () {
|
||
|
var input = { id: 12321, status: {_: 'userStatusLastWeek'} }
|
||
|
var expected = this._('user_status_last_week')
|
||
|
var result = this.userStatusFilter(input)
|
||
|
|
||
|
expect(result).toBe(expected)
|
||
|
})
|
||
|
|
||
|
it('can display that the user was online last month', function () {
|
||
|
var input = { id: 12321, status: {_: 'userStatusLastMonth'} }
|
||
|
var expected = this._('user_status_last_month')
|
||
|
var result = this.userStatusFilter(input)
|
||
|
|
||
|
expect(result).toBe(expected)
|
||
|
})
|
||
|
})
|
||
|
|
||
|
describe('when the user is a bot', function () {
|
||
|
beforeEach(function () {
|
||
|
this.input = { id: 12321, status: {_: null}, pFlags: {bot: true} }
|
||
|
})
|
||
|
|
||
|
it('it can tell that the user is a bot', function () {
|
||
|
var expected = this._('user_status_bot')
|
||
|
var result = this.userStatusFilter(this.input)
|
||
|
|
||
|
expect(result).toBe(expected)
|
||
|
})
|
||
|
|
||
|
describe('and the bot has privacy settings', function () {
|
||
|
beforeEach(function () {
|
||
|
this.privacySettings = true
|
||
|
})
|
||
|
|
||
|
it('it can tell that it is a bot with no acces to messages', function () {
|
||
|
var expected = this._('user_status_bot_privacy')
|
||
|
var result = this.userStatusFilter(this.input, this.privacySettings)
|
||
|
|
||
|
expect(result).toBe(expected)
|
||
|
})
|
||
|
|
||
|
it('it can tell that it is a bot with acces to messages', function () {
|
||
|
// Flags indicate true/false
|
||
|
this.input.pFlags.bot_chat_history = true
|
||
|
var expected = this._('user_status_bot_noprivacy')
|
||
|
var result = this.userStatusFilter(this.input, this.privacySettings)
|
||
|
|
||
|
expect(result).toBe(expected)
|
||
|
})
|
||
|
})
|
||
|
})
|
||
|
})
|