1 // Copyright 2019 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 package org.chromium.chrome.browser.tab; 6 7 import androidx.annotation.Nullable; 8 9 import org.chromium.chrome.browser.tab.state.CriticalPersistedTabData; 10 import org.chromium.content_public.browser.LoadUrlParams; 11 import org.chromium.content_public.browser.WebContents; 12 13 /** 14 * Tab used for various testing purposes. 15 */ 16 public class MockTab extends TabImpl { 17 /** 18 * Create a new Tab for testing and initializes Tab UserData objects. 19 */ createAndInitialize(int id, boolean incognito)20 public static Tab createAndInitialize(int id, boolean incognito) { 21 TabImpl tab = new MockTab(id, incognito); 22 tab.initialize(null, null, null, null, null, false, null, null); 23 return tab; 24 } 25 initializeWithCriticalPersistedTabData( TabImpl tab, CriticalPersistedTabData criticalPersistedTabData)26 public static TabImpl initializeWithCriticalPersistedTabData( 27 TabImpl tab, CriticalPersistedTabData criticalPersistedTabData) { 28 tab.getUserDataHost().setUserData(CriticalPersistedTabData.class, criticalPersistedTabData); 29 tab.initialize(null, null, null, null, null, false, null, null); 30 return tab; 31 } 32 33 /** 34 * Constructor for id and incognito attribute. Tests often need to initialize 35 * these two fields only. 36 */ MockTab(int id, boolean incognito)37 public MockTab(int id, boolean incognito) { 38 super(id, null, incognito, null); 39 } 40 MockTab(int id, boolean incognito, @TabLaunchType Integer type)41 public MockTab(int id, boolean incognito, @TabLaunchType Integer type) { 42 super(id, null, incognito, type); 43 } 44 45 @Override initialize(Tab parent, @Nullable @TabCreationState Integer creationState, LoadUrlParams loadUrlParams, WebContents webContents, @Nullable TabDelegateFactory delegateFactory, boolean initiallyHidden, TabState tabState, byte[] serializedCriticalPersistedTabData)46 public void initialize(Tab parent, @Nullable @TabCreationState Integer creationState, 47 LoadUrlParams loadUrlParams, WebContents webContents, 48 @Nullable TabDelegateFactory delegateFactory, boolean initiallyHidden, 49 TabState tabState, byte[] serializedCriticalPersistedTabData) { 50 TabHelpers.initTabHelpers(this, parent); 51 } 52 } 53