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

Unified Diff: components/html_viewer/ax_provider_impl_unittest.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/html_viewer/ax_provider_impl.cc ('k') | components/html_viewer/blink_basic_type_converters.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/html_viewer/ax_provider_impl_unittest.cc
diff --git a/components/html_viewer/ax_provider_impl_unittest.cc b/components/html_viewer/ax_provider_impl_unittest.cc
deleted file mode 100644
index 2d60f1eced8922d5835cff41a6435663e471a182..0000000000000000000000000000000000000000
--- a/components/html_viewer/ax_provider_impl_unittest.cc
+++ /dev/null
@@ -1,198 +0,0 @@
-// Copyright 2014 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/html_viewer/ax_provider_impl.h"
-
-#include <stddef.h>
-#include <stdint.h>
-#include <utility>
-
-#include "base/bind.h"
-#include "base/message_loop/message_loop.h"
-#include "components/html_viewer/blink_platform_impl.h"
-#include "components/scheduler/renderer/renderer_scheduler.h"
-#include "gin/v8_initializer.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/WebKit/public/platform/WebData.h"
-#include "third_party/WebKit/public/platform/WebURL.h"
-#include "third_party/WebKit/public/web/WebFrameClient.h"
-#include "third_party/WebKit/public/web/WebKit.h"
-#include "third_party/WebKit/public/web/WebLocalFrame.h"
-#include "third_party/WebKit/public/web/WebView.h"
-#include "third_party/WebKit/public/web/WebViewClient.h"
-#include "url/gurl.h"
-
-using blink::WebData;
-using blink::WebLocalFrame;
-using blink::WebFrameClient;
-using blink::WebURL;
-using blink::WebView;
-using blink::WebViewClient;
-
-using mojo::Array;
-using mojo::AxNode;
-using mojo::AxNodePtr;
-
-namespace {
-
-class TestWebFrameClient : public WebFrameClient {
- public:
- ~TestWebFrameClient() override {}
- void didStopLoading() override {
- base::MessageLoop::current()->QuitWhenIdle();
- }
-};
-
-class TestWebViewClient : public WebViewClient {
- public:
- bool allowsBrokenNullLayerTreeView() const override { return true; }
- virtual ~TestWebViewClient() {}
-};
-
-class AxProviderImplTest : public testing::Test {
- public:
- AxProviderImplTest()
- : message_loop_(new base::MessageLoopForUI()),
- renderer_scheduler_(scheduler::RendererScheduler::Create()) {
-#if defined(V8_USE_EXTERNAL_STARTUP_DATA)
- gin::V8Initializer::LoadV8Snapshot();
- gin::V8Initializer::LoadV8Natives();
-#endif
- blink::initialize(
- new html_viewer::BlinkPlatformImpl(nullptr, nullptr,
- renderer_scheduler_.get()));
- }
-
- ~AxProviderImplTest() override {
- renderer_scheduler_->Shutdown();
- message_loop_.reset();
- blink::shutdown();
- }
-
- private:
- scoped_ptr<base::MessageLoopForUI> message_loop_;
- scoped_ptr<scheduler::RendererScheduler> renderer_scheduler_;
-};
-
-struct NodeCatcher {
- void OnNodes(Array<AxNodePtr> nodes) { this->nodes = std::move(nodes); }
- Array<AxNodePtr> nodes;
-};
-
-AxNodePtr CreateNode(int id,
- int parent_id,
- int next_sibling_id,
- const mojo::RectPtr& bounds,
- const std::string& url,
- const std::string& text) {
- AxNodePtr node(AxNode::New());
- node->id = id;
- node->parent_id = parent_id;
- node->next_sibling_id = next_sibling_id;
- node->bounds = bounds.Clone();
-
- if (!url.empty()) {
- node->link = mojo::AxLink::New();
- node->link->url = url;
- }
- if (!text.empty()) {
- node->text = mojo::AxText::New();
- node->text->content = text;
- }
- return node;
-}
-
-} // namespace
-
-TEST_F(AxProviderImplTest, Basic) {
- TestWebViewClient web_view_client;
- TestWebFrameClient web_frame_client;
- WebView* view = WebView::create(&web_view_client);
- view->setMainFrame(WebLocalFrame::create(blink::WebTreeScopeType::Document,
- &web_frame_client));
- view->mainFrame()->loadHTMLString(
- WebData(
- "<html><body>foo<a "
- "href='http://monkey.net'>bar</a>baz</body></html>"),
- WebURL(GURL("http://someplace.net")));
- base::MessageLoop::current()->Run();
-
- mojo::AxProviderPtr service_ptr;
- html_viewer::AxProviderImpl ax_provider_impl(view,
- mojo::GetProxy(&service_ptr));
- NodeCatcher catcher;
- ax_provider_impl.GetTree(
- base::Bind(&NodeCatcher::OnNodes, base::Unretained(&catcher)));
-
- std::map<uint32_t, AxNode*> lookup;
- for (size_t i = 0; i < catcher.nodes.size(); ++i) {
- auto& node = catcher.nodes[i];
- lookup[node->id] = node.get();
- }
-
- typedef decltype(lookup)::value_type MapEntry;
- auto is_link = [](MapEntry pair) { return !pair.second->link.is_null(); };
- auto is_text = [](MapEntry pair, const char* content) {
- return !pair.second->text.is_null() &&
- pair.second->text->content.To<std::string>() == content;
- };
- auto is_foo = [&is_text](MapEntry pair) { return is_text(pair, "foo"); };
- auto is_bar = [&is_text](MapEntry pair) { return is_text(pair, "bar"); };
- auto is_baz = [&is_text](MapEntry pair) { return is_text(pair, "baz"); };
-
- EXPECT_EQ(1, std::count_if(lookup.begin(), lookup.end(), is_link));
- EXPECT_EQ(1, std::count_if(lookup.begin(), lookup.end(), is_foo));
- EXPECT_EQ(1, std::count_if(lookup.begin(), lookup.end(), is_bar));
- EXPECT_EQ(1, std::count_if(lookup.begin(), lookup.end(), is_baz));
-
- auto root = lookup[1u];
- auto link = std::find_if(lookup.begin(), lookup.end(), is_link)->second;
- auto foo = std::find_if(lookup.begin(), lookup.end(), is_foo)->second;
- auto bar = std::find_if(lookup.begin(), lookup.end(), is_bar)->second;
- auto baz = std::find_if(lookup.begin(), lookup.end(), is_baz)->second;
-
- // Test basic content of each node. The properties we copy (like parent_id)
- // here are tested differently below.
- EXPECT_TRUE(CreateNode(root->id, 0, 0, root->bounds, "", "")->Equals(*root));
- EXPECT_TRUE(CreateNode(foo->id, foo->parent_id, 0, foo->bounds, "", "foo")
- ->Equals(*foo));
- EXPECT_TRUE(CreateNode(bar->id, bar->parent_id, 0, bar->bounds, "", "bar")
- ->Equals(*bar));
- EXPECT_TRUE(CreateNode(baz->id, baz->parent_id, 0, baz->bounds, "", "baz")
- ->Equals(*baz));
- EXPECT_TRUE(CreateNode(link->id,
- link->parent_id,
- link->next_sibling_id,
- link->bounds,
- "http://monkey.net/",
- "")->Equals(*link));
-
- auto is_descendant_of = [&lookup](uint32_t id, uint32_t ancestor) {
- for (; (id = lookup[id]->parent_id) != 0;) {
- if (id == ancestor)
- return true;
- }
- return false;
- };
-
- EXPECT_TRUE(is_descendant_of(bar->id, link->id));
- for (auto pair : lookup) {
- AxNode* node = pair.second;
- if (node != root)
- EXPECT_TRUE(is_descendant_of(node->id, 1u));
- if (node != link && node != foo && node != bar && node != baz) {
- EXPECT_TRUE(CreateNode(node->id,
- node->parent_id,
- node->next_sibling_id,
- node->bounds,
- "",
- ""));
- }
- }
-
- // TODO(aa): Test bounds.
- // TODO(aa): Test sibling ordering of foo/bar/baz.
-
- view->close();
-}
« no previous file with comments | « components/html_viewer/ax_provider_impl.cc ('k') | components/html_viewer/blink_basic_type_converters.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698