| Index: tools/gn/value_unittest.cc
|
| diff --git a/tools/gn/value_unittest.cc b/tools/gn/value_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a0fdde59660f96d68f0a3fe75b20e3c3269f75a0
|
| --- /dev/null
|
| +++ b/tools/gn/value_unittest.cc
|
| @@ -0,0 +1,28 @@
|
| +// Copyright 2014 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 "testing/gtest/include/gtest/gtest.h"
|
| +#include "tools/gn/value.h"
|
| +
|
| +TEST(Value, ToString) {
|
| + Value strval(NULL, "hi\" $me\\you\\$\\\"");
|
| + EXPECT_EQ("hi\" $me\\you\\$\\\"", strval.ToString(false));
|
| + EXPECT_EQ("\"hi\\\" \\$me\\you\\\\\\$\\\\\\\"\"", strval.ToString(true));
|
| +
|
| + // Test lists, bools, and ints.
|
| + Value listval(NULL, Value::LIST);
|
| + listval.list_value().push_back(Value(NULL, "hi\"me"));
|
| + listval.list_value().push_back(Value(NULL, true));
|
| + listval.list_value().push_back(Value(NULL, false));
|
| + listval.list_value().push_back(Value(NULL, static_cast<int64>(42)));
|
| + // Printing lists always causes embedded strings to be quoted (ignoring the
|
| + // quote flag), or else they wouldn't make much sense.
|
| + EXPECT_EQ("[\"hi\\\"me\", true, false, 42]", listval.ToString(false));
|
| + EXPECT_EQ("[\"hi\\\"me\", true, false, 42]", listval.ToString(true));
|
| +
|
| + // Some weird types, we may want to enhance or change printing of these, but
|
| + // here we test the current behavior.
|
| + EXPECT_EQ("<void>", Value().ToString(false));
|
| + EXPECT_EQ("<scope>", Value(NULL, Value::SCOPE).ToString(false));
|
| +}
|
|
|