diff options
author | albertb@google.com <albertb@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-01 18:44:38 +0000 |
---|---|---|
committer | albertb@google.com <albertb@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-01 18:44:38 +0000 |
commit | 3acb70efe8e81a9a9851f1b1c700dad3e6d94045 (patch) | |
tree | bb50ea9d245a8829b016b7015c74ef91bf93385d /chrome/browser/sessions/session_service_unittest.cc | |
parent | 0e5d08b9b0b2476600975106026331488deee938 (diff) | |
download | chromium_src-3acb70efe8e81a9a9851f1b1c700dad3e6d94045.zip chromium_src-3acb70efe8e81a9a9851f1b1c700dad3e6d94045.tar.gz chromium_src-3acb70efe8e81a9a9851f1b1c700dad3e6d94045.tar.bz2 |
Added a new method to SessionService that returns a snapshot of the current
session. The snapshot is computed directly from memory or, if there are
pending closed windows, by reading the session commands from disk.
BUG=35040
TEST=unit tests
Review URL: http://codereview.chromium.org/661055
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40284 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sessions/session_service_unittest.cc')
-rw-r--r-- | chrome/browser/sessions/session_service_unittest.cc | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/chrome/browser/sessions/session_service_unittest.cc b/chrome/browser/sessions/session_service_unittest.cc index 8d2a9da..20451b6 100644 --- a/chrome/browser/sessions/session_service_unittest.cc +++ b/chrome/browser/sessions/session_service_unittest.cc @@ -16,15 +16,17 @@ #include "chrome/browser/sessions/session_types.h" #include "chrome/browser/tab_contents/navigation_entry.h" #include "chrome/common/chrome_paths.h" +#include "chrome/test/browser_with_test_window_test.h" #include "chrome/test/file_test_utils.h" #include "testing/gtest/include/gtest/gtest.h" -class SessionServiceTest : public testing::Test { +class SessionServiceTest : public BrowserWithTestWindowTest { public: SessionServiceTest() : window_bounds(0, 1, 2, 3) {} protected: virtual void SetUp() { + BrowserWithTestWindowTest::SetUp(); std::string b = Int64ToString(base::Time::Now().ToInternalValue()); PathService::Get(base::DIR_TEMP, &path_); @@ -585,3 +587,33 @@ TEST_F(SessionServiceTest, PinnedTrue) { EXPECT_TRUE(CreateAndWriteSessionWithOneTab(true, true)); } + +class GetCurrentSessionCallbackHandler { + public: + void OnGotSession(int handle, std::vector<SessionWindow*>* windows) { + EXPECT_EQ(1U, windows->size()); + EXPECT_EQ(2U, (*windows)[0]->tabs.size()); + EXPECT_EQ(2U, (*windows)[0]->tabs[0]->navigations.size()); + EXPECT_EQ(GURL("http://bar/1"), + (*windows)[0]->tabs[0]->navigations[0].url()); + EXPECT_EQ(GURL("http://bar/2"), + (*windows)[0]->tabs[0]->navigations[1].url()); + EXPECT_EQ(2U, (*windows)[0]->tabs[1]->navigations.size()); + EXPECT_EQ(GURL("http://foo/1"), + (*windows)[0]->tabs[1]->navigations[0].url()); + EXPECT_EQ(GURL("http://foo/2"), + (*windows)[0]->tabs[1]->navigations[1].url()); + } +}; + +TEST_F(SessionServiceTest, GetCurrentSession) { + AddTab(browser(), GURL("http://foo/1")); + NavigateAndCommitActiveTab(GURL("http://foo/2")); + AddTab(browser(), GURL("http://bar/1")); + NavigateAndCommitActiveTab(GURL("http://bar/2")); + + CancelableRequestConsumer consumer; + GetCurrentSessionCallbackHandler handler; + service()->GetCurrentSession(&consumer, + NewCallback(&handler, &GetCurrentSessionCallbackHandler::OnGotSession)); +} |