0
Files
src/components/optimization_guide/optimization_metadata_unittest.cc
Sophie Chang ddaa9cd614 Switch DelayAsyncScriptExecution to use the any metadata field
Bug: 1113287
Change-Id: I0dd3b14bc9538b71686e9dbac9b258eaec0a2015
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2356749
Reviewed-by: Michael Crouse <mcrouse@chromium.org>
Commit-Queue: Sophie Chang <sophiechang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#798728}
2020-08-17 18:34:47 +00:00

103 lines
4.1 KiB
C++

// Copyright 2020 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/optimization_guide/optimization_metadata.h"
#include "components/optimization_guide/proto/delay_async_script_execution_metadata.pb.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace optimization_guide {
TEST(OptimizationMetadataTest, ParsedMetadataAnyMetadataNotPopulatedTest) {
OptimizationMetadata optimization_metadata;
base::Optional<proto::DelayAsyncScriptExecutionMetadata>
parsed_dase_metadata =
optimization_metadata
.ParsedMetadata<proto::DelayAsyncScriptExecutionMetadata>();
EXPECT_FALSE(parsed_dase_metadata.has_value());
}
TEST(OptimizationMetadataTest, ParsedMetadataNoTypeURLTest) {
proto::Any any_metadata;
proto::DelayAsyncScriptExecutionMetadata dase_metadata;
dase_metadata.set_delay_type(proto::DELAY_TYPE_FINISHED_PARSING);
dase_metadata.SerializeToString(any_metadata.mutable_value());
OptimizationMetadata optimization_metadata;
optimization_metadata.set_any_metadata(any_metadata);
base::Optional<proto::DelayAsyncScriptExecutionMetadata>
parsed_dase_metadata =
optimization_metadata
.ParsedMetadata<proto::DelayAsyncScriptExecutionMetadata>();
EXPECT_FALSE(parsed_dase_metadata.has_value());
}
TEST(OptimizationMetadataTest, ParsedMetadataMismatchedTypeTest) {
proto::Any any_metadata;
any_metadata.set_type_url("type.googleapis.com/com.foo.Whatever");
proto::DelayAsyncScriptExecutionMetadata dase_metadata;
dase_metadata.set_delay_type(proto::DELAY_TYPE_FINISHED_PARSING);
dase_metadata.SerializeToString(any_metadata.mutable_value());
OptimizationMetadata optimization_metadata;
optimization_metadata.set_any_metadata(any_metadata);
base::Optional<proto::DelayAsyncScriptExecutionMetadata>
parsed_dase_metadata =
optimization_metadata
.ParsedMetadata<proto::DelayAsyncScriptExecutionMetadata>();
EXPECT_FALSE(parsed_dase_metadata.has_value());
}
TEST(OptimizationMetadataTest, ParsedMetadataNotSerializableTest) {
proto::Any any_metadata;
any_metadata.set_type_url(
"type.googleapis.com/com.foo.DelayAsyncScriptExecutionMetadata");
any_metadata.set_value("12345678garbage");
OptimizationMetadata optimization_metadata;
optimization_metadata.set_any_metadata(any_metadata);
base::Optional<proto::DelayAsyncScriptExecutionMetadata>
parsed_dase_metadata =
optimization_metadata
.ParsedMetadata<proto::DelayAsyncScriptExecutionMetadata>();
EXPECT_FALSE(parsed_dase_metadata.has_value());
}
TEST(OptimizationMetadataTest, ParsedMetadataTest) {
proto::Any any_metadata;
any_metadata.set_type_url(
"type.googleapis.com/com.foo.DelayAsyncScriptExecutionMetadata");
proto::DelayAsyncScriptExecutionMetadata dase_metadata;
dase_metadata.set_delay_type(proto::DELAY_TYPE_FINISHED_PARSING);
dase_metadata.SerializeToString(any_metadata.mutable_value());
OptimizationMetadata optimization_metadata;
optimization_metadata.set_any_metadata(any_metadata);
base::Optional<proto::DelayAsyncScriptExecutionMetadata>
parsed_dase_metadata =
optimization_metadata
.ParsedMetadata<proto::DelayAsyncScriptExecutionMetadata>();
EXPECT_TRUE(parsed_dase_metadata.has_value());
EXPECT_EQ(parsed_dase_metadata->delay_type(),
proto::DELAY_TYPE_FINISHED_PARSING);
}
TEST(OptimizationMetadataTest, SetAnyMetadataForTestingTest) {
proto::DelayAsyncScriptExecutionMetadata dase_metadata;
dase_metadata.set_delay_type(proto::DELAY_TYPE_FINISHED_PARSING);
OptimizationMetadata optimization_metadata;
optimization_metadata.SetAnyMetadataForTesting(dase_metadata);
base::Optional<proto::DelayAsyncScriptExecutionMetadata>
parsed_dase_metadata =
optimization_metadata
.ParsedMetadata<proto::DelayAsyncScriptExecutionMetadata>();
EXPECT_TRUE(parsed_dase_metadata.has_value());
EXPECT_EQ(parsed_dase_metadata->delay_type(),
proto::DELAY_TYPE_FINISHED_PARSING);
}
} // namespace optimization_guide