summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sessions/session_service_unittest.cc
diff options
context:
space:
mode:
authoralbertb@google.com <albertb@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-01 18:44:38 +0000
committeralbertb@google.com <albertb@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-01 18:44:38 +0000
commit3acb70efe8e81a9a9851f1b1c700dad3e6d94045 (patch)
treebb50ea9d245a8829b016b7015c74ef91bf93385d /chrome/browser/sessions/session_service_unittest.cc
parent0e5d08b9b0b2476600975106026331488deee938 (diff)
downloadchromium_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.cc34
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));
+}