| Index: chrome/browser/history/history_unittest.cc
 | 
| ===================================================================
 | 
| --- chrome/browser/history/history_unittest.cc	(revision 105368)
 | 
| +++ chrome/browser/history/history_unittest.cc	(working copy)
 | 
| @@ -469,8 +469,8 @@
 | 
|    ASSERT_TRUE(history->Init(history_dir_, NULL));
 | 
|  
 | 
|    const char* first_sequence[] = {
 | 
| -    "http://first.page/",
 | 
| -    "http://second.page/"};
 | 
| +    "http://first.page.com/",
 | 
| +    "http://second.page.com/"};
 | 
|    int first_count = arraysize(first_sequence);
 | 
|    history::RedirectList first_redirects;
 | 
|    for (int i = 0; i < first_count; i++)
 | 
| @@ -515,7 +515,7 @@
 | 
|    // so we pass in a CLIENT_REDIRECT qualifier to mock that behavior.
 | 
|    history::RedirectList second_redirects;
 | 
|    second_redirects.push_back(first_redirects[1]);
 | 
| -  second_redirects.push_back(GURL("http://last.page/"));
 | 
| +  second_redirects.push_back(GURL("http://last.page.com/"));
 | 
|    history->AddPage(second_redirects[1], MakeFakeHost(1), 1,
 | 
|                     second_redirects[0],
 | 
|                     static_cast<content::PageTransition>(
 | 
| @@ -534,10 +534,87 @@
 | 
|    EXPECT_EQ(1, query_url_row_.visit_count());
 | 
|    ASSERT_EQ(1U, query_url_visits_.size());
 | 
|    EXPECT_EQ(content::PAGE_TRANSITION_CLIENT_REDIRECT |
 | 
| -            content::PAGE_TRANSITION_CHAIN_END, query_url_visits_[0].transition);
 | 
| +            content::PAGE_TRANSITION_CHAIN_END,
 | 
| +            query_url_visits_[0].transition);
 | 
|    EXPECT_EQ(second_visit, query_url_visits_[0].referring_visit);
 | 
|  }
 | 
|  
 | 
| +TEST_F(HistoryTest, MakeIntranetURLsTyped) {
 | 
| +  scoped_refptr<HistoryService> history(new HistoryService);
 | 
| +  history_service_ = history;
 | 
| +  ASSERT_TRUE(history->Init(history_dir_, NULL));
 | 
| +
 | 
| +  // Add a non-typed visit to an intranet URL on an unvisited host.  This should
 | 
| +  // get promoted to a typed visit.
 | 
| +  const GURL test_url("http://intranet_host/path");
 | 
| +  history->AddPage(test_url, NULL, 0, GURL(), content::PAGE_TRANSITION_LINK,
 | 
| +                   history::RedirectList(), history::SOURCE_BROWSED, false);
 | 
| +  EXPECT_TRUE(QueryURL(history, test_url));
 | 
| +  EXPECT_EQ(1, query_url_row_.visit_count());
 | 
| +  EXPECT_EQ(1, query_url_row_.typed_count());
 | 
| +  ASSERT_EQ(1U, query_url_visits_.size());
 | 
| +  EXPECT_EQ(content::PAGE_TRANSITION_TYPED,
 | 
| +      content::PageTransitionStripQualifier(query_url_visits_[0].transition));
 | 
| +
 | 
| +  // Add more visits on the same host.  None of these should be promoted since
 | 
| +  // there is already a typed visit.
 | 
| +
 | 
| +  // Different path.
 | 
| +  const GURL test_url2("http://intranet_host/different_path");
 | 
| +  history->AddPage(test_url2, NULL, 0, GURL(), content::PAGE_TRANSITION_LINK,
 | 
| +                   history::RedirectList(), history::SOURCE_BROWSED, false);
 | 
| +  EXPECT_TRUE(QueryURL(history, test_url2));
 | 
| +  EXPECT_EQ(1, query_url_row_.visit_count());
 | 
| +  EXPECT_EQ(0, query_url_row_.typed_count());
 | 
| +  ASSERT_EQ(1U, query_url_visits_.size());
 | 
| +  EXPECT_EQ(content::PAGE_TRANSITION_LINK,
 | 
| +      content::PageTransitionStripQualifier(query_url_visits_[0].transition));
 | 
| +
 | 
| +  // No path.
 | 
| +  const GURL test_url3("http://intranet_host/");
 | 
| +  history->AddPage(test_url3, NULL, 0, GURL(), content::PAGE_TRANSITION_LINK,
 | 
| +                   history::RedirectList(), history::SOURCE_BROWSED, false);
 | 
| +  EXPECT_TRUE(QueryURL(history, test_url3));
 | 
| +  EXPECT_EQ(1, query_url_row_.visit_count());
 | 
| +  EXPECT_EQ(0, query_url_row_.typed_count());
 | 
| +  ASSERT_EQ(1U, query_url_visits_.size());
 | 
| +  EXPECT_EQ(content::PAGE_TRANSITION_LINK,
 | 
| +      content::PageTransitionStripQualifier(query_url_visits_[0].transition));
 | 
| +
 | 
| +  // Different scheme.
 | 
| +  const GURL test_url4("https://intranet_host/");
 | 
| +  history->AddPage(test_url4, NULL, 0, GURL(), content::PAGE_TRANSITION_LINK,
 | 
| +                   history::RedirectList(), history::SOURCE_BROWSED, false);
 | 
| +  EXPECT_TRUE(QueryURL(history, test_url4));
 | 
| +  EXPECT_EQ(1, query_url_row_.visit_count());
 | 
| +  EXPECT_EQ(0, query_url_row_.typed_count());
 | 
| +  ASSERT_EQ(1U, query_url_visits_.size());
 | 
| +  EXPECT_EQ(content::PAGE_TRANSITION_LINK,
 | 
| +      content::PageTransitionStripQualifier(query_url_visits_[0].transition));
 | 
| +
 | 
| +  // Different transition.
 | 
| +  const GURL test_url5("http://intranet_host/another_path");
 | 
| +  history->AddPage(test_url5, NULL, 0, GURL(),
 | 
| +                   content::PAGE_TRANSITION_AUTO_BOOKMARK,
 | 
| +                   history::RedirectList(), history::SOURCE_BROWSED, false);
 | 
| +  EXPECT_TRUE(QueryURL(history, test_url5));
 | 
| +  EXPECT_EQ(1, query_url_row_.visit_count());
 | 
| +  EXPECT_EQ(0, query_url_row_.typed_count());
 | 
| +  ASSERT_EQ(1U, query_url_visits_.size());
 | 
| +  EXPECT_EQ(content::PAGE_TRANSITION_AUTO_BOOKMARK,
 | 
| +      content::PageTransitionStripQualifier(query_url_visits_[0].transition));
 | 
| +
 | 
| +  // Original URL.
 | 
| +  history->AddPage(test_url, NULL, 0, GURL(), content::PAGE_TRANSITION_LINK,
 | 
| +                   history::RedirectList(), history::SOURCE_BROWSED, false);
 | 
| +  EXPECT_TRUE(QueryURL(history, test_url));
 | 
| +  EXPECT_EQ(2, query_url_row_.visit_count());
 | 
| +  EXPECT_EQ(1, query_url_row_.typed_count());
 | 
| +  ASSERT_EQ(2U, query_url_visits_.size());
 | 
| +  EXPECT_EQ(content::PAGE_TRANSITION_LINK,
 | 
| +      content::PageTransitionStripQualifier(query_url_visits_[1].transition));
 | 
| +}
 | 
| +
 | 
|  TEST_F(HistoryTest, Typed) {
 | 
|    scoped_refptr<HistoryService> history(new HistoryService);
 | 
|    history_service_ = history;
 | 
| 
 |