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.
141 lines
4.5 KiB
141 lines
4.5 KiB
'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) |
|
}) |
|
}) |
|
}) |
|
})
|
|
|