Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(712)

Unified Diff: components/web_view/web_view_apptest.cc

Issue 1677293002: Bye bye Mandoline (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: moar Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/web_view/web_view_application_delegate.cc ('k') | components/web_view/web_view_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/web_view/web_view_apptest.cc
diff --git a/components/web_view/web_view_apptest.cc b/components/web_view/web_view_apptest.cc
deleted file mode 100644
index 391ca0103190f3f359a56cbe2e2227e49dffa633..0000000000000000000000000000000000000000
--- a/components/web_view/web_view_apptest.cc
+++ /dev/null
@@ -1,318 +0,0 @@
-// 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.
-
-#include "components/web_view/public/cpp/web_view.h"
-
-#include <stdint.h>
-#include <utility>
-
-#include "base/base_paths.h"
-#include "base/files/file_path.h"
-#include "base/files/file_util.h"
-#include "base/logging.h"
-#include "base/macros.h"
-#include "base/path_service.h"
-#include "base/run_loop.h"
-#include "components/mus/public/cpp/scoped_window_ptr.h"
-#include "components/mus/public/cpp/tests/window_server_test_base.h"
-#include "components/mus/public/cpp/window.h"
-#include "components/mus/public/cpp/window_tree_connection.h"
-#include "mojo/util/filename_util.h"
-#include "url/gurl.h"
-
-namespace web_view {
-
-namespace {
-const char kTestOneFile[] = "test_one.html";
-const char kTestOneTitle[] = "Test Title One";
-const char kTestTwoFile[] = "test_two.html";
-const char kTestTwoTitle[] = "Test Title Two";
-const char kTestThreeFile[] = "test_three.html";
-const char kTestThreeTitle[] = "Test Title Three";
-const char kTheWordGreenFiveTimes[] = "the_word_green_five_times.html";
-const char kTwoIframesWithGreen[] = "two_iframes_with_green.html";
-
-GURL GetTestFileURL(const std::string& file) {
- base::FilePath data_file;
- CHECK(PathService::Get(base::DIR_SOURCE_ROOT, &data_file));
- data_file = data_file.AppendASCII("components/test/data/web_view")
- .AppendASCII(file)
- .NormalizePathSeparators();
- CHECK(base::PathExists(data_file));
- return mojo::util::FilePathToFileURL(data_file);
-}
-}
-
-class WebViewTest : public mus::WindowServerTestBase,
- public mojom::WebViewClient {
- public:
- WebViewTest()
- : web_view_(this),
- quit_condition_(NO_QUIT),
- active_find_match_(0),
- find_count_(0) {}
- ~WebViewTest() override {}
-
- mojom::WebView* web_view() { return web_view_.web_view(); }
-
- const std::string& navigation_url() const { return navigation_url_; }
- const std::string& last_title() const { return last_title_; }
- mojom::ButtonState last_back_button_state() {
- return last_back_button_state_;
- }
- mojom::ButtonState last_forward_button_state() {
- return last_forward_button_state_;
- }
-
- int32_t active_find_match() const { return active_find_match_; }
- int32_t find_count() const { return find_count_; }
-
- enum NestedLoopQuitCondition {
- NO_QUIT,
- LOADING_DONE,
- FINAL_FIND_UPATE,
- ACTIVE_FIND_UPDATE,
- };
-
- void StartNestedRunLoopUntil(NestedLoopQuitCondition quit_condition) {
- quit_condition_ = quit_condition;
- run_loop_.reset(new base::RunLoop);
- run_loop_->Run();
- }
-
- void NavigateTo(const std::string& file) {
- mojo::URLRequestPtr request(mojo::URLRequest::New());
- request->url = GetTestFileURL(file).spec();
- web_view()->LoadRequest(std::move(request));
- StartNestedRunLoopUntil(LOADING_DONE);
- }
-
- private:
- void QuitNestedRunLoop() {
- if (run_loop_) {
- quit_condition_ = NO_QUIT;
- run_loop_->Quit();
- }
- }
-
- // Overridden from mojo::ShellClient:
- void Initialize(mojo::Shell* shell, const std::string& url,
- uint32_t id) override {
- WindowServerTestBase::Initialize(shell, url, id);
- shell_ = shell;
- }
-
- // Overridden from WindowTreeDelegate:
- void OnEmbed(mus::Window* root) override {
- content_ = root->connection()->NewWindow();
- content_->SetBounds(root->bounds());
- root->AddChild(content_);
- content_->SetVisible(true);
-
- web_view_.Init(shell_, content_);
-
- WindowServerTestBase::OnEmbed(root);
- }
-
- void TearDown() override {
- ASSERT_EQ(1u, window_manager()->GetRoots().size());
- mus::ScopedWindowPtr::DeleteWindowOrWindowManager(
- *window_manager()->GetRoots().begin());
- WindowServerTestBase::TearDown();
- }
-
- // Overridden from web_view::mojom::WebViewClient:
- void TopLevelNavigateRequest(mojo::URLRequestPtr request) override {}
- void TopLevelNavigationStarted(const mojo::String& url) override {
- navigation_url_ = url.get();
- }
- void LoadingStateChanged(bool is_loading, double progress) override {
- if (is_loading == false && quit_condition_ == LOADING_DONE)
- QuitNestedRunLoop();
- }
- void BackForwardChanged(mojom::ButtonState back_button,
- mojom::ButtonState forward_button) override {
- last_back_button_state_ = back_button;
- last_forward_button_state_ = forward_button;
- }
- void TitleChanged(const mojo::String& title) override {
- last_title_ = title.get();
- }
- void FindInPageMatchCountUpdated(int32_t request_id,
- int32_t count,
- bool final_update) override {
- find_count_ = count;
- if (final_update && quit_condition_ == FINAL_FIND_UPATE)
- QuitNestedRunLoop();
- }
- void FindInPageSelectionUpdated(int32_t request_id,
- int32_t active_match_ordinal) override {
- active_find_match_ = active_match_ordinal;
- if (quit_condition_ == ACTIVE_FIND_UPDATE)
- QuitNestedRunLoop();
- }
-
- mojo::Shell* shell_;
-
- mus::Window* content_;
-
- web_view::WebView web_view_;
-
- scoped_ptr<base::RunLoop> run_loop_;
-
- std::string navigation_url_;
- std::string last_title_;
- mojom::ButtonState last_back_button_state_;
- mojom::ButtonState last_forward_button_state_;
-
- NestedLoopQuitCondition quit_condition_;
-
- int32_t active_find_match_;
- int32_t find_count_;
-
- DISALLOW_COPY_AND_ASSIGN(WebViewTest);
-};
-
-TEST_F(WebViewTest, TestTitleChanged) {
- ASSERT_NO_FATAL_FAILURE(NavigateTo(kTestOneFile));
-
- // Our title should have been set on the navigation.
- EXPECT_EQ(kTestOneTitle, last_title());
-}
-
-TEST_F(WebViewTest, CanGoBackAndForward) {
- ASSERT_NO_FATAL_FAILURE(NavigateTo(kTestOneFile));
-
- // We can't go back on first navigation since there's nothing previously on
- // the stack.
- EXPECT_EQ(GetTestFileURL(kTestOneFile).spec(), navigation_url());
- EXPECT_EQ(kTestOneTitle, last_title());
- EXPECT_EQ(mojom::ButtonState::DISABLED, last_back_button_state());
- EXPECT_EQ(mojom::ButtonState::DISABLED, last_forward_button_state());
-
- ASSERT_NO_FATAL_FAILURE(NavigateTo(kTestTwoFile));
-
- EXPECT_EQ(kTestTwoTitle, last_title());
- EXPECT_EQ(mojom::ButtonState::ENABLED, last_back_button_state());
- EXPECT_EQ(mojom::ButtonState::DISABLED, last_forward_button_state());
-
- web_view()->GoBack();
- StartNestedRunLoopUntil(LOADING_DONE);
-
- EXPECT_EQ(GetTestFileURL(kTestOneFile).spec(), navigation_url());
- EXPECT_EQ(kTestOneTitle, last_title());
- EXPECT_EQ(mojom::ButtonState::DISABLED, last_back_button_state());
- EXPECT_EQ(mojom::ButtonState::ENABLED, last_forward_button_state());
-
- web_view()->GoForward();
- StartNestedRunLoopUntil(LOADING_DONE);
- EXPECT_EQ(GetTestFileURL(kTestTwoFile).spec(), navigation_url());
- EXPECT_EQ(kTestTwoTitle, last_title());
- EXPECT_EQ(mojom::ButtonState::ENABLED, last_back_button_state());
- EXPECT_EQ(mojom::ButtonState::DISABLED, last_forward_button_state());
-}
-
-TEST_F(WebViewTest, NavigationClearsForward) {
- // First navigate somewhere, navigate somewhere else, and go back so we have
- // one item in the forward stack.
- ASSERT_NO_FATAL_FAILURE(NavigateTo(kTestOneFile));
- ASSERT_NO_FATAL_FAILURE(NavigateTo(kTestTwoFile));
-
- web_view()->GoBack();
- StartNestedRunLoopUntil(LOADING_DONE);
-
- EXPECT_EQ(GetTestFileURL(kTestOneFile).spec(), navigation_url());
- EXPECT_EQ(kTestOneTitle, last_title());
- EXPECT_EQ(mojom::ButtonState::DISABLED, last_back_button_state());
- EXPECT_EQ(mojom::ButtonState::ENABLED, last_forward_button_state());
-
- // Now navigate to a third file. This should clear the forward stack.
- ASSERT_NO_FATAL_FAILURE(NavigateTo(kTestThreeFile));
-
- EXPECT_EQ(GetTestFileURL(kTestThreeFile).spec(), navigation_url());
- EXPECT_EQ(kTestThreeTitle, last_title());
- EXPECT_EQ(mojom::ButtonState::ENABLED, last_back_button_state());
- EXPECT_EQ(mojom::ButtonState::DISABLED, last_forward_button_state());
-}
-
-TEST_F(WebViewTest, Find) {
- ASSERT_NO_FATAL_FAILURE(NavigateTo(kTheWordGreenFiveTimes));
-
- web_view()->Find("Green", true);
- StartNestedRunLoopUntil(FINAL_FIND_UPATE);
- EXPECT_EQ(1, active_find_match());
- EXPECT_EQ(5, find_count());
-}
-
-TEST_F(WebViewTest, FindAcrossIframes) {
- ASSERT_NO_FATAL_FAILURE(NavigateTo(kTwoIframesWithGreen));
-
- web_view()->Find("Green", true);
- StartNestedRunLoopUntil(FINAL_FIND_UPATE);
- EXPECT_EQ(13, find_count());
-}
-
-TEST_F(WebViewTest, FindWrapAroundOneFrame) {
- ASSERT_NO_FATAL_FAILURE(NavigateTo(kTheWordGreenFiveTimes));
-
- web_view()->Find("Green", true);
- StartNestedRunLoopUntil(FINAL_FIND_UPATE);
- EXPECT_EQ(1, active_find_match());
-
- // Searching times 2 through 5 should increment the active find.
- for (int i = 2; i < 6; ++i) {
- web_view()->Find("Green", true);
- StartNestedRunLoopUntil(ACTIVE_FIND_UPDATE);
- EXPECT_EQ(i, active_find_match());
- }
-
- // We should wrap around.
- web_view()->Find("Green", true);
- StartNestedRunLoopUntil(ACTIVE_FIND_UPDATE);
- EXPECT_EQ(1, active_find_match());
-}
-
-TEST_F(WebViewTest, FindForwardsAndBackwards) {
- ASSERT_NO_FATAL_FAILURE(NavigateTo(kTheWordGreenFiveTimes));
-
- web_view()->Find("Green", true);
- StartNestedRunLoopUntil(FINAL_FIND_UPATE);
- EXPECT_EQ(1, active_find_match());
-
- // Navigate two forwards.
- for (int i = 2; i < 4; ++i) {
- web_view()->Find("Green", true);
- StartNestedRunLoopUntil(ACTIVE_FIND_UPDATE);
- EXPECT_EQ(i, active_find_match());
- }
-
- // Navigate two backwards.
- for (int i = 2; i > 0; --i) {
- web_view()->Find("Green", false);
- StartNestedRunLoopUntil(ACTIVE_FIND_UPDATE);
- EXPECT_EQ(i, active_find_match());
- }
-}
-
-TEST_F(WebViewTest, FindWrapAroundMultipleFrames) {
- ASSERT_NO_FATAL_FAILURE(NavigateTo(kTwoIframesWithGreen));
-
- web_view()->Find("Green", true);
- StartNestedRunLoopUntil(FINAL_FIND_UPATE);
- EXPECT_EQ(1, active_find_match());
-
- // Searching times 2 through 13 should increment the active find.
- for (int i = 2; i < 14; ++i) {
- web_view()->Find("Green", true);
- StartNestedRunLoopUntil(ACTIVE_FIND_UPDATE);
- EXPECT_EQ(i, active_find_match());
- }
-
- // We should wrap around.
- web_view()->Find("Green", true);
- StartNestedRunLoopUntil(ACTIVE_FIND_UPDATE);
- EXPECT_EQ(1, active_find_match());
-}
-
-} // namespace web_view
« no previous file with comments | « components/web_view/web_view_application_delegate.cc ('k') | components/web_view/web_view_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698