beforeEach(() => { globals = new GlobalOverrider(); sandbox = globals.sandbox; fakeNewTabUtils = { blockedLinks: { links: [], isBlocked: () => false }, activityStreamLinks: {getTopSites: sandbox.spy(() => Promise.resolve(links))}, pinnedLinks: { links: [], isPinned: () => false, pin: sandbox.spy(), unpin: sandbox.spy() } }; fakeScreenshot = {getScreenshotForURL: sandbox.spy(() => Promise.resolve(FAKE_SCREENSHOT))}; shortURLStub = sinon.stub().callsFake(site => site.url); const fakeDedupe = function() {}; globals.set("NewTabUtils", fakeNewTabUtils); FakePrefs.prototype.prefs["default.sites"] = "https://foo.com/"; ({TopSitesFeed, DEFAULT_TOP_SITES} = injector({ "lib/ActivityStreamPrefs.jsm": {Prefs: FakePrefs}, "common/Dedupe.jsm": {Dedupe: fakeDedupe}, "common/Reducers.jsm": {insertPinned, TOP_SITES_SHOWMORE_LENGTH}, "lib/Screenshots.jsm": {Screenshots: fakeScreenshot}, "lib/TippyTopProvider.jsm": {TippyTopProvider: FakeTippyTopProvider}, "common/ShortURL.jsm": {shortURL: shortURLStub} })); feed = new TopSitesFeed(); feed.store = {dispatch: sinon.spy(), getState() { return {TopSites: {rows: Array(12).fill("site")}}; }}; feed.dedupe.group = sites => sites; links = FAKE_LINKS; clock = sinon.useFakeTimers(); });
beforeEach(() => { globals = new GlobalOverrider(); sandbox = globals.sandbox; fakeNewTabUtils = { blockedLinks: { links: [], isBlocked: () => false }, activityStreamLinks: {getTopSites: sandbox.spy(() => Promise.resolve(links))}, activityStreamProvider: { _addFavicons: sandbox.spy(l => Promise.resolve(l.map(link => { link.favicon = FAKE_FAVICON; link.faviconSize = FAKE_FAVICON_SIZE; return link; }))), _faviconBytesToDataURI: sandbox.spy() }, pinnedLinks: { links: [], isPinned: () => false, pin: sandbox.spy(), unpin: sandbox.spy() } }; fakeScreenshot = { getScreenshotForURL: sandbox.spy(() => Promise.resolve(FAKE_SCREENSHOT)), maybeCacheScreenshot: Screenshots.maybeCacheScreenshot }; filterAdultStub = sinon.stub().returns([]); shortURLStub = sinon.stub().callsFake(site => site.url); const fakeDedupe = function() {}; fakePageThumbs = { addExpirationFilter: sinon.stub(), removeExpirationFilter: sinon.stub() }; globals.set("PageThumbs", fakePageThumbs); globals.set("NewTabUtils", fakeNewTabUtils); FakePrefs.prototype.prefs["default.sites"] = "https://foo.com/"; ({TopSitesFeed, DEFAULT_TOP_SITES} = injector({ "lib/ActivityStreamPrefs.jsm": {Prefs: FakePrefs}, "common/Dedupe.jsm": {Dedupe: fakeDedupe}, "common/Reducers.jsm": {insertPinned, TOP_SITES_SHOWMORE_LENGTH}, "lib/FilterAdult.jsm": {filterAdult: filterAdultStub}, "lib/Screenshots.jsm": {Screenshots: fakeScreenshot}, "lib/TippyTopProvider.jsm": {TippyTopProvider: FakeTippyTopProvider}, "lib/ShortURL.jsm": {shortURL: shortURLStub} })); feed = new TopSitesFeed(); feed.store = { dispatch: sinon.spy(), getState() { return this.state; }, state: { Prefs: {values: {filterAdult: false, topSitesCount: 6}}, TopSites: {rows: Array(12).fill("site")} } }; feed.dedupe.group = (...sites) => sites; links = FAKE_LINKS; });
beforeEach(() => { ({TopSitesFeed, DEFAULT_TOP_SITES} = injector({ "lib/ActivityStreamPrefs.jsm": {Prefs: FakePrefs}, "common/Reducers.jsm": {insertPinned, TOP_SITES_SHOWMORE_LENGTH}, "lib/Screenshots.jsm": {Screenshots: fakeScreenshot} })); feed = new TopSitesFeed(); });
beforeEach(() => { ({TopSitesFeed, DEFAULT_TOP_SITES} = injector({ "lib/ActivityStreamPrefs.jsm": {Prefs: FakePrefs}, "common/Reducers.jsm": {insertPinned, TOP_SITES_SHOWMORE_LENGTH}, "lib/Screenshots.jsm": {Screenshots: fakeScreenshot} })); sandbox.stub(global.Services.eTLD, "getPublicSuffix").returns("com"); feed = Object.assign(new TopSitesFeed(), {store: feed.store}); });