 Chromium Code Reviews
 Chromium Code Reviews Issue 2823523003:
  [Page Load Metrics] PageLoadMetrics Mojofication.  (Closed)
    
  
    Issue 2823523003:
  [Page Load Metrics] PageLoadMetrics Mojofication.  (Closed) 
  | Index: chrome/common/page_load_metrics/page_load_metrics_struct_traits_unittest.cc | 
| diff --git a/chrome/common/page_load_metrics/page_load_metrics_struct_traits_unittest.cc b/chrome/common/page_load_metrics/page_load_metrics_struct_traits_unittest.cc | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..4094ccdc888c79609cfe2a0159bd8adce21f770b | 
| --- /dev/null | 
| +++ b/chrome/common/page_load_metrics/page_load_metrics_struct_traits_unittest.cc | 
| @@ -0,0 +1,195 @@ | 
| +// Copyright 2017 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 "chrome/common/page_load_metrics/page_load_metrics_struct_traits.h" | 
| + | 
| +#include "base/time/time.h" | 
| +#include "chrome/common/page_load_metrics/page_load_metrics.mojom.h" | 
| +#include "chrome/common/page_load_metrics/page_load_timing.h" | 
| +#include "ipc/ipc_message_utils.h" | 
| +#include "mojo/common/common_custom_types_struct_traits.h" | 
| +#include "testing/gtest/include/gtest/gtest.h" | 
| + | 
| +namespace page_load_metrics { | 
| + | 
| +TEST(DocumentTimingStructTraitsTest, Basic) { | 
| 
Bryan McQuade
2017/05/07 19:44:41
Let's make all of these part of PageLoadMetricsStr
 
lpy
2017/05/08 18:38:33
Done. I don't think these names are more descripti
 | 
| + DocumentTiming document_timing; | 
| + document_timing.dom_content_loaded_event_start = | 
| + base::TimeDelta::FromMicroseconds(1); | 
| + document_timing.load_event_start = base::TimeDelta::FromMicroseconds(2); | 
| + document_timing.first_layout = base::TimeDelta::FromMicroseconds(3); | 
| + | 
| + DocumentTiming document_timing2; | 
| + ASSERT_TRUE(mojom::DocumentTiming::Deserialize( | 
| + mojom::DocumentTiming::Serialize(&document_timing), &document_timing2)); | 
| + | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(1), | 
| + document_timing2.dom_content_loaded_event_start); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(2), | 
| + document_timing2.load_event_start); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(3), | 
| + document_timing2.first_layout); | 
| +} | 
| + | 
| +TEST(PaintTimingStructTraitsTest, Basic) { | 
| + PaintTiming paint_timing; | 
| + paint_timing.first_paint = base::TimeDelta::FromMicroseconds(1); | 
| + paint_timing.first_text_paint = base::TimeDelta::FromMicroseconds(2); | 
| + paint_timing.first_image_paint = base::TimeDelta::FromMicroseconds(3); | 
| + paint_timing.first_contentful_paint = base::TimeDelta::FromMicroseconds(4); | 
| + paint_timing.first_meaningful_paint = base::TimeDelta::FromMicroseconds(5); | 
| + | 
| + PaintTiming paint_timing2; | 
| + ASSERT_TRUE(mojom::PaintTiming::Deserialize( | 
| + mojom::PaintTiming::Serialize(&paint_timing), &paint_timing2)); | 
| + | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(1), paint_timing2.first_paint); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(2), | 
| + paint_timing2.first_text_paint); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(3), | 
| + paint_timing2.first_image_paint); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(4), | 
| + paint_timing2.first_contentful_paint); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(5), | 
| + paint_timing2.first_meaningful_paint); | 
| +} | 
| + | 
| +TEST(ParseTimingStructTraitsTest, Basic) { | 
| + ParseTiming parse_timing; | 
| + parse_timing.parse_start = base::TimeDelta::FromMicroseconds(1); | 
| + parse_timing.parse_stop = base::TimeDelta::FromMicroseconds(2); | 
| + parse_timing.parse_blocked_on_script_load_duration = | 
| + base::TimeDelta::FromMicroseconds(3); | 
| + parse_timing.parse_blocked_on_script_load_from_document_write_duration = | 
| + base::TimeDelta::FromMicroseconds(4); | 
| + parse_timing.parse_blocked_on_script_execution_duration = | 
| + base::TimeDelta::FromMicroseconds(5); | 
| + parse_timing.parse_blocked_on_script_execution_from_document_write_duration = | 
| + base::TimeDelta::FromMicroseconds(6); | 
| + | 
| + ParseTiming parse_timing2; | 
| + ASSERT_TRUE(mojom::ParseTiming::Deserialize( | 
| + mojom::ParseTiming::Serialize(&parse_timing), &parse_timing2)); | 
| + | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(1), parse_timing2.parse_start); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(2), parse_timing2.parse_stop); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(3), | 
| + parse_timing2.parse_blocked_on_script_load_duration); | 
| + EXPECT_EQ( | 
| + base::TimeDelta::FromMicroseconds(4), | 
| + parse_timing2.parse_blocked_on_script_load_from_document_write_duration); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(5), | 
| + parse_timing2.parse_blocked_on_script_execution_duration); | 
| + EXPECT_EQ( | 
| + base::TimeDelta::FromMicroseconds(6), | 
| + parse_timing2 | 
| + .parse_blocked_on_script_execution_from_document_write_duration); | 
| +} | 
| + | 
| +TEST(StyleSheetTimingStructTraitsTest, Basic) { | 
| + StyleSheetTiming style_sheet_timing; | 
| + style_sheet_timing.author_style_sheet_parse_duration_before_fcp = | 
| + base::TimeDelta::FromMicroseconds(1); | 
| + style_sheet_timing.update_style_duration_before_fcp = | 
| + base::TimeDelta::FromMicroseconds(2); | 
| + | 
| + StyleSheetTiming style_sheet_timing2; | 
| + ASSERT_TRUE(mojom::StyleSheetTiming::Deserialize( | 
| + mojom::StyleSheetTiming::Serialize(&style_sheet_timing), | 
| + &style_sheet_timing2)); | 
| + | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(1), | 
| + style_sheet_timing2.author_style_sheet_parse_duration_before_fcp); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(2), | 
| + style_sheet_timing2.update_style_duration_before_fcp); | 
| +} | 
| + | 
| +TEST(PageLoadTimingStructTraitsTest, Basic) { | 
| + PageLoadTiming page_load_timing; | 
| + page_load_timing.navigation_start = base::Time::FromDoubleT(1); | 
| + page_load_timing.response_start = base::TimeDelta::FromMicroseconds(1); | 
| + page_load_timing.document_timing.dom_content_loaded_event_start = | 
| + base::TimeDelta::FromMicroseconds(2); | 
| + page_load_timing.document_timing.load_event_start = | 
| + base::TimeDelta::FromMicroseconds(3); | 
| + page_load_timing.document_timing.first_layout = | 
| + base::TimeDelta::FromMicroseconds(4); | 
| + page_load_timing.paint_timing.first_paint = | 
| + base::TimeDelta::FromMicroseconds(5); | 
| + page_load_timing.paint_timing.first_text_paint = | 
| + base::TimeDelta::FromMicroseconds(6); | 
| + page_load_timing.paint_timing.first_image_paint = | 
| + base::TimeDelta::FromMicroseconds(7); | 
| + page_load_timing.paint_timing.first_contentful_paint = | 
| + base::TimeDelta::FromMicroseconds(8); | 
| + page_load_timing.paint_timing.first_meaningful_paint = | 
| + base::TimeDelta::FromMicroseconds(9); | 
| + page_load_timing.parse_timing.parse_start = | 
| + base::TimeDelta::FromMicroseconds(10); | 
| + page_load_timing.parse_timing.parse_stop = | 
| + base::TimeDelta::FromMicroseconds(11); | 
| + page_load_timing.parse_timing.parse_blocked_on_script_load_duration = | 
| + base::TimeDelta::FromMicroseconds(12); | 
| + page_load_timing.parse_timing | 
| + .parse_blocked_on_script_load_from_document_write_duration = | 
| + base::TimeDelta::FromMicroseconds(13); | 
| + page_load_timing.parse_timing.parse_blocked_on_script_execution_duration = | 
| + base::TimeDelta::FromMicroseconds(14); | 
| + page_load_timing.parse_timing | 
| + .parse_blocked_on_script_execution_from_document_write_duration = | 
| + base::TimeDelta::FromMicroseconds(15); | 
| + page_load_timing.style_sheet_timing | 
| + .author_style_sheet_parse_duration_before_fcp = | 
| + base::TimeDelta::FromMicroseconds(16); | 
| + page_load_timing.style_sheet_timing.update_style_duration_before_fcp = | 
| + base::TimeDelta::FromMicroseconds(17); | 
| + | 
| + PageLoadTiming page_load_timing2; | 
| + ASSERT_TRUE(mojom::PageLoadTiming::Deserialize( | 
| + mojom::PageLoadTiming::Serialize(&page_load_timing), &page_load_timing2)); | 
| + EXPECT_EQ(base::Time::FromDoubleT(1), page_load_timing2.navigation_start); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(1), | 
| + page_load_timing2.response_start); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(2), | 
| + page_load_timing2.document_timing.dom_content_loaded_event_start); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(3), | 
| + page_load_timing2.document_timing.load_event_start); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(4), | 
| + page_load_timing2.document_timing.first_layout); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(5), | 
| + page_load_timing2.paint_timing.first_paint); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(6), | 
| + page_load_timing2.paint_timing.first_text_paint); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(7), | 
| + page_load_timing2.paint_timing.first_image_paint); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(8), | 
| + page_load_timing2.paint_timing.first_contentful_paint); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(9), | 
| + page_load_timing2.paint_timing.first_meaningful_paint); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(10), | 
| + page_load_timing2.parse_timing.parse_start); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(11), | 
| + page_load_timing2.parse_timing.parse_stop); | 
| + EXPECT_EQ( | 
| + base::TimeDelta::FromMicroseconds(12), | 
| + page_load_timing2.parse_timing.parse_blocked_on_script_load_duration); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(13), | 
| + page_load_timing2.parse_timing | 
| + .parse_blocked_on_script_load_from_document_write_duration); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(14), | 
| + page_load_timing2.parse_timing | 
| + .parse_blocked_on_script_execution_duration); | 
| + EXPECT_EQ( | 
| + base::TimeDelta::FromMicroseconds(15), | 
| + page_load_timing2.parse_timing | 
| + .parse_blocked_on_script_execution_from_document_write_duration); | 
| + EXPECT_EQ(base::TimeDelta::FromMicroseconds(16), | 
| + page_load_timing2.style_sheet_timing | 
| + .author_style_sheet_parse_duration_before_fcp); | 
| + EXPECT_EQ( | 
| + base::TimeDelta::FromMicroseconds(17), | 
| + page_load_timing2.style_sheet_timing.update_style_duration_before_fcp); | 
| +} | 
| + | 
| +} // namespace page_load_metrics |