UNPKG

copay-crown

Version:

A Secure Crown Wallet

128 lines (115 loc) 3.5 kB
import { PlatformProvider } from './platform'; import { TestBed, getTestBed, inject, async } from '@angular/core/testing'; import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; import { NgLoggerModule, Level } from '@nsalaun/ng-logger'; import { Logger } from '../../providers/logger/logger'; import { TranslateModule, TranslateService, TranslateLoader, TranslateFakeLoader } from '@ngx-translate/core'; import { Platform } from 'ionic-angular'; describe('PlatformProvider', () => { let injector: TestBed; let service: PlatformProvider; let httpMock: HttpTestingController; let userAgent; beforeEach(() => { TestBed.configureTestingModule({ imports: [ HttpClientTestingModule, NgLoggerModule.forRoot(Level.LOG), TranslateModule.forRoot({ loader: { provide: TranslateLoader, useClass: TranslateFakeLoader } }) ], providers: [ PlatformProvider, Logger, Platform ] }); injector = getTestBed(); service = injector.get(PlatformProvider); httpMock = injector.get(HttpTestingController); }); it('should get browser name', () => { let name = service.getBrowserName(); expect(name).toBe('chrome'); }); it('should return "unknown" if browser is unknown', () => { // change userAgent userAgent = window.navigator.userAgent; console.log('before changing userAgent', window.navigator.userAgent); Object.defineProperties(window.navigator, { userAgent: { value: 'someUnknownCoolBrowser v1.0', writable: true } }); console.log('after changing userAgent', window.navigator.userAgent); let name = service.getBrowserName(); expect(name).toBe('unknown'); // restore userAgent console.log('before restoring userAgent', window.navigator.userAgent); Object.defineProperties(window.navigator, { userAgent: { value: userAgent, writable: false } }); console.log('after restoring userAgent', window.navigator.userAgent); }); }); describe('PlatformProvider without navigator', () => { let injector: TestBed; let service: PlatformProvider; let httpMock: HttpTestingController; let navi; beforeEach(() => { navi = window.navigator; console.log('before changing navigator', window.navigator); // change navigator Object.defineProperties(window, { navigator: { value: null, writable: true } }); console.log('after changing navigator', window.navigator); }); beforeEach(() => { TestBed.configureTestingModule({ imports: [ HttpClientTestingModule, NgLoggerModule.forRoot(Level.LOG), TranslateModule.forRoot({ loader: { provide: TranslateLoader, useClass: TranslateFakeLoader } }) ], providers: [ PlatformProvider, Logger, Platform ] }); injector = getTestBed(); service = injector.get(PlatformProvider); httpMock = injector.get(HttpTestingController); }); afterEach(() => { console.log('before restoring navigator', window.navigator); Object.defineProperties(window, { navigator: { value: navi, writable: false } }); console.log('after restoring navigator', window.navigator); }); it('should have a dummy user agent', () => { let ua = service.ua; expect(ua).toBe('dummy user-agent'); }); });