| Index: chrome/browser/browser_browsertest.cc | 
| diff --git a/chrome/browser/browser_browsertest.cc b/chrome/browser/browser_browsertest.cc | 
| index 64fa35ca27fcf9a7dad0f195f285b4cabdb69ba6..b0da49cf8bfa5a8ca8ee91ffd06f0fc8eec295aa 100644 | 
| --- a/chrome/browser/browser_browsertest.cc | 
| +++ b/chrome/browser/browser_browsertest.cc | 
| @@ -369,6 +369,55 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, CommandCreateAppShortcutInvalid) { | 
| ui_test_utils::NavigateToURL(browser(), blank_url); | 
| EXPECT_FALSE(command_updater->IsCommandEnabled(IDC_CREATE_SHORTCUTS)); | 
| } | 
| + | 
| +// Change a tab into an application window. | 
| +IN_PROC_BROWSER_TEST_F(BrowserTest, ConvertTabToAppShortcut) { | 
| +  ASSERT_TRUE(test_server()->Start()); | 
| +  GURL http_url(test_server()->GetURL("")); | 
| +  ASSERT_TRUE(http_url.SchemeIs(chrome::kHttpScheme)); | 
| + | 
| +  ASSERT_EQ(1, browser()->tab_count()); | 
| +  TabContents* initial_tab = browser()->GetTabContentsAt(0); | 
| +  TabContents* app_tab = browser()->AddSelectedTabWithURL( | 
| +      http_url, PageTransition::TYPED)->tab_contents(); | 
| +  ASSERT_EQ(2, browser()->tab_count()); | 
| +  ASSERT_EQ(1u, BrowserList::GetBrowserCount(browser()->profile())); | 
| + | 
| +  // Normal tabs should accept load drops. | 
| +  EXPECT_TRUE(initial_tab->GetMutableRendererPrefs()->can_accept_load_drops); | 
| +  EXPECT_TRUE(app_tab->GetMutableRendererPrefs()->can_accept_load_drops); | 
| + | 
| +  // Turn |app_tab| into a tab in an app panel. | 
| +  browser()->ConvertContentsToApplication(app_tab); | 
| + | 
| +  // The launch should have created a new browser. | 
| +  ASSERT_EQ(2u, BrowserList::GetBrowserCount(browser()->profile())); | 
| + | 
| +  // Find the new browser. | 
| +  Browser* app_browser = NULL; | 
| +  for (BrowserList::const_iterator i = BrowserList::begin(); | 
| +       i != BrowserList::end() && !app_browser; ++i) { | 
| +    if (*i != browser()) | 
| +      app_browser = *i; | 
| +  } | 
| +  ASSERT_TRUE(app_browser); | 
| + | 
| +  // Check that the tab contents is in the new browser, and not in the old. | 
| +  ASSERT_EQ(1, browser()->tab_count()); | 
| +  ASSERT_EQ(initial_tab, browser()->GetTabContentsAt(0)); | 
| + | 
| +  // Check that the appliaction browser has a single tab, and that tab contains | 
| +  // the content that we app-ified. | 
| +  ASSERT_EQ(1, app_browser->tab_count()); | 
| +  ASSERT_EQ(app_tab, app_browser->GetTabContentsAt(0)); | 
| + | 
| +  // Normal tabs should accept load drops. | 
| +  EXPECT_TRUE(initial_tab->GetMutableRendererPrefs()->can_accept_load_drops); | 
| + | 
| +  // The tab in an aopp window should not. | 
| +  EXPECT_FALSE(app_tab->GetMutableRendererPrefs()->can_accept_load_drops); | 
| +} | 
| + | 
| #endif  // !defined(OS_MACOSX) | 
|  | 
| // Test RenderView correctly send back favicon url for web page that redirects | 
|  |