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