• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2016 The Chromium Authors. All rights reserved.
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 "gn/ninja_bundle_data_target_writer.h"
6 
7 #include <algorithm>
8 #include <sstream>
9 
10 #include "gn/target.h"
11 #include "gn/test_with_scope.h"
12 #include "util/test/test.h"
13 
TEST(NinjaBundleDataTargetWriter,Run)14 TEST(NinjaBundleDataTargetWriter, Run) {
15   Err err;
16   TestWithScope setup;
17 
18   Target bundle_data(setup.settings(), Label(SourceDir("//foo/"), "data"));
19   bundle_data.set_output_type(Target::BUNDLE_DATA);
20   bundle_data.sources().push_back(SourceFile("//foo/input1.txt"));
21   bundle_data.sources().push_back(SourceFile("//foo/input2.txt"));
22   bundle_data.sources().push_back(
23       SourceFile("//foo/Foo.xcassets/Contents.json"));
24   bundle_data.sources().push_back(
25       SourceFile("//foo/Foo.xcassets/foo.colorset/Contents.json"));
26   bundle_data.sources().push_back(
27       SourceFile("//foo/Foo.xcassets/foo.imageset/Contents.json"));
28   bundle_data.sources().push_back(
29       SourceFile("//foo/Foo.xcassets/foo.imageset/FooIcon-29.png"));
30   bundle_data.sources().push_back(
31       SourceFile("//foo/Foo.xcassets/foo.imageset/FooIcon-29@2x.png"));
32   bundle_data.sources().push_back(
33       SourceFile("//foo/Foo.xcassets/foo.imageset/FooIcon-29@3x.png"));
34   bundle_data.action_values().outputs() = SubstitutionList::MakeForTest(
35       "{{bundle_resources_dir}}/{{source_file_part}}");
36   bundle_data.SetToolchain(setup.toolchain());
37   bundle_data.visibility().SetPublic();
38   ASSERT_TRUE(bundle_data.OnResolved(&err));
39 
40   std::ostringstream out;
41   NinjaBundleDataTargetWriter writer(&bundle_data, out);
42   writer.Run();
43 
44   const char expected[] =
45       "build obj/foo/data.stamp: stamp "
46       "../../foo/input1.txt "
47       "../../foo/input2.txt "
48       "../../foo/Foo.xcassets/Contents.json "
49       "../../foo/Foo.xcassets/foo.colorset/Contents.json "
50       "../../foo/Foo.xcassets/foo.imageset/Contents.json "
51       "../../foo/Foo.xcassets/foo.imageset/FooIcon-29.png "
52       "../../foo/Foo.xcassets/foo.imageset/FooIcon-29@2x.png "
53       "../../foo/Foo.xcassets/foo.imageset/FooIcon-29@3x.png\n";
54   std::string out_str = out.str();
55   EXPECT_EQ(expected, out_str);
56 }
57