#ifndef IOS_WEB_TEST_WEB_INT_TEST_H_
#define IOS_WEB_TEST_WEB_INT_TEST_H_
#import <WebKit/WebKit.h>
#import "base/ios/block_types.h"
#import "ios/web/public/navigation/navigation_manager.h"
#import "ios/web/public/test/fakes/fake_web_state_delegate.h"
#include "ios/web/public/test/web_test.h"
#import "ios/web/public/web_state.h"
namespace display {
class ScopedNativeScreen;
}
class GURL;
namespace web {
class WebIntTest : public WebTest {
public:
WebIntTest(const WebIntTest&) = delete;
WebIntTest& operator=(const WebIntTest&) = delete;
protected:
WebIntTest();
~WebIntTest() override;
void SetUp() override;
void TearDown() override;
WebState* web_state() { return web_state_.get(); }
NavigationManager* navigation_manager() {
return web_state()->GetNavigationManager();
}
NavigationItem* GetLastCommittedItem() {
return navigation_manager()->GetLastCommittedItem();
}
[[nodiscard]] bool ExecuteBlockAndWaitForLoad(const GURL& url,
ProceduralBlock block);
[[nodiscard]] bool LoadUrl(const GURL& url);
[[nodiscard]] bool LoadWithParams(
const NavigationManager::WebLoadParams& params);
void RemoveWKWebViewCreatedData(WKWebsiteDataStore* data_store,
NSSet* websiteDataTypes);
NSInteger GetIndexOfNavigationItem(const web::NavigationItem* item);
web::FakeWebStateDelegate web_state_delegate_;
private:
std::unique_ptr<WebState> web_state_;
std::unique_ptr<display::ScopedNativeScreen> screen_;
};
}
#endif