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

'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)
})
})
})
})