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

Side by Side Diff: chrome/browser/autocomplete/autocomplete_provider_unittest.cc

Issue 12218104: Fix memory leak in AutocompleteProviderTest::GetDestinationURL unit test. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Created 7 years, 10 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 "chrome/browser/autocomplete/autocomplete_provider.h" 5 #include "chrome/browser/autocomplete/autocomplete_provider.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/string16.h" 10 #include "base/string16.h"
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 247
248 TestProvider* provider2 = new TestProvider( 248 TestProvider* provider2 = new TestProvider(
249 kResultsPerProvider * 2, 249 kResultsPerProvider * 2,
250 same_destinations ? ASCIIToUTF16("http://a") : ASCIIToUTF16("http://b"), 250 same_destinations ? ASCIIToUTF16("http://a") : ASCIIToUTF16("http://b"),
251 &profile_, 251 &profile_,
252 string16()); 252 string16());
253 provider2->AddRef(); 253 provider2->AddRef();
254 providers.push_back(provider2); 254 providers.push_back(provider2);
255 255
256 // Reset the controller to contain our new providers. 256 // Reset the controller to contain our new providers.
257 controller_.reset( 257 controller_.reset(new AutocompleteController(&profile_, NULL, 0));
258 new AutocompleteController(&profile_, NULL, 258 // We're going to swap the providers vector, but the old vector should be
259 AutocompleteProvider::TYPE_SEARCH)); 259 // empty so no elements need to be freed at this point.
260 EXPECT_TRUE(controller_->providers_.empty());
Peter Kasting 2013/02/12 01:34:49 Why don't we just use one of the STL util function
H Fung 2013/02/12 02:19:45 I tried to use STLDeleteElements(&controller_->pro
260 controller_->providers_.swap(providers); 261 controller_->providers_.swap(providers);
261 provider1->set_listener(controller_.get()); 262 provider1->set_listener(controller_.get());
262 provider2->set_listener(controller_.get()); 263 provider2->set_listener(controller_.get());
263 264
264 // The providers don't complete synchronously, so listen for "result updated" 265 // The providers don't complete synchronously, so listen for "result updated"
265 // notifications. 266 // notifications.
266 registrar_.Add(this, 267 registrar_.Add(this,
267 chrome::NOTIFICATION_AUTOCOMPLETE_CONTROLLER_RESULT_READY, 268 chrome::NOTIFICATION_AUTOCOMPLETE_CONTROLLER_RESULT_READY,
268 content::Source<AutocompleteController>(controller_.get())); 269 content::Source<AutocompleteController>(controller_.get()));
269 270
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 { AutocompleteMatch::SEARCH_SUGGEST, "chrome.5.57j58j5l2j0l3j59" }, 553 { AutocompleteMatch::SEARCH_SUGGEST, "chrome.5.57j58j5l2j0l3j59" },
553 { AutocompleteMatch::SEARCH_SUGGEST, "chrome.6.57j58j5l2j0l3j59" }, 554 { AutocompleteMatch::SEARCH_SUGGEST, "chrome.6.57j58j5l2j0l3j59" },
554 { AutocompleteMatch::SEARCH_HISTORY, "chrome.7.57j58j5l2j0l3j59" }, 555 { AutocompleteMatch::SEARCH_HISTORY, "chrome.7.57j58j5l2j0l3j59" },
555 }; 556 };
556 SCOPED_TRACE("Multiple matches"); 557 SCOPED_TRACE("Multiple matches");
557 RunAssistedQueryStatsTest(test_data, ARRAYSIZE_UNSAFE(test_data)); 558 RunAssistedQueryStatsTest(test_data, ARRAYSIZE_UNSAFE(test_data));
558 } 559 }
559 } 560 }
560 561
561 TEST_F(AutocompleteProviderTest, GetDestinationURL) { 562 TEST_F(AutocompleteProviderTest, GetDestinationURL) {
562 ResetControllerWithTestProviders(false, NULL, NULL); 563 ResetControllerWithKeywordAndSearchProviders();
563 564
564 // For the destination URL to have aqs parameters for query formulation time 565 // For the destination URL to have aqs parameters for query formulation time
565 // and the field trial triggered bit, many conditions need to be satisfied. 566 // and the field trial triggered bit, many conditions need to be satisfied.
566 AutocompleteMatch match(NULL, 1100, false, 567 AutocompleteMatch match(NULL, 1100, false,
567 AutocompleteMatch::SEARCH_SUGGEST); 568 AutocompleteMatch::SEARCH_SUGGEST);
568 GURL url = controller_-> 569 GURL url = controller_->
569 GetDestinationURL(match, base::TimeDelta::FromMilliseconds(2456)); 570 GetDestinationURL(match, base::TimeDelta::FromMilliseconds(2456));
570 EXPECT_TRUE(url.path().empty()); 571 EXPECT_TRUE(url.path().empty());
571 572
572 // The protocol needs to be https. 573 // The protocol needs to be https.
(...skipping 17 matching lines...) Expand all
590 EXPECT_TRUE(url.path().empty()); 591 EXPECT_TRUE(url.path().empty());
591 592
592 // assisted_query_stats needs to have been previously set. 593 // assisted_query_stats needs to have been previously set.
593 match.search_terms_args->assisted_query_stats = "chrome.0.57j58j5l2j0l3j59"; 594 match.search_terms_args->assisted_query_stats = "chrome.0.57j58j5l2j0l3j59";
594 url = controller_->GetDestinationURL(match, 595 url = controller_->GetDestinationURL(match,
595 base::TimeDelta::FromMilliseconds(2456)); 596 base::TimeDelta::FromMilliseconds(2456));
596 EXPECT_EQ("//aqs=chrome.0.57j58j5l2j0l3j59.2456j0&", url.path()); 597 EXPECT_EQ("//aqs=chrome.0.57j58j5l2j0l3j59.2456j0&", url.path());
597 598
598 // Test field trial triggered bit set. 599 // Test field trial triggered bit set.
599 controller_->search_provider_->field_trial_triggered_in_session_ = true; 600 controller_->search_provider_->field_trial_triggered_in_session_ = true;
601 EXPECT_TRUE(controller_->search_provider_->
Peter Kasting 2013/02/12 01:34:49 Nit: I'd break after ( instead of ->
H Fung 2013/02/12 02:19:45 Done.
602 field_trial_triggered_in_session());
600 url = controller_->GetDestinationURL(match, 603 url = controller_->GetDestinationURL(match,
601 base::TimeDelta::FromMilliseconds(2456)); 604 base::TimeDelta::FromMilliseconds(2456));
602 EXPECT_EQ("//aqs=chrome.0.57j58j5l2j0l3j59.2456j1&", url.path()); 605 EXPECT_EQ("//aqs=chrome.0.57j58j5l2j0l3j59.2456j1&", url.path());
603 } 606 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698