xref: /aosp_15_r20/external/cronet/base/test/test_proto_loader_unittest.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2023 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "base/test/test_proto_loader.h"
6 
7 #include "base/files/file_path.h"
8 #include "base/notreached.h"
9 #include "base/path_service.h"
10 #include "base/test/test.pb.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12 
13 namespace base {
14 namespace {
15 
GetTestDataRoot()16 base::FilePath GetTestDataRoot() {
17   return base::PathService::CheckedGet(base::DIR_GEN_TEST_DATA_ROOT);
18 }
19 
LoadTestProto(const std::string & proto_text,google::protobuf::MessageLite & proto)20 void LoadTestProto(const std::string& proto_text,
21                    google::protobuf::MessageLite& proto) {
22   base::TestProtoLoader loader(GetTestDataRoot().Append(FILE_PATH_LITERAL(
23                                    "base/test/test_proto.descriptor")),
24                                "base.test.TestMessage");
25   std::string serialized_message;
26   loader.ParseFromText(proto_text, serialized_message);
27   ASSERT_TRUE(proto.ParseFromString(serialized_message));
28 }
29 
30 }  // namespace
31 
TEST(TestProtoLoaderTest,LoadProto)32 TEST(TestProtoLoaderTest, LoadProto) {
33   test::TestMessage proto;
34   LoadTestProto(
35       R"pb(
36         test: "Message"
37       )pb",
38       proto);
39   EXPECT_EQ("Message", proto.test());
40 }
41 
42 }  // namespace base
43