15c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Copyright 2014 The Chromium Authors. All rights reserved.
2868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// found in the LICENSE file.
4868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
5868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/basictypes.h"
61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/files/file_util.h"
7868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/files/scoped_temp_dir.h"
81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "storage/browser/fileapi/sandbox_isolated_origin_database.h"
91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "storage/browser/fileapi/sandbox_origin_database.h"
10868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h"
11868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
1203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)using storage::SandboxIsolatedOriginDatabase;
135c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
145c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liunamespace content {
15868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
161e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)namespace {
171e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)const base::FilePath::CharType kOriginDirectory[] = FILE_PATH_LITERAL("iso");
181e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}  // namespace
191e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
20868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)TEST(SandboxIsolatedOriginDatabaseTest, BasicTest) {
21868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  base::ScopedTempDir dir;
22868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  ASSERT_TRUE(dir.CreateUniqueTempDir());
23868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
24868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  std::string kOrigin("origin");
251e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  SandboxIsolatedOriginDatabase database(kOrigin, dir.path(),
261e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                         base::FilePath(kOriginDirectory));
27868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
28868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  EXPECT_TRUE(database.HasOriginPath(kOrigin));
29868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
30868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  base::FilePath path1, path2;
31868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
32868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  EXPECT_FALSE(database.GetPathForOrigin(std::string(), &path1));
33868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  EXPECT_FALSE(database.GetPathForOrigin("foo", &path1));
34868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
35868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  EXPECT_TRUE(database.HasOriginPath(kOrigin));
36868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  EXPECT_TRUE(database.GetPathForOrigin(kOrigin, &path1));
37868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  EXPECT_TRUE(database.GetPathForOrigin(kOrigin, &path2));
38868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  EXPECT_FALSE(path1.empty());
39868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  EXPECT_FALSE(path2.empty());
40868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  EXPECT_EQ(path1, path2);
41868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)}
42868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
435c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu}  // namespace content
44