Index: components/dom_distiller/core/distiller_unittest.cc |
diff --git a/components/dom_distiller/core/distiller_unittest.cc b/components/dom_distiller/core/distiller_unittest.cc |
index d55e4f74b86ecdbc61cf0404c8a85fa7312754fc..52fa93a628f0045e98487df342c2e97190826673 100644 |
--- a/components/dom_distiller/core/distiller_unittest.cc |
+++ b/components/dom_distiller/core/distiller_unittest.cc |
@@ -34,6 +34,7 @@ using ::testing::_; |
using dom_distiller::proto::DomDistillerOptions; |
using dom_distiller::proto::DomDistillerResult; |
+using dom_distiller::proto::TimingEntry; |
namespace { |
const char kTitle[] = "Title"; |
@@ -360,6 +361,45 @@ TEST_F(DistillerTest, DistillPageWithDebugInfo) { |
EXPECT_EQ(kDebugLog, first_page.debug_info().log()); |
} |
+void SetTimingEntry(TimingEntry* entry, const std::string& name, double time) { |
+ entry->set_name(name); |
+ entry->set_time(time); |
+} |
+ |
+TEST_F(DistillerTest, DistillPageWithTimingInfo) { |
+ base::MessageLoopForUI loop; |
+ DomDistillerResult dd_result; |
+ dd_result.mutable_timing_info()->set_total_time(1.0); |
+ dd_result.mutable_timing_info()->set_markup_parsing_time(2.0); |
+ dd_result.mutable_timing_info()->set_document_construction_time(3.0); |
+ dd_result.mutable_timing_info()->set_article_processing_time(4.0); |
+ dd_result.mutable_timing_info()->set_formatting_time(5.0); |
+ SetTimingEntry( |
+ dd_result.mutable_timing_info()->add_other_times(), "time0", 6.0); |
+ SetTimingEntry( |
+ dd_result.mutable_timing_info()->add_other_times(), "time1", 7.0); |
+ scoped_ptr<base::Value> result = |
+ dom_distiller::proto::json::DomDistillerResult::WriteToValue(dd_result); |
+ distiller_.reset( |
+ new DistillerImpl(url_fetcher_factory_, DomDistillerOptions())); |
+ DistillPage(kURL, CreateMockDistillerPage(result.get(), GURL(kURL)).Pass()); |
+ base::MessageLoop::current()->RunUntilIdle(); |
+ const DistilledPageProto& first_page = article_proto_->pages(0); |
+ std::map<std::string, double> timings; |
+ for (int i = 0; i < first_page.timing_info_size(); ++i) { |
+ DistilledPageProto::TimingInfo timing = first_page.timing_info(i); |
+ timings[timing.name()] = timing.time(); |
+ } |
+ EXPECT_EQ(7u, timings.size()); |
+ EXPECT_EQ(1.0, timings["total"]); |
+ EXPECT_EQ(2.0, timings["markup_parsing"]); |
+ EXPECT_EQ(3.0, timings["document_construction"]); |
+ EXPECT_EQ(4.0, timings["article_processing"]); |
+ EXPECT_EQ(5.0, timings["formatting"]); |
+ EXPECT_EQ(6.0, timings["time0"]); |
+ EXPECT_EQ(7.0, timings["time1"]); |
+} |
+ |
TEST_F(DistillerTest, DistillPageWithImages) { |
base::MessageLoopForUI loop; |
vector<int> image_indices; |