Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / gin / shell / gin_shell_unittest.cc
1 // Copyright 2014 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 "base/command_line.h"
6 #include "base/files/file_util.h"
7 #include "base/path_service.h"
8 #include "base/process/launch.h"
9 #include "base/strings/string_util.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 base::FilePath GinShellPath() {
13   base::FilePath dir;
14   PathService::Get(base::DIR_EXE, &dir);
15   return dir.AppendASCII("gin_shell");
16 }
17
18 base::FilePath HelloWorldPath() {
19   base::FilePath path;
20   PathService::Get(base::DIR_SOURCE_ROOT, &path);
21   return path
22     .AppendASCII("gin")
23     .AppendASCII("shell")
24     .AppendASCII("hello_world.js");
25 }
26
27 TEST(GinShellTest, HelloWorld) {
28   base::FilePath gin_shell_path(GinShellPath());
29   base::FilePath hello_world_path(HelloWorldPath());
30   ASSERT_TRUE(base::PathExists(gin_shell_path));
31   ASSERT_TRUE(base::PathExists(hello_world_path));
32
33   CommandLine cmd(gin_shell_path);
34   cmd.AppendArgPath(hello_world_path);
35   std::string output;
36   ASSERT_TRUE(base::GetAppOutput(cmd, &output));
37   base::TrimWhitespaceASCII(output, base::TRIM_ALL, &output);
38   ASSERT_EQ("Hello World", output);
39 }