blob: 185e312947f9b993381eb5cc4b139ea86ad89ab7 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_SESSIONS_TAB_LOADER_TESTER_H_
#define CHROME_BROWSER_SESSIONS_TAB_LOADER_TESTER_H_
#include "chrome/browser/sessions/tab_loader.h"
// Wraps a TabLoader and exposes helper functions for testing. See tab_loader.h
// for full documentation.
class TabLoaderTester {
public:
using TabVector = TabLoader::TabVector;
TabLoaderTester();
explicit TabLoaderTester(TabLoader* tab_loader);
~TabLoaderTester();
void SetTabLoader(TabLoader*);
TabLoader* tab_loader() { return tab_loader_; }
// Test only functions exposed from TabLoader.
static void SetMaxLoadedTabCountForTesting(size_t value);
static void SetConstructionCallbackForTesting(
base::RepeatingCallback<void(TabLoader*)>* callback);
void SetMaxSimultaneousLoadsForTesting(size_t loading_slots);
void SetTickClockForTesting(base::TickClock* tick_clock);
void MaybeLoadSomeTabsForTesting();
// Additional exposed TabLoader functions.
void ForceLoadTimerFired();
void OnMemoryPressure(
base::MemoryPressureListener::MemoryPressureLevel memory_pressure_level);
void OnMemoryStateChange(base::MemoryState state);
void SetTabLoadingEnabled(bool enabled);
// Accessors to TabLoader internals.
size_t force_load_delay_multiplier() const;
base::TimeTicks force_load_time() const;
base::OneShotTimer& force_load_timer();
bool is_loading_enabled() const;
const TabVector& tabs_to_load() const;
size_t scheduled_to_load_count() const;
static TabLoader* shared_tab_loader();
// Additional helper functions.
bool IsSharedTabLoader() const;
private:
TabLoader* tab_loader_ = nullptr;
DISALLOW_COPY_AND_ASSIGN(TabLoaderTester);
};
#endif // CHROME_BROWSER_SESSIONS_TAB_LOADER_TESTER_H_