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

Side by Side Diff: content/browser/site_instance_impl_unittest.cc

Issue 10492009: Move test headers from content\test to content\public\test. This way we can enforce that internal c… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix mac 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 "base/compiler_specific.h" 5 #include "base/compiler_specific.h"
6 #include "base/stl_util.h" 6 #include "base/stl_util.h"
7 #include "base/string16.h" 7 #include "base/string16.h"
8 #include "content/browser/browser_thread_impl.h" 8 #include "content/browser/browser_thread_impl.h"
9 #include "content/browser/browsing_instance.h" 9 #include "content/browser/browsing_instance.h"
10 #include "content/browser/child_process_security_policy_impl.h" 10 #include "content/browser/child_process_security_policy_impl.h"
11 #include "content/browser/mock_content_browser_client.h" 11 #include "content/browser/mock_content_browser_client.h"
12 #include "content/browser/renderer_host/render_process_host_impl.h" 12 #include "content/browser/renderer_host/render_process_host_impl.h"
13 #include "content/browser/renderer_host/render_view_host_impl.h" 13 #include "content/browser/renderer_host/render_view_host_impl.h"
14 #include "content/browser/renderer_host/test_render_view_host.h" 14 #include "content/browser/renderer_host/test_render_view_host.h"
15 #include "content/browser/site_instance_impl.h" 15 #include "content/browser/site_instance_impl.h"
16 #include "content/browser/web_contents/navigation_entry_impl.h" 16 #include "content/browser/web_contents/navigation_entry_impl.h"
17 #include "content/browser/web_contents/web_contents_impl.h" 17 #include "content/browser/web_contents/web_contents_impl.h"
18 #include "content/public/browser/web_ui_controller_factory.h" 18 #include "content/public/browser/web_ui_controller_factory.h"
19 #include "content/public/common/content_client.h" 19 #include "content/public/common/content_client.h"
20 #include "content/public/common/content_constants.h" 20 #include "content/public/common/content_constants.h"
21 #include "content/public/common/url_constants.h" 21 #include "content/public/common/url_constants.h"
22 #include "content/public/test/mock_render_process_host.h" 22 #include "content/public/test/mock_render_process_host.h"
23 #include "content/test/test_browser_context.h" 23 #include "content/public/test/test_browser_context.h"
24 #include "content/test/test_browser_thread.h" 24 #include "content/test/test_browser_thread.h"
25 #include "content/test/test_content_client.h" 25 #include "content/test/test_content_client.h"
26 #include "googleurl/src/url_util.h" 26 #include "googleurl/src/url_util.h"
27 #include "testing/gtest/include/gtest/gtest.h" 27 #include "testing/gtest/include/gtest/gtest.h"
28 28
29 using content::BrowserContext; 29 using content::BrowserContext;
30 using content::BrowserThread; 30 using content::BrowserThread;
31 using content::BrowserThreadImpl; 31 using content::BrowserThreadImpl;
32 using content::MockRenderProcessHost; 32 using content::MockRenderProcessHost;
33 using content::MockRenderProcessHostFactory; 33 using content::MockRenderProcessHostFactory;
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 delete e1; 247 delete e1;
248 EXPECT_EQ(0, site_delete_counter); 248 EXPECT_EQ(0, site_delete_counter);
249 EXPECT_EQ(0, browsing_delete_counter); 249 EXPECT_EQ(0, browsing_delete_counter);
250 delete e2; 250 delete e2;
251 EXPECT_EQ(1, site_delete_counter); 251 EXPECT_EQ(1, site_delete_counter);
252 // instance is now deleted 252 // instance is now deleted
253 EXPECT_EQ(1, browsing_delete_counter); 253 EXPECT_EQ(1, browsing_delete_counter);
254 // browsing_instance is now deleted 254 // browsing_instance is now deleted
255 255
256 // Ensure that instances are deleted when their RenderViewHosts are gone. 256 // Ensure that instances are deleted when their RenderViewHosts are gone.
257 scoped_ptr<TestBrowserContext> browser_context(new TestBrowserContext()); 257 scoped_ptr<content::TestBrowserContext> browser_context(
258 new content::TestBrowserContext());
258 instance = 259 instance =
259 TestSiteInstance::CreateTestSiteInstance(browser_context.get(), 260 TestSiteInstance::CreateTestSiteInstance(browser_context.get(),
260 &site_delete_counter, 261 &site_delete_counter,
261 &browsing_delete_counter); 262 &browsing_delete_counter);
262 { 263 {
263 WebContentsImpl web_contents(browser_context.get(), instance, 264 WebContentsImpl web_contents(browser_context.get(), instance,
264 MSG_ROUTING_NONE, NULL, NULL, NULL); 265 MSG_ROUTING_NONE, NULL, NULL, NULL);
265 EXPECT_EQ(1, site_delete_counter); 266 EXPECT_EQ(1, site_delete_counter);
266 EXPECT_EQ(1, browsing_delete_counter); 267 EXPECT_EQ(1, browsing_delete_counter);
267 } 268 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 EXPECT_EQ(1, site_delete_counter1); 312 EXPECT_EQ(1, site_delete_counter1);
312 EXPECT_EQ(1, site_delete_counter2); 313 EXPECT_EQ(1, site_delete_counter2);
313 314
314 // Both BrowsingInstances are also now deleted 315 // Both BrowsingInstances are also now deleted
315 EXPECT_EQ(2, browsing_delete_counter); 316 EXPECT_EQ(2, browsing_delete_counter);
316 } 317 }
317 318
318 // Test to ensure GetProcess returns and creates processes correctly. 319 // Test to ensure GetProcess returns and creates processes correctly.
319 TEST_F(SiteInstanceTest, GetProcess) { 320 TEST_F(SiteInstanceTest, GetProcess) {
320 // Ensure that GetProcess returns a process. 321 // Ensure that GetProcess returns a process.
321 scoped_ptr<TestBrowserContext> browser_context(new TestBrowserContext()); 322 scoped_ptr<content::TestBrowserContext> browser_context(
323 new content::TestBrowserContext());
322 scoped_ptr<content::RenderProcessHost> host1; 324 scoped_ptr<content::RenderProcessHost> host1;
323 scoped_refptr<SiteInstanceImpl> instance(static_cast<SiteInstanceImpl*>( 325 scoped_refptr<SiteInstanceImpl> instance(static_cast<SiteInstanceImpl*>(
324 SiteInstance::Create(browser_context.get()))); 326 SiteInstance::Create(browser_context.get())));
325 host1.reset(instance->GetProcess()); 327 host1.reset(instance->GetProcess());
326 EXPECT_TRUE(host1.get() != NULL); 328 EXPECT_TRUE(host1.get() != NULL);
327 329
328 // Ensure that GetProcess creates a new process. 330 // Ensure that GetProcess creates a new process.
329 scoped_refptr<SiteInstanceImpl> instance2(static_cast<SiteInstanceImpl*>( 331 scoped_refptr<SiteInstanceImpl> instance2(static_cast<SiteInstanceImpl*>(
330 SiteInstance::Create(browser_context.get()))); 332 SiteInstance::Create(browser_context.get())));
331 scoped_ptr<content::RenderProcessHost> host2(instance2->GetProcess()); 333 scoped_ptr<content::RenderProcessHost> host2(instance2->GetProcess());
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
505 // it won't be deleted by its children. Thus, we'll keep a ref count to it 507 // it won't be deleted by its children. Thus, we'll keep a ref count to it
506 // to make sure it gets deleted. 508 // to make sure it gets deleted.
507 scoped_refptr<TestBrowsingInstance> browsing_instance2( 509 scoped_refptr<TestBrowsingInstance> browsing_instance2(
508 new TestBrowsingInstance(NULL, &delete_counter)); 510 new TestBrowsingInstance(NULL, &delete_counter));
509 browsing_instance2->set_use_process_per_site(true); 511 browsing_instance2->set_use_process_per_site(true);
510 EXPECT_EQ(site_instance_a1.get(), 512 EXPECT_EQ(site_instance_a1.get(),
511 browsing_instance2->GetSiteInstanceForURL(url_a2)); 513 browsing_instance2->GetSiteInstanceForURL(url_a2));
512 514
513 // A visit to the original site in a new BrowsingInstance (different browser 515 // A visit to the original site in a new BrowsingInstance (different browser
514 // context) should return a different SiteInstance. 516 // context) should return a different SiteInstance.
515 scoped_ptr<TestBrowserContext> browser_context(new TestBrowserContext()); 517 scoped_ptr<content::TestBrowserContext> browser_context(
518 new content::TestBrowserContext());
516 TestBrowsingInstance* browsing_instance3 = 519 TestBrowsingInstance* browsing_instance3 =
517 new TestBrowsingInstance(browser_context.get(), &delete_counter); 520 new TestBrowsingInstance(browser_context.get(), &delete_counter);
518 browsing_instance3->set_use_process_per_site(true); 521 browsing_instance3->set_use_process_per_site(true);
519 // Ensure the new SiteInstance is ref counted so that it gets deleted. 522 // Ensure the new SiteInstance is ref counted so that it gets deleted.
520 scoped_refptr<SiteInstanceImpl> site_instance_a2_3( 523 scoped_refptr<SiteInstanceImpl> site_instance_a2_3(
521 static_cast<SiteInstanceImpl*>( 524 static_cast<SiteInstanceImpl*>(
522 browsing_instance3->GetSiteInstanceForURL(url_a2))); 525 browsing_instance3->GetSiteInstanceForURL(url_a2)));
523 EXPECT_NE(site_instance_a1.get(), site_instance_a2_3.get()); 526 EXPECT_NE(site_instance_a1.get(), site_instance_a2_3.get());
524 527
525 // Should be able to see that we do have SiteInstances. 528 // Should be able to see that we do have SiteInstances.
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 EXPECT_NE(extension1_instance->GetProcess(), hosts[i]); 601 EXPECT_NE(extension1_instance->GetProcess(), hosts[i]);
599 EXPECT_NE(webui1_instance->GetProcess(), hosts[i]); 602 EXPECT_NE(webui1_instance->GetProcess(), hosts[i]);
600 } 603 }
601 604
602 STLDeleteContainerPointers(hosts.begin(), hosts.end()); 605 STLDeleteContainerPointers(hosts.begin(), hosts.end());
603 } 606 }
604 607
605 // Test to ensure that HasWrongProcessForURL behaves properly for different 608 // Test to ensure that HasWrongProcessForURL behaves properly for different
606 // types of URLs. 609 // types of URLs.
607 TEST_F(SiteInstanceTest, HasWrongProcessForURL) { 610 TEST_F(SiteInstanceTest, HasWrongProcessForURL) {
608 scoped_ptr<TestBrowserContext> browser_context(new TestBrowserContext()); 611 scoped_ptr<content::TestBrowserContext> browser_context(
612 new content::TestBrowserContext());
609 scoped_ptr<content::RenderProcessHost> host; 613 scoped_ptr<content::RenderProcessHost> host;
610 scoped_refptr<SiteInstanceImpl> instance(static_cast<SiteInstanceImpl*>( 614 scoped_refptr<SiteInstanceImpl> instance(static_cast<SiteInstanceImpl*>(
611 SiteInstance::Create(browser_context.get()))); 615 SiteInstance::Create(browser_context.get())));
612 616
613 EXPECT_FALSE(instance->HasSite()); 617 EXPECT_FALSE(instance->HasSite());
614 EXPECT_TRUE(instance->GetSite().is_empty()); 618 EXPECT_TRUE(instance->GetSite().is_empty());
615 619
616 instance->SetSite(GURL("http://evernote.com/")); 620 instance->SetSite(GURL("http://evernote.com/"));
617 EXPECT_TRUE(instance->HasSite()); 621 EXPECT_TRUE(instance->HasSite());
618 622
619 // Check prior to "assigning" a process to the instance, which is expected 623 // Check prior to "assigning" a process to the instance, which is expected
620 // to return false due to not being attached to any process yet. 624 // to return false due to not being attached to any process yet.
621 EXPECT_FALSE(instance->HasWrongProcessForURL(GURL("http://google.com"))); 625 EXPECT_FALSE(instance->HasWrongProcessForURL(GURL("http://google.com")));
622 626
623 // The call to GetProcess actually creates a new real process, which works 627 // The call to GetProcess actually creates a new real process, which works
624 // fine, but might be a cause for problems in different contexts. 628 // fine, but might be a cause for problems in different contexts.
625 host.reset(instance->GetProcess()); 629 host.reset(instance->GetProcess());
626 EXPECT_TRUE(host.get() != NULL); 630 EXPECT_TRUE(host.get() != NULL);
627 EXPECT_TRUE(instance->HasProcess()); 631 EXPECT_TRUE(instance->HasProcess());
628 632
629 EXPECT_FALSE(instance->HasWrongProcessForURL(GURL("http://evernote.com"))); 633 EXPECT_FALSE(instance->HasWrongProcessForURL(GURL("http://evernote.com")));
630 EXPECT_FALSE(instance->HasWrongProcessForURL( 634 EXPECT_FALSE(instance->HasWrongProcessForURL(
631 GURL("javascript:alert(document.location.href);"))); 635 GURL("javascript:alert(document.location.href);")));
632 636
633 EXPECT_TRUE(instance->HasWrongProcessForURL(GURL("chrome://settings"))); 637 EXPECT_TRUE(instance->HasWrongProcessForURL(GURL("chrome://settings")));
634 } 638 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698