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

Side by Side Diff: chrome/browser/history/history_unittest.cc

Issue 151963002: Remove duplicated code from sync related unit tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed a const qualifier. Created 6 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
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 // History unit tests come in two flavors: 5 // History unit tests come in two flavors:
6 // 6 //
7 // 1. The more complicated style is that the unit test creates a full history 7 // 1. The more complicated style is that the unit test creates a full history
8 // service. This spawns a background thread for the history backend, and 8 // service. This spawns a background thread for the history backend, and
9 // all communication is asynchronous. This is useful for testing more 9 // all communication is asynchronous. This is useful for testing more
10 // complicated things or end-to-end behavior. 10 // complicated things or end-to-end behavior.
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 #include "chrome/browser/history/page_usage_data.h" 53 #include "chrome/browser/history/page_usage_data.h"
54 #include "chrome/common/chrome_constants.h" 54 #include "chrome/common/chrome_constants.h"
55 #include "chrome/common/chrome_paths.h" 55 #include "chrome/common/chrome_paths.h"
56 #include "chrome/common/thumbnail_score.h" 56 #include "chrome/common/thumbnail_score.h"
57 #include "chrome/tools/profiles/thumbnail-inl.h" 57 #include "chrome/tools/profiles/thumbnail-inl.h"
58 #include "content/public/browser/download_item.h" 58 #include "content/public/browser/download_item.h"
59 #include "content/public/browser/notification_details.h" 59 #include "content/public/browser/notification_details.h"
60 #include "content/public/browser/notification_source.h" 60 #include "content/public/browser/notification_source.h"
61 #include "sql/connection.h" 61 #include "sql/connection.h"
62 #include "sql/statement.h" 62 #include "sql/statement.h"
63 #include "sync/api/fake_sync_change_processor.h"
63 #include "sync/api/sync_change.h" 64 #include "sync/api/sync_change.h"
64 #include "sync/api/sync_change_processor.h" 65 #include "sync/api/sync_change_processor.h"
66 #include "sync/api/sync_change_processor_wrapper_for_test.h"
65 #include "sync/api/sync_error.h" 67 #include "sync/api/sync_error.h"
66 #include "sync/api/sync_error_factory.h" 68 #include "sync/api/sync_error_factory.h"
67 #include "sync/api/sync_merge_result.h" 69 #include "sync/api/sync_merge_result.h"
68 #include "sync/protocol/history_delete_directive_specifics.pb.h" 70 #include "sync/protocol/history_delete_directive_specifics.pb.h"
69 #include "sync/protocol/sync.pb.h" 71 #include "sync/protocol/sync.pb.h"
70 #include "testing/gtest/include/gtest/gtest.h" 72 #include "testing/gtest/include/gtest/gtest.h"
71 #include "third_party/skia/include/core/SkBitmap.h" 73 #include "third_party/skia/include/core/SkBitmap.h"
72 #include "ui/gfx/codec/jpeg_codec.h" 74 #include "ui/gfx/codec/jpeg_codec.h"
73 75
74 using base::Time; 76 using base::Time;
(...skipping 1455 matching lines...) Expand 10 before | Expand all | Expand 10 after
1530 CancelableRequestConsumerT<int, 0> request_consumer; 1532 CancelableRequestConsumerT<int, 0> request_consumer;
1531 scoped_refptr<HistoryDBTaskImpl> task(new HistoryDBTaskImpl()); 1533 scoped_refptr<HistoryDBTaskImpl> task(new HistoryDBTaskImpl());
1532 history_service_->ScheduleDBTask(task.get(), &request_consumer); 1534 history_service_->ScheduleDBTask(task.get(), &request_consumer);
1533 request_consumer.CancelAllRequests(); 1535 request_consumer.CancelAllRequests();
1534 CleanupHistoryService(); 1536 CleanupHistoryService();
1535 // WARNING: history has now been deleted. 1537 // WARNING: history has now been deleted.
1536 history_service_.reset(); 1538 history_service_.reset();
1537 ASSERT_FALSE(task->done_invoked); 1539 ASSERT_FALSE(task->done_invoked);
1538 } 1540 }
1539 1541
1540 // Dummy SyncChangeProcessor used to help review what SyncChanges are pushed
1541 // back up to Sync.
1542 //
1543 // TODO(akalin): Unify all the various test implementations of
1544 // syncer::SyncChangeProcessor.
1545 class TestChangeProcessor : public syncer::SyncChangeProcessor {
1546 public:
1547 TestChangeProcessor() {}
1548 virtual ~TestChangeProcessor() {}
1549
1550 virtual syncer::SyncError ProcessSyncChanges(
1551 const tracked_objects::Location& from_here,
1552 const syncer::SyncChangeList& change_list) OVERRIDE {
1553 changes_.insert(changes_.end(), change_list.begin(), change_list.end());
1554 return syncer::SyncError();
1555 }
1556
1557 virtual syncer::SyncDataList GetAllSyncData(syncer::ModelType type) const
1558 OVERRIDE {
1559 return syncer::SyncDataList();
1560 }
1561
1562 const syncer::SyncChangeList& GetChanges() const {
1563 return changes_;
1564 }
1565
1566 private:
1567 syncer::SyncChangeList changes_;
1568
1569 DISALLOW_COPY_AND_ASSIGN(TestChangeProcessor);
1570 };
1571
1572 // SyncChangeProcessor implementation that delegates to another one.
1573 // This is necessary since most things expect a
1574 // scoped_ptr<SyncChangeProcessor>.
1575 //
1576 // TODO(akalin): Unify this too.
1577 class SyncChangeProcessorDelegate : public syncer::SyncChangeProcessor {
1578 public:
1579 explicit SyncChangeProcessorDelegate(syncer::SyncChangeProcessor* recipient)
1580 : recipient_(recipient) {
1581 DCHECK(recipient_);
1582 }
1583
1584 virtual ~SyncChangeProcessorDelegate() {}
1585
1586 // syncer::SyncChangeProcessor implementation.
1587 virtual syncer::SyncError ProcessSyncChanges(
1588 const tracked_objects::Location& from_here,
1589 const syncer::SyncChangeList& change_list) OVERRIDE {
1590 return recipient_->ProcessSyncChanges(from_here, change_list);
1591 }
1592
1593 virtual syncer::SyncDataList GetAllSyncData(syncer::ModelType type) const
1594 OVERRIDE {
1595 return recipient_->GetAllSyncData(type);
1596 }
1597
1598 private:
1599 // The recipient of all sync changes.
1600 syncer::SyncChangeProcessor* const recipient_;
1601
1602 DISALLOW_COPY_AND_ASSIGN(SyncChangeProcessorDelegate);
1603 };
1604
1605 // Create a local delete directive and process it while sync is 1542 // Create a local delete directive and process it while sync is
1606 // online, and then when offline. The delete directive should be sent to sync, 1543 // online, and then when offline. The delete directive should be sent to sync,
1607 // no error should be returned for the first time, and an error should be 1544 // no error should be returned for the first time, and an error should be
1608 // returned for the second time. 1545 // returned for the second time.
1609 TEST_F(HistoryTest, ProcessLocalDeleteDirectiveSyncOnline) { 1546 TEST_F(HistoryTest, ProcessLocalDeleteDirectiveSyncOnline) {
1610 ASSERT_TRUE(history_service_.get()); 1547 ASSERT_TRUE(history_service_.get());
1611 1548
1612 const GURL test_url("http://www.google.com/"); 1549 const GURL test_url("http://www.google.com/");
1613 for (int64 i = 1; i <= 10; ++i) { 1550 for (int64 i = 1; i <= 10; ++i) {
1614 base::Time t = 1551 base::Time t =
1615 base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(i); 1552 base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(i);
1616 history_service_->AddPage(test_url, t, NULL, 0, GURL(), 1553 history_service_->AddPage(test_url, t, NULL, 0, GURL(),
1617 history::RedirectList(), 1554 history::RedirectList(),
1618 content::PAGE_TRANSITION_LINK, 1555 content::PAGE_TRANSITION_LINK,
1619 history::SOURCE_BROWSED, false); 1556 history::SOURCE_BROWSED, false);
1620 } 1557 }
1621 1558
1622 sync_pb::HistoryDeleteDirectiveSpecifics delete_directive; 1559 sync_pb::HistoryDeleteDirectiveSpecifics delete_directive;
1623 sync_pb::GlobalIdDirective* global_id_directive = 1560 sync_pb::GlobalIdDirective* global_id_directive =
1624 delete_directive.mutable_global_id_directive(); 1561 delete_directive.mutable_global_id_directive();
1625 global_id_directive->add_global_id( 1562 global_id_directive->add_global_id(
1626 (base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(1)) 1563 (base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(1))
1627 .ToInternalValue()); 1564 .ToInternalValue());
1628 1565
1629 TestChangeProcessor change_processor; 1566 syncer::FakeSyncChangeProcessor change_processor;
1630 1567
1631 EXPECT_FALSE( 1568 EXPECT_FALSE(
1632 history_service_->MergeDataAndStartSyncing( 1569 history_service_->MergeDataAndStartSyncing(
1633 syncer::HISTORY_DELETE_DIRECTIVES, 1570 syncer::HISTORY_DELETE_DIRECTIVES,
1634 syncer::SyncDataList(), 1571 syncer::SyncDataList(),
1635 scoped_ptr<syncer::SyncChangeProcessor>( 1572 scoped_ptr<syncer::SyncChangeProcessor>(
1636 new SyncChangeProcessorDelegate(&change_processor)), 1573 new syncer::SyncChangeProcessorWrapperForTest(
1637 scoped_ptr<syncer::SyncErrorFactory>()).error().IsSet()); 1574 &change_processor)),
1575 scoped_ptr<syncer::SyncErrorFactory>())
1576 .error()
1577 .IsSet());
1638 1578
1639 syncer::SyncError err = 1579 syncer::SyncError err =
1640 history_service_->ProcessLocalDeleteDirective(delete_directive); 1580 history_service_->ProcessLocalDeleteDirective(delete_directive);
1641 EXPECT_FALSE(err.IsSet()); 1581 EXPECT_FALSE(err.IsSet());
1642 EXPECT_EQ(1u, change_processor.GetChanges().size()); 1582 EXPECT_EQ(1u, change_processor.changes().size());
1643 1583
1644 history_service_->StopSyncing(syncer::HISTORY_DELETE_DIRECTIVES); 1584 history_service_->StopSyncing(syncer::HISTORY_DELETE_DIRECTIVES);
1645 err = history_service_->ProcessLocalDeleteDirective(delete_directive); 1585 err = history_service_->ProcessLocalDeleteDirective(delete_directive);
1646 EXPECT_TRUE(err.IsSet()); 1586 EXPECT_TRUE(err.IsSet());
1647 EXPECT_EQ(1u, change_processor.GetChanges().size()); 1587 EXPECT_EQ(1u, change_processor.changes().size());
1648 } 1588 }
1649 1589
1650 // Closure function that runs periodically to check result of delete directive 1590 // Closure function that runs periodically to check result of delete directive
1651 // processing. Stop when timeout or processing ends indicated by the creation 1591 // processing. Stop when timeout or processing ends indicated by the creation
1652 // of sync changes. 1592 // of sync changes.
1653 void CheckDirectiveProcessingResult( 1593 void CheckDirectiveProcessingResult(
1654 Time timeout, const TestChangeProcessor* change_processor, 1594 Time timeout,
1595 const syncer::FakeSyncChangeProcessor* change_processor,
1655 uint32 num_changes) { 1596 uint32 num_changes) {
1656 if (base::Time::Now() > timeout || 1597 if (base::Time::Now() > timeout ||
1657 change_processor->GetChanges().size() >= num_changes) { 1598 change_processor->changes().size() >= num_changes) {
1658 return; 1599 return;
1659 } 1600 }
1660 1601
1661 base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(100)); 1602 base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(100));
1662 base::MessageLoop::current()->PostTask( 1603 base::MessageLoop::current()->PostTask(
1663 FROM_HERE, 1604 FROM_HERE,
1664 base::Bind(&CheckDirectiveProcessingResult, timeout, 1605 base::Bind(&CheckDirectiveProcessingResult, timeout,
1665 change_processor, num_changes)); 1606 change_processor, num_changes));
1666 } 1607 }
1667 1608
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1700 // 2nd directive. 1641 // 2nd directive.
1701 global_id_directive->Clear(); 1642 global_id_directive->Clear();
1702 global_id_directive->add_global_id( 1643 global_id_directive->add_global_id(
1703 (base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(17)) 1644 (base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(17))
1704 .ToInternalValue()); 1645 .ToInternalValue());
1705 global_id_directive->set_start_time_usec(13); 1646 global_id_directive->set_start_time_usec(13);
1706 global_id_directive->set_end_time_usec(19); 1647 global_id_directive->set_end_time_usec(19);
1707 directives.push_back( 1648 directives.push_back(
1708 syncer::SyncData::CreateRemoteData(2, entity_specs, base::Time())); 1649 syncer::SyncData::CreateRemoteData(2, entity_specs, base::Time()));
1709 1650
1710 TestChangeProcessor change_processor; 1651 syncer::FakeSyncChangeProcessor change_processor;
1711 EXPECT_FALSE( 1652 EXPECT_FALSE(
1712 history_service_->MergeDataAndStartSyncing( 1653 history_service_->MergeDataAndStartSyncing(
1713 syncer::HISTORY_DELETE_DIRECTIVES, 1654 syncer::HISTORY_DELETE_DIRECTIVES,
1714 directives, 1655 directives,
1715 scoped_ptr<syncer::SyncChangeProcessor>( 1656 scoped_ptr<syncer::SyncChangeProcessor>(
1716 new SyncChangeProcessorDelegate(&change_processor)), 1657 new syncer::SyncChangeProcessorWrapperForTest(
1717 scoped_ptr<syncer::SyncErrorFactory>()).error().IsSet()); 1658 &change_processor)),
1659 scoped_ptr<syncer::SyncErrorFactory>())
1660 .error()
1661 .IsSet());
1718 1662
1719 // Inject a task to check status and keep message loop filled before directive 1663 // Inject a task to check status and keep message loop filled before directive
1720 // processing finishes. 1664 // processing finishes.
1721 base::MessageLoop::current()->PostTask( 1665 base::MessageLoop::current()->PostTask(
1722 FROM_HERE, 1666 FROM_HERE,
1723 base::Bind(&CheckDirectiveProcessingResult, 1667 base::Bind(&CheckDirectiveProcessingResult,
1724 base::Time::Now() + base::TimeDelta::FromSeconds(10), 1668 base::Time::Now() + base::TimeDelta::FromSeconds(10),
1725 &change_processor, 2)); 1669 &change_processor, 2));
1726 base::MessageLoop::current()->RunUntilIdle(); 1670 base::MessageLoop::current()->RunUntilIdle();
1727 EXPECT_TRUE(QueryURL(history_service_.get(), test_url)); 1671 EXPECT_TRUE(QueryURL(history_service_.get(), test_url));
1728 ASSERT_EQ(5, query_url_row_.visit_count()); 1672 ASSERT_EQ(5, query_url_row_.visit_count());
1729 EXPECT_EQ(base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(1), 1673 EXPECT_EQ(base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(1),
1730 query_url_visits_[0].visit_time); 1674 query_url_visits_[0].visit_time);
1731 EXPECT_EQ(base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(2), 1675 EXPECT_EQ(base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(2),
1732 query_url_visits_[1].visit_time); 1676 query_url_visits_[1].visit_time);
1733 EXPECT_EQ(base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(11), 1677 EXPECT_EQ(base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(11),
1734 query_url_visits_[2].visit_time); 1678 query_url_visits_[2].visit_time);
1735 EXPECT_EQ(base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(12), 1679 EXPECT_EQ(base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(12),
1736 query_url_visits_[3].visit_time); 1680 query_url_visits_[3].visit_time);
1737 EXPECT_EQ(base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(20), 1681 EXPECT_EQ(base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(20),
1738 query_url_visits_[4].visit_time); 1682 query_url_visits_[4].visit_time);
1739 1683
1740 // Expect two sync changes for deleting processed directives. 1684 // Expect two sync changes for deleting processed directives.
1741 const syncer::SyncChangeList& sync_changes = change_processor.GetChanges(); 1685 const syncer::SyncChangeList& sync_changes = change_processor.changes();
1742 ASSERT_EQ(2u, sync_changes.size()); 1686 ASSERT_EQ(2u, sync_changes.size());
1743 EXPECT_EQ(syncer::SyncChange::ACTION_DELETE, sync_changes[0].change_type()); 1687 EXPECT_EQ(syncer::SyncChange::ACTION_DELETE, sync_changes[0].change_type());
1744 EXPECT_EQ(1, sync_changes[0].sync_data().GetRemoteId()); 1688 EXPECT_EQ(1, sync_changes[0].sync_data().GetRemoteId());
1745 EXPECT_EQ(syncer::SyncChange::ACTION_DELETE, sync_changes[1].change_type()); 1689 EXPECT_EQ(syncer::SyncChange::ACTION_DELETE, sync_changes[1].change_type());
1746 EXPECT_EQ(2, sync_changes[1].sync_data().GetRemoteId()); 1690 EXPECT_EQ(2, sync_changes[1].sync_data().GetRemoteId());
1747 } 1691 }
1748 1692
1749 // Create delete directives for time ranges. The expected entries should be 1693 // Create delete directives for time ranges. The expected entries should be
1750 // deleted. 1694 // deleted.
1751 TEST_F(HistoryTest, ProcessTimeRangeDeleteDirective) { 1695 TEST_F(HistoryTest, ProcessTimeRangeDeleteDirective) {
(...skipping 24 matching lines...) Expand all
1776 base::Time())); 1720 base::Time()));
1777 1721
1778 // 2nd directive. 1722 // 2nd directive.
1779 time_range_directive->Clear(); 1723 time_range_directive->Clear();
1780 time_range_directive->set_start_time_usec(8); 1724 time_range_directive->set_start_time_usec(8);
1781 time_range_directive->set_end_time_usec(10); 1725 time_range_directive->set_end_time_usec(10);
1782 directives.push_back(syncer::SyncData::CreateRemoteData(2, 1726 directives.push_back(syncer::SyncData::CreateRemoteData(2,
1783 entity_specs, 1727 entity_specs,
1784 base::Time())); 1728 base::Time()));
1785 1729
1786 TestChangeProcessor change_processor; 1730 syncer::FakeSyncChangeProcessor change_processor;
1787 EXPECT_FALSE( 1731 EXPECT_FALSE(
1788 history_service_->MergeDataAndStartSyncing( 1732 history_service_->MergeDataAndStartSyncing(
1789 syncer::HISTORY_DELETE_DIRECTIVES, 1733 syncer::HISTORY_DELETE_DIRECTIVES,
1790 directives, 1734 directives,
1791 scoped_ptr<syncer::SyncChangeProcessor>( 1735 scoped_ptr<syncer::SyncChangeProcessor>(
1792 new SyncChangeProcessorDelegate(&change_processor)), 1736 new syncer::SyncChangeProcessorWrapperForTest(
1793 scoped_ptr<syncer::SyncErrorFactory>()).error().IsSet()); 1737 &change_processor)),
1738 scoped_ptr<syncer::SyncErrorFactory>())
1739 .error()
1740 .IsSet());
1794 1741
1795 // Inject a task to check status and keep message loop filled before 1742 // Inject a task to check status and keep message loop filled before
1796 // directive processing finishes. 1743 // directive processing finishes.
1797 base::MessageLoop::current()->PostTask( 1744 base::MessageLoop::current()->PostTask(
1798 FROM_HERE, 1745 FROM_HERE,
1799 base::Bind(&CheckDirectiveProcessingResult, 1746 base::Bind(&CheckDirectiveProcessingResult,
1800 base::Time::Now() + base::TimeDelta::FromSeconds(10), 1747 base::Time::Now() + base::TimeDelta::FromSeconds(10),
1801 &change_processor, 2)); 1748 &change_processor, 2));
1802 base::MessageLoop::current()->RunUntilIdle(); 1749 base::MessageLoop::current()->RunUntilIdle();
1803 EXPECT_TRUE(QueryURL(history_service_.get(), test_url)); 1750 EXPECT_TRUE(QueryURL(history_service_.get(), test_url));
1804 ASSERT_EQ(3, query_url_row_.visit_count()); 1751 ASSERT_EQ(3, query_url_row_.visit_count());
1805 EXPECT_EQ(base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(1), 1752 EXPECT_EQ(base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(1),
1806 query_url_visits_[0].visit_time); 1753 query_url_visits_[0].visit_time);
1807 EXPECT_EQ(base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(6), 1754 EXPECT_EQ(base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(6),
1808 query_url_visits_[1].visit_time); 1755 query_url_visits_[1].visit_time);
1809 EXPECT_EQ(base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(7), 1756 EXPECT_EQ(base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(7),
1810 query_url_visits_[2].visit_time); 1757 query_url_visits_[2].visit_time);
1811 1758
1812 // Expect two sync changes for deleting processed directives. 1759 // Expect two sync changes for deleting processed directives.
1813 const syncer::SyncChangeList& sync_changes = change_processor.GetChanges(); 1760 const syncer::SyncChangeList& sync_changes = change_processor.changes();
1814 ASSERT_EQ(2u, sync_changes.size()); 1761 ASSERT_EQ(2u, sync_changes.size());
1815 EXPECT_EQ(syncer::SyncChange::ACTION_DELETE, sync_changes[0].change_type()); 1762 EXPECT_EQ(syncer::SyncChange::ACTION_DELETE, sync_changes[0].change_type());
1816 EXPECT_EQ(1, sync_changes[0].sync_data().GetRemoteId()); 1763 EXPECT_EQ(1, sync_changes[0].sync_data().GetRemoteId());
1817 EXPECT_EQ(syncer::SyncChange::ACTION_DELETE, sync_changes[1].change_type()); 1764 EXPECT_EQ(syncer::SyncChange::ACTION_DELETE, sync_changes[1].change_type());
1818 EXPECT_EQ(2, sync_changes[1].sync_data().GetRemoteId()); 1765 EXPECT_EQ(2, sync_changes[1].sync_data().GetRemoteId());
1819 } 1766 }
1820 1767
1821 TEST_F(HistoryBackendDBTest, MigratePresentations) { 1768 TEST_F(HistoryBackendDBTest, MigratePresentations) {
1822 // Create the db we want. Use 22 since segments didn't change in that time 1769 // Create the db we want. Use 22 since segments didn't change in that time
1823 // frame. 1770 // frame.
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1881 std::vector<PageUsageData*> results; 1828 std::vector<PageUsageData*> results;
1882 db_->QuerySegmentUsage(segment_time, 10, &results); 1829 db_->QuerySegmentUsage(segment_time, 10, &results);
1883 ASSERT_EQ(1u, results.size()); 1830 ASSERT_EQ(1u, results.size());
1884 EXPECT_EQ(url, results[0]->GetURL()); 1831 EXPECT_EQ(url, results[0]->GetURL());
1885 EXPECT_EQ(segment_id, results[0]->GetID()); 1832 EXPECT_EQ(segment_id, results[0]->GetID());
1886 EXPECT_EQ(title, results[0]->GetTitle()); 1833 EXPECT_EQ(title, results[0]->GetTitle());
1887 STLDeleteElements(&results); 1834 STLDeleteElements(&results);
1888 } 1835 }
1889 1836
1890 } // namespace history 1837 } // namespace history
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_service_unittest.cc ('k') | chrome/browser/history/typed_url_syncable_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698