Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(403)

Side by Side Diff: webkit/browser/fileapi/sandbox_isolated_origin_database_unittest.cc

Issue 16150002: Implement special origin database handling for Isolated Apps (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright 2013 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/basictypes.h"
6 #include "base/file_util.h"
7 #include "base/files/scoped_temp_dir.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "webkit/browser/fileapi/sandbox_isolated_origin_database.h"
10 #include "webkit/browser/fileapi/sandbox_origin_database.h"
11
12 namespace fileapi {
13
14 TEST(SandboxIsolatedOriginDatabaseTest, BasicTest) {
15 base::ScopedTempDir dir;
16 ASSERT_TRUE(dir.CreateUniqueTempDir());
17
18 std::string kOrigin("origin");
19 SandboxIsolatedOriginDatabase database(kOrigin, dir.path());
20
21 EXPECT_TRUE(database.HasOriginPath(kOrigin));
22
23 base::FilePath path1, path2;
24
25 EXPECT_FALSE(database.GetPathForOrigin(std::string(), &path1));
26 EXPECT_FALSE(database.GetPathForOrigin("foo", &path1));
27
28 EXPECT_TRUE(database.HasOriginPath(kOrigin));
29 EXPECT_TRUE(database.GetPathForOrigin(kOrigin, &path1));
30 EXPECT_TRUE(database.GetPathForOrigin(kOrigin, &path2));
31 EXPECT_FALSE(path1.empty());
32 EXPECT_FALSE(path2.empty());
33 EXPECT_EQ(path1, path2);
34 }
35
36 TEST(SandboxIsolatedOriginDatabaseTest, MigrationTest) {
37 base::ScopedTempDir dir;
38 ASSERT_TRUE(dir.CreateUniqueTempDir());
39
40 std::string kOrigin("origin");
41 std::string kFakeDirectoryData("0123456789");
42 base::FilePath path;
43 base::FilePath old_db_path;
44
45 // Initialize the directory with one origin using the regular
46 // SandboxOriginDatabase.
47 {
48 SandboxOriginDatabase database_old(dir.path());
49 old_db_path = database_old.GetDatabasePath();
50 EXPECT_FALSE(file_util::PathExists(old_db_path));
51 EXPECT_TRUE(database_old.GetPathForOrigin(kOrigin, &path));
52 EXPECT_FALSE(path.empty());
53 EXPECT_TRUE(file_util::DirectoryExists(old_db_path));
54
55 // Populate the origin directory with some fake data.
56 base::FilePath directory_db_path = dir.path().Append(path);
57 ASSERT_TRUE(file_util::CreateDirectory(directory_db_path));
58 EXPECT_EQ(static_cast<int>(kFakeDirectoryData.size()),
59 file_util::WriteFile(directory_db_path.AppendASCII("dummy"),
60 kFakeDirectoryData.data(),
61 kFakeDirectoryData.size()));
62 }
63
64 // Re-open the directory using sandboxIsolatedOriginDatabase.
65 SandboxIsolatedOriginDatabase database(kOrigin, dir.path());
66
67 // The database is migrated from the old one, so we should still
68 // see the same origin.
69 EXPECT_TRUE(database.HasOriginPath(kOrigin));
70 EXPECT_TRUE(database.GetPathForOrigin(kOrigin, &path));
71 EXPECT_FALSE(path.empty());
72
73 // The directory content must be kept (or migrated if necessary),
74 // so we should see the same fake data.
75 std::string origin_db_data;
76 base::FilePath directory_db_path = dir.path().Append(path);
77 EXPECT_TRUE(file_util::DirectoryExists(directory_db_path));
78 EXPECT_TRUE(file_util::PathExists(directory_db_path.AppendASCII("dummy")));
79 EXPECT_TRUE(file_util::ReadFileToString(
80 directory_db_path.AppendASCII("dummy"), &origin_db_data));
81 EXPECT_EQ(kFakeDirectoryData, origin_db_data);
82
83 // After the migration the database must be gone.
84 EXPECT_FALSE(file_util::PathExists(old_db_path));
85 }
86
87 } // namespace fileapi
OLDNEW
« no previous file with comments | « webkit/browser/fileapi/sandbox_isolated_origin_database.cc ('k') | webkit/browser/fileapi/sandbox_mount_point_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698