web_app_unittest.cc revision 4a5e2dc747d50c653511c68ccb2cfbfb740bd5a7
1// Copyright (c) 2010 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 "chrome/browser/web_applications/web_app.h"
6
7#include "base/file_path.h"
8#include "base/string_util.h"
9#include "base/utf_string_conversions.h"
10#include "chrome/browser/browser_thread.h"
11#include "chrome/browser/renderer_host/test/test_render_view_host.h"
12#include "chrome/browser/tab_contents/test_tab_contents.h"
13#include "chrome/common/render_messages.h"
14#include "chrome/test/testing_profile.h"
15#include "testing/gtest/include/gtest/gtest.h"
16
17class WebApplicationTest : public RenderViewHostTestHarness {
18 public:
19  WebApplicationTest()
20      : RenderViewHostTestHarness(),
21        ui_thread_(BrowserThread::UI, &message_loop_) {
22  }
23
24 private:
25  // Supply our own profile so we use the correct profile data. The test harness
26  // is not supposed to overwrite a profile if it's already created.
27  virtual void SetUp() {
28    profile_.reset(new TestingProfile());
29
30    RenderViewHostTestHarness::SetUp();
31  }
32
33  virtual void TearDown() {
34    RenderViewHostTestHarness::TearDown();
35
36    profile_.reset(NULL);
37  }
38
39  BrowserThread ui_thread_;
40};
41
42TEST_F(WebApplicationTest, GetShortcutInfoForTab) {
43  const string16 title = ASCIIToUTF16("TEST_TITLE");
44  const string16 description = ASCIIToUTF16("TEST_DESCRIPTION");
45  const GURL url("http://www.foo.com/bar");
46  WebApplicationInfo web_app_info;
47  web_app_info.title = title;
48  web_app_info.description = description;
49  web_app_info.app_url = url;
50
51  rvh()->TestOnMessageReceived(
52      ViewHostMsg_DidGetApplicationInfo(0, 0, web_app_info));
53  ShellIntegration::ShortcutInfo info;
54  web_app::GetShortcutInfoForTab(contents(), &info);
55
56  EXPECT_EQ(title, info.title);
57  EXPECT_EQ(description, info.description);
58  EXPECT_EQ(url, info.url);
59}
60
61TEST_F(WebApplicationTest, GetDataDir) {
62  FilePath test_path(FILE_PATH_LITERAL("/path/to/test"));
63  FilePath result = web_app::GetDataDir(test_path);
64  test_path = test_path.AppendASCII("Web Applications");
65  EXPECT_EQ(test_path.value(), result.value());
66}
67