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

Side by Side Diff: mojo/runner/url_resolver_unittest.cc

Issue 1180653002: Build Mojo apps in subdirectories, like application packages. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Sync and rebase; update tests. Created 5 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
« no previous file with comments | « mojo/runner/url_resolver.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 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 "mojo/runner/url_resolver.h" 5 #include "mojo/runner/url_resolver.h"
6 6
7 #include "base/files/file_util.h" 7 #include "base/files/file_util.h"
8 #include "base/files/scoped_temp_dir.h" 8 #include "base/files/scoped_temp_dir.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "mojo/util/filename_util.h" 10 #include "mojo/util/filename_util.h"
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 URLResolver resolver; 133 URLResolver resolver;
134 resolver.SetMojoBaseURL(GURL("file:/base")); 134 resolver.SetMojoBaseURL(GURL("file:/base"));
135 resolver.AddURLMapping(GURL("https://a.org/foo"), 135 resolver.AddURLMapping(GURL("https://a.org/foo"),
136 GURL("https://b.org/a/foo")); 136 GURL("https://b.org/a/foo"));
137 resolver.AddURLMapping(GURL("https://b.org/a/foo"), 137 resolver.AddURLMapping(GURL("https://b.org/a/foo"),
138 GURL("https://c.org/b/a/foo")); 138 GURL("https://c.org/b/a/foo"));
139 GURL mapped_url = resolver.ApplyMappings(GURL("https://a.org/foo?a=b")); 139 GURL mapped_url = resolver.ApplyMappings(GURL("https://a.org/foo?a=b"));
140 EXPECT_EQ("https://c.org/b/a/foo?a=b", mapped_url.spec()); 140 EXPECT_EQ("https://c.org/b/a/foo?a=b", mapped_url.spec());
141 } 141 }
142 142
143 TEST_F(URLResolverTest, TestQueryForBaseURL) { 143 TEST_F(URLResolverTest, TestQueryForBaseFileURL) {
144 URLResolver resolver; 144 URLResolver resolver;
145 resolver.SetMojoBaseURL(GURL("file:///base")); 145 resolver.SetMojoBaseURL(GURL("file:///base"));
146 GURL mapped_url = resolver.ResolveMojoURL(GURL("mojo:foo?a=b")); 146 GURL mapped_url = resolver.ResolveMojoURL(GURL("mojo:foo?a=b"));
147 EXPECT_EQ("file:///base/foo.mojo?a=b", mapped_url.spec()); 147 EXPECT_EQ("file:///base/foo/foo.mojo?a=b", mapped_url.spec());
148 } 148 }
149 149
150 // Verifies that ResolveMojoURL prefers the directory with the name of the host 150 TEST_F(URLResolverTest, TestQueryForBaseHttpURL) {
151 // over the raw file.
152 TEST_F(URLResolverTest, PreferDirectory) {
153 base::ScopedTempDir tmp_dir;
154 ASSERT_TRUE(tmp_dir.CreateUniqueTempDir());
155 URLResolver resolver; 151 URLResolver resolver;
156 // With no directory |mojo:foo| maps to path/foo.mojo. 152 resolver.SetMojoBaseURL(GURL("http://127.0.0.1:1234"));
157 resolver.SetMojoBaseURL(util::FilePathToFileURL(tmp_dir.path())); 153 GURL mapped_url = resolver.ResolveMojoURL(GURL("mojo:foo?a=b"));
158 const GURL mapped_url = resolver.ResolveMojoURL(GURL("mojo:foo")); 154 EXPECT_EQ("http://127.0.0.1:1234/foo/foo.mojo?a=b", mapped_url.spec());
159 EXPECT_EQ(util::FilePathToFileURL(tmp_dir.path()).spec() + "/foo.mojo",
160 mapped_url.spec());
161
162 // With an empty directory |mojo:foo| maps to path/foo.mojo.
163 const base::FilePath foo_file_path(
164 tmp_dir.path().Append(FILE_PATH_LITERAL("foo")));
165 ASSERT_TRUE(base::CreateDirectory(foo_file_path));
166 const GURL mapped_url_with_dir = resolver.ResolveMojoURL(GURL("mojo:foo"));
167 EXPECT_EQ(util::FilePathToFileURL(tmp_dir.path()).spec() + "/foo.mojo",
168 mapped_url_with_dir.spec());
169
170 // When foo.mojo exists in the directory (path/foo/foo.mojo), then it should
171 // be picked up.
172 // With an empty directory |mojo:foo| maps to path/foo/foo.mojo.
173 ASSERT_EQ(1,
174 base::WriteFile(foo_file_path.Append(FILE_PATH_LITERAL("foo.mojo")),
175 "a", 1));
176 const GURL mapped_url_in_dir = resolver.ResolveMojoURL(GURL("mojo:foo"));
177 EXPECT_EQ(util::FilePathToFileURL(tmp_dir.path()).spec() + "/foo/foo.mojo",
178 mapped_url_in_dir.spec());
179 } 155 }
180 156
181 } // namespace 157 } // namespace
182 } // namespace test 158 } // namespace test
183 } // namespace runner 159 } // namespace runner
184 } // namespace mojo 160 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/runner/url_resolver.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698