OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <algorithm> | 5 #include <algorithm> |
6 #include <map> | 6 #include <map> |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 16 matching lines...) Expand all Loading... |
27 #include "third_party/dom_distiller_js/dom_distiller_json_converter.h" | 27 #include "third_party/dom_distiller_js/dom_distiller_json_converter.h" |
28 | 28 |
29 using std::vector; | 29 using std::vector; |
30 using std::string; | 30 using std::string; |
31 using ::testing::Invoke; | 31 using ::testing::Invoke; |
32 using ::testing::Return; | 32 using ::testing::Return; |
33 using ::testing::_; | 33 using ::testing::_; |
34 | 34 |
35 using dom_distiller::proto::DomDistillerOptions; | 35 using dom_distiller::proto::DomDistillerOptions; |
36 using dom_distiller::proto::DomDistillerResult; | 36 using dom_distiller::proto::DomDistillerResult; |
| 37 using dom_distiller::proto::TimingEntry; |
37 | 38 |
38 namespace { | 39 namespace { |
39 const char kTitle[] = "Title"; | 40 const char kTitle[] = "Title"; |
40 const char kContent[] = "Content"; | 41 const char kContent[] = "Content"; |
41 const char kURL[] = "http://a.com/"; | 42 const char kURL[] = "http://a.com/"; |
42 const size_t kTotalImages = 2; | 43 const size_t kTotalImages = 2; |
43 const char* kImageURLs[kTotalImages] = {"http://a.com/img1.jpg", | 44 const char* kImageURLs[kTotalImages] = {"http://a.com/img1.jpg", |
44 "http://a.com/img2.jpg"}; | 45 "http://a.com/img2.jpg"}; |
45 const char* kImageData[kTotalImages] = {"abcde", "12345"}; | 46 const char* kImageData[kTotalImages] = {"abcde", "12345"}; |
46 const char kDebugLog[] = "Debug Log"; | 47 const char kDebugLog[] = "Debug Log"; |
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
353 scoped_ptr<base::Value> result = | 354 scoped_ptr<base::Value> result = |
354 dom_distiller::proto::json::DomDistillerResult::WriteToValue(dd_result); | 355 dom_distiller::proto::json::DomDistillerResult::WriteToValue(dd_result); |
355 distiller_.reset( | 356 distiller_.reset( |
356 new DistillerImpl(url_fetcher_factory_, DomDistillerOptions())); | 357 new DistillerImpl(url_fetcher_factory_, DomDistillerOptions())); |
357 DistillPage(kURL, CreateMockDistillerPage(result.get(), GURL(kURL)).Pass()); | 358 DistillPage(kURL, CreateMockDistillerPage(result.get(), GURL(kURL)).Pass()); |
358 base::MessageLoop::current()->RunUntilIdle(); | 359 base::MessageLoop::current()->RunUntilIdle(); |
359 const DistilledPageProto& first_page = article_proto_->pages(0); | 360 const DistilledPageProto& first_page = article_proto_->pages(0); |
360 EXPECT_EQ(kDebugLog, first_page.debug_info().log()); | 361 EXPECT_EQ(kDebugLog, first_page.debug_info().log()); |
361 } | 362 } |
362 | 363 |
| 364 void SetTimingEntry(TimingEntry* entry, const std::string& name, double time) { |
| 365 entry->set_name(name); |
| 366 entry->set_time(time); |
| 367 } |
| 368 |
| 369 TEST_F(DistillerTest, DistillPageWithTimingInfo) { |
| 370 base::MessageLoopForUI loop; |
| 371 DomDistillerResult dd_result; |
| 372 dd_result.mutable_timing_info()->set_total_time(1.0); |
| 373 dd_result.mutable_timing_info()->set_markup_parsing_time(2.0); |
| 374 dd_result.mutable_timing_info()->set_document_construction_time(3.0); |
| 375 dd_result.mutable_timing_info()->set_article_processing_time(4.0); |
| 376 dd_result.mutable_timing_info()->set_formatting_time(5.0); |
| 377 SetTimingEntry( |
| 378 dd_result.mutable_timing_info()->add_other_times(), "time0", 6.0); |
| 379 SetTimingEntry( |
| 380 dd_result.mutable_timing_info()->add_other_times(), "time1", 7.0); |
| 381 scoped_ptr<base::Value> result = |
| 382 dom_distiller::proto::json::DomDistillerResult::WriteToValue(dd_result); |
| 383 distiller_.reset( |
| 384 new DistillerImpl(url_fetcher_factory_, DomDistillerOptions())); |
| 385 DistillPage(kURL, CreateMockDistillerPage(result.get(), GURL(kURL)).Pass()); |
| 386 base::MessageLoop::current()->RunUntilIdle(); |
| 387 const DistilledPageProto& first_page = article_proto_->pages(0); |
| 388 std::map<std::string, double> timings; |
| 389 for (int i = 0; i < first_page.timing_info_size(); ++i) { |
| 390 DistilledPageProto::TimingInfo timing = first_page.timing_info(i); |
| 391 timings[timing.name()] = timing.time(); |
| 392 } |
| 393 EXPECT_EQ(7u, timings.size()); |
| 394 EXPECT_EQ(1.0, timings["total"]); |
| 395 EXPECT_EQ(2.0, timings["markup_parsing"]); |
| 396 EXPECT_EQ(3.0, timings["document_construction"]); |
| 397 EXPECT_EQ(4.0, timings["article_processing"]); |
| 398 EXPECT_EQ(5.0, timings["formatting"]); |
| 399 EXPECT_EQ(6.0, timings["time0"]); |
| 400 EXPECT_EQ(7.0, timings["time1"]); |
| 401 } |
| 402 |
363 TEST_F(DistillerTest, DistillPageWithImages) { | 403 TEST_F(DistillerTest, DistillPageWithImages) { |
364 base::MessageLoopForUI loop; | 404 base::MessageLoopForUI loop; |
365 vector<int> image_indices; | 405 vector<int> image_indices; |
366 image_indices.push_back(0); | 406 image_indices.push_back(0); |
367 image_indices.push_back(1); | 407 image_indices.push_back(1); |
368 scoped_ptr<base::Value> result = | 408 scoped_ptr<base::Value> result = |
369 CreateDistilledValueReturnedFromJS(kTitle, kContent, image_indices, ""); | 409 CreateDistilledValueReturnedFromJS(kTitle, kContent, image_indices, ""); |
370 distiller_.reset( | 410 distiller_.reset( |
371 new DistillerImpl(url_fetcher_factory_, DomDistillerOptions())); | 411 new DistillerImpl(url_fetcher_factory_, DomDistillerOptions())); |
372 DistillPage(kURL, CreateMockDistillerPage(result.get(), GURL(kURL)).Pass()); | 412 DistillPage(kURL, CreateMockDistillerPage(result.get(), GURL(kURL)).Pass()); |
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
645 | 685 |
646 ASSERT_TRUE(distiller_page); | 686 ASSERT_TRUE(distiller_page); |
647 // Post the task to execute javascript and then delete the distiller. | 687 // Post the task to execute javascript and then delete the distiller. |
648 distiller_page->OnDistillationDone(GURL(kURL), distilled_value.get()); | 688 distiller_page->OnDistillationDone(GURL(kURL), distilled_value.get()); |
649 distiller_.reset(); | 689 distiller_.reset(); |
650 | 690 |
651 base::MessageLoop::current()->RunUntilIdle(); | 691 base::MessageLoop::current()->RunUntilIdle(); |
652 } | 692 } |
653 | 693 |
654 } // namespace dom_distiller | 694 } // namespace dom_distiller |
OLD | NEW |