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

Side by Side Diff: webkit/fileapi/isolated_context_unittest.cc

Issue 10536200: Manage IsolatedContext with reference counts (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "webkit/fileapi/isolated_context.h" 5 #include "webkit/fileapi/isolated_context.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 28 matching lines...) Expand all
39 for (size_t i = 0; i < arraysize(kTestPaths); ++i) 39 for (size_t i = 0; i < arraysize(kTestPaths); ++i)
40 fileset_.insert(kTestPaths[i].NormalizePathSeparators()); 40 fileset_.insert(kTestPaths[i].NormalizePathSeparators());
41 } 41 }
42 42
43 void SetUp() { 43 void SetUp() {
44 id_ = IsolatedContext::GetInstance()->RegisterIsolatedFileSystem(fileset_); 44 id_ = IsolatedContext::GetInstance()->RegisterIsolatedFileSystem(fileset_);
45 ASSERT_FALSE(id_.empty()); 45 ASSERT_FALSE(id_.empty());
46 } 46 }
47 47
48 void TearDown() { 48 void TearDown() {
49 IsolatedContext::GetInstance()->RevokeIsolatedFileSystem(id_); 49 IsolatedContext::GetInstance()->RemoveReference(id_);
50 } 50 }
51 51
52 IsolatedContext* isolated_context() const { 52 IsolatedContext* isolated_context() const {
53 return IsolatedContext::GetInstance(); 53 return IsolatedContext::GetInstance();
54 } 54 }
55 55
56 protected: 56 protected:
57 std::string id_; 57 std::string id_;
58 std::set<FilePath> fileset_; 58 std::set<FilePath> fileset_;
59 59
(...skipping 21 matching lines...) Expand all
81 ASSERT_TRUE(isolated_context()->CrackIsolatedPath( 81 ASSERT_TRUE(isolated_context()->CrackIsolatedPath(
82 virtual_path, &cracked_id, &root_path, &cracked_path)); 82 virtual_path, &cracked_id, &root_path, &cracked_path));
83 ASSERT_EQ(kTestPaths[i].NormalizePathSeparators().value(), 83 ASSERT_EQ(kTestPaths[i].NormalizePathSeparators().value(),
84 cracked_path.value()); 84 cracked_path.value());
85 ASSERT_TRUE(fileset_.find(root_path.NormalizePathSeparators()) 85 ASSERT_TRUE(fileset_.find(root_path.NormalizePathSeparators())
86 != fileset_.end()); 86 != fileset_.end());
87 ASSERT_EQ(id_, cracked_id); 87 ASSERT_EQ(id_, cracked_id);
88 } 88 }
89 89
90 // Revoking the current one and registering a new (empty) one. 90 // Revoking the current one and registering a new (empty) one.
91 isolated_context()->RevokeIsolatedFileSystem(id_); 91 isolated_context()->RemoveReference(id_);
92 std::string id2 = isolated_context()->RegisterIsolatedFileSystem( 92 std::string id2 = isolated_context()->RegisterIsolatedFileSystem(
93 std::set<FilePath>()); 93 std::set<FilePath>());
94 94
95 // Make sure the GetTopLevelPaths returns true only for the new one. 95 // Make sure the GetTopLevelPaths returns true only for the new one.
96 ASSERT_TRUE(isolated_context()->GetTopLevelPaths(id2, &toplevels)); 96 ASSERT_TRUE(isolated_context()->GetTopLevelPaths(id2, &toplevels));
97 ASSERT_FALSE(isolated_context()->GetTopLevelPaths(id_, &toplevels)); 97 ASSERT_FALSE(isolated_context()->GetTopLevelPaths(id_, &toplevels));
98 98
99 isolated_context()->RevokeIsolatedFileSystem(id2); 99 isolated_context()->RemoveReference(id2);
100 } 100 }
101 101
102 TEST_F(IsolatedContextTest, CrackWithRelativePaths) { 102 TEST_F(IsolatedContextTest, CrackWithRelativePaths) {
103 const struct { 103 const struct {
104 FilePath::StringType path; 104 FilePath::StringType path;
105 bool valid; 105 bool valid;
106 } relatives[] = { 106 } relatives[] = {
107 { FPL("foo"), true }, 107 { FPL("foo"), true },
108 { FPL("foo/bar"), true }, 108 { FPL("foo/bar"), true },
109 { FPL(".."), false }, 109 { FPL(".."), false },
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 // Set writable. 172 // Set writable.
173 ASSERT_TRUE(isolated_context()->SetWritable(id_, true)); 173 ASSERT_TRUE(isolated_context()->SetWritable(id_, true));
174 ASSERT_TRUE(isolated_context()->IsWritable(id_)); 174 ASSERT_TRUE(isolated_context()->IsWritable(id_));
175 175
176 // Set non-writable. 176 // Set non-writable.
177 ASSERT_TRUE(isolated_context()->SetWritable(id_, false)); 177 ASSERT_TRUE(isolated_context()->SetWritable(id_, false));
178 ASSERT_FALSE(isolated_context()->IsWritable(id_)); 178 ASSERT_FALSE(isolated_context()->IsWritable(id_));
179 179
180 // Set writable again, and revoke the filesystem. 180 // Set writable again, and revoke the filesystem.
181 ASSERT_TRUE(isolated_context()->SetWritable(id_, true)); 181 ASSERT_TRUE(isolated_context()->SetWritable(id_, true));
182 isolated_context()->RevokeIsolatedFileSystem(id_); 182 isolated_context()->RemoveReference(id_);
183 183
184 // IsWritable should return false for non-registered file system. 184 // IsWritable should return false for non-registered file system.
185 ASSERT_FALSE(isolated_context()->IsWritable(id_)); 185 ASSERT_FALSE(isolated_context()->IsWritable(id_));
186 // SetWritable should also return false for non-registered file system 186 // SetWritable should also return false for non-registered file system
187 // (no matter what value we give). 187 // (no matter what value we give).
188 ASSERT_FALSE(isolated_context()->SetWritable(id_, true)); 188 ASSERT_FALSE(isolated_context()->SetWritable(id_, true));
189 ASSERT_FALSE(isolated_context()->SetWritable(id_, false)); 189 ASSERT_FALSE(isolated_context()->SetWritable(id_, false));
190 } 190 }
191 191
192 } // namespace fileapi 192 } // namespace fileapi
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698