tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

mock-subapps.js (2471B)


      1 'use strict';
      2 
      3 import {SubAppsService, SubAppsServiceReceiver, SubAppsServiceResultCode} from '/gen/third_party/blink/public/mojom/subapps/sub_apps_service.mojom.m.js';
      4 
      5 self.SubAppsServiceTest = (() => {
      6  // Class that mocks SubAppsService interface defined in /third_party/blink/public/mojom/subapps/sub_apps_service.mojom
      7 
      8  class MockSubAppsService {
      9    constructor() {
     10      this.interceptor_ =
     11        new MojoInterfaceInterceptor(SubAppsService.$interfaceName);
     12      this.receiver_ = new SubAppsServiceReceiver(this);
     13      this.interceptor_.oninterfacerequest =
     14        e => this.receiver_.$.bindHandle(e.handle);
     15      this.interceptor_.start();
     16    }
     17 
     18    reset() {
     19      this.interceptor_.stop();
     20      this.receiver_.$.close();
     21    }
     22 
     23    add(sub_apps) {
     24      return Promise.resolve({
     25        result: testInternal.addCallReturnValue,
     26      });
     27    }
     28 
     29    list() {
     30      return Promise.resolve({
     31        result: {
     32          resultCode: testInternal.serviceResultCode,
     33          subAppsList: testInternal.listCallReturnValue,
     34        }
     35      });
     36    }
     37 
     38    remove() {
     39      return Promise.resolve({
     40        result: testInternal.removeCallReturnValue,
     41      });
     42    }
     43  }
     44 
     45  let testInternal = {
     46    initialized: false,
     47    mockSubAppsService: null,
     48    serviceResultCode: 0,
     49    addCallReturnValue: [],
     50    listCallReturnValue: [],
     51    removeCallReturnValue: [],
     52  }
     53 
     54  class SubAppsServiceTestChromium {
     55    constructor() {
     56      Object.freeze(this);  // Make it immutable.
     57    }
     58 
     59    initialize(service_result_code, add_call_return_value, list_call_return_value, remove_call_return_value) {
     60      if (!testInternal.initialized) {
     61        testInternal = {
     62          mockSubAppsService: new MockSubAppsService(),
     63          initialized: true,
     64          serviceResultCode: service_result_code,
     65          addCallReturnValue: add_call_return_value,
     66          listCallReturnValue: list_call_return_value,
     67          removeCallReturnValue: remove_call_return_value,
     68        };
     69      };
     70    }
     71 
     72    async reset() {
     73      if (testInternal.initialized) {
     74        testInternal.mockSubAppsService.reset();
     75        testInternal = {
     76          mockSubAppsService: null,
     77          initialized: false,
     78          serviceResultCode: 0,
     79          addCallReturnValue: [],
     80          listCallReturnValue: [],
     81          removeCallReturnValue: [],
     82        };
     83        await new Promise(resolve => setTimeout(resolve, 0));
     84      }
     85    }
     86  }
     87 
     88  return SubAppsServiceTestChromium;
     89 })();