123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- describe('WebClientService', function() {
- let $service;
- beforeEach(function() {
- module(($provide) => {
- // Provide configuration
- $provide.constant('CONFIG', {
- ICE_SERVERS: [
- {
- urls: [
- 'turn:turn.threema.ch:443?transport=tcp',
- 'turn:turn.threema.ch:443?transport=udp',
- 'turns:turn.threema.ch:443?transport=tcp',
- ],
- username: 'user',
- credential: 'credential',
- },
- ],
- });
- // Mock some dependencies that we don't really need
- $provide.constant('PROTOCOL_VERSION', 1337);
- $provide.constant('$state', null);
- $provide.constant('$translate', null);
- });
- // Load modules
- module('ngAria');
- module('ngAnimate');
- module('ngMaterial');
- module('3ema.services');
- module('3ema.container');
- // Inject the service to be tested
- inject(function(WebClientService) {
- $service = WebClientService;
- });
- });
- it('can skip ICE TLS hosts if a non-TLS TCP server is available', () => {
- const allUrlsBefore = [].concat(...$service.config.ICE_SERVERS.map((conf) => conf.urls));
- expect(allUrlsBefore.indexOf('turns:turn.threema.ch:443?transport=tcp')).not.toEqual(-1);
- $service.skipIceTls();
- const allUrlsAfter = [].concat(...$service.config.ICE_SERVERS.map((conf) => conf.urls));
- expect(allUrlsAfter.length).toEqual(allUrlsBefore.length - 1);
- expect(allUrlsAfter.indexOf('turns:turn.threema.ch:443?transport=tcp')).toEqual(-1);
- });
- it('can skip ICE TLS hosts if a non-TLS TCP server is available in another server object', () => {
- $service.config.ICE_SERVERS = [
- {
- urls: ['turn:turn.threema.ch:443?transport=udp', 'turns:turn.threema.ch:443?transport=tcp'],
- username: 'user', credential: 'credential',
- },
- {
- urls: ['turn:turn.threema.ch:443?transport=tcp'],
- username: 'user', credential: 'credential',
- }
- ];
- const allUrlsBefore = [].concat(...$service.config.ICE_SERVERS.map((conf) => conf.urls));
- expect(allUrlsBefore.indexOf('turns:turn.threema.ch:443?transport=tcp')).not.toEqual(-1);
- $service.skipIceTls();
- const allUrlsAfter = [].concat(...$service.config.ICE_SERVERS.map((conf) => conf.urls));
- expect(allUrlsAfter.length).toEqual(allUrlsBefore.length - 1);
- expect(allUrlsAfter.indexOf('turns:turn.threema.ch:443?transport=tcp')).toEqual(-1);
- });
- it('does not skip ICE TLS hosts if no non-TLS TCP server is available', () => {
- $service.config.ICE_SERVERS = [
- {
- urls: ['turn:turn.threema.ch:443?transport=udp', 'turns:turn.threema.ch:443?transport=tcp'],
- username: 'user',
- credential: 'credential',
- }
- ];
- const allUrlsBefore = [].concat(...$service.config.ICE_SERVERS.map((conf) => conf.urls));
- expect(allUrlsBefore.indexOf('turns:turn.threema.ch:443?transport=tcp')).not.toEqual(-1);
- $service.skipIceTls();
- const allUrlsAfter = [].concat(...$service.config.ICE_SERVERS.map((conf) => conf.urls));
- expect(allUrlsAfter.length).toEqual(allUrlsBefore.length);
- expect(allUrlsAfter.indexOf('turns:turn.threema.ch:443?transport=tcp')).not.toEqual(-1);
- });
- });
|