| Index: chrome/browser/extensions/api/tabs/tabs_api_unittest.cc
|
| diff --git a/chrome/browser/extensions/api/tabs/tabs_api_unittest.cc b/chrome/browser/extensions/api/tabs/tabs_api_unittest.cc
|
| index f8edf1b93711c07c14c804347652f5ab19d5c6fb..f0554b4c773d3d85851a553ddb12f94c2f6140e3 100644
|
| --- a/chrome/browser/extensions/api/tabs/tabs_api_unittest.cc
|
| +++ b/chrome/browser/extensions/api/tabs/tabs_api_unittest.cc
|
| @@ -209,4 +209,61 @@ TEST_F(TabsApiUnitTest, QueryWithHostPermission) {
|
| }
|
| }
|
|
|
| +TEST_F(TabsApiUnitTest, QueryDiscarded) {
|
| + GURL tab_urls[] = {GURL("http://www.google.com"),
|
| + GURL("http://www.example.com")};
|
| +
|
| + // Add web contentses to the browser.
|
| + std::unique_ptr<content::WebContents> web_contentses[arraysize(tab_urls)];
|
| + for (size_t i = 0; i < arraysize(tab_urls); ++i) {
|
| + web_contentses[i].reset(
|
| + content::WebContentsTester::CreateTestWebContents(profile(), nullptr));
|
| + browser()->tab_strip_model()->AppendWebContents(web_contentses[i].get(),
|
| + true);
|
| + content::WebContentsTester* web_contents_tester =
|
| + content::WebContentsTester::For(web_contentses[i].get());
|
| + web_contents_tester->NavigateAndCommit(tab_urls[i]);
|
| + }
|
| +
|
| + // Create the extension.
|
| + scoped_refptr<const Extension> extension =
|
| + ExtensionBuilder()
|
| + .SetManifest(
|
| + DictionaryBuilder()
|
| + .Set("name", "Testing Discarded Property")
|
| + .Set("version", "1.0")
|
| + .Set("manifest_version", 2)
|
| + .Set("permissions", ListBuilder().Append("tabs").Build())
|
| + .Build())
|
| + .Build();
|
| +
|
| + // Get all non discarded tabs.
|
| + {
|
| + const char* kQueryInfo = "[{\"discarded\": false}]";
|
| + std::unique_ptr<base::ListValue> tabs_list(
|
| + RunTabsQueryFunction(browser(), extension.get(), kQueryInfo));
|
| + ASSERT_TRUE(tabs_list);
|
| + ASSERT_EQ(2u, tabs_list->GetSize());
|
| + }
|
| +
|
| + // Get non-discarded tabs with google.com url (testing compound queries).
|
| + {
|
| + const char* kQueryInfo =
|
| + "[{\"discarded\": false, \"url\": \"*://www.google.com/*\"}]";
|
| + std::unique_ptr<base::ListValue> tabs_list(
|
| + RunTabsQueryFunction(browser(), extension.get(), kQueryInfo));
|
| + ASSERT_TRUE(tabs_list);
|
| + ASSERT_EQ(1u, tabs_list->GetSize());
|
| + }
|
| +
|
| + // Query all discarded tabs.
|
| + {
|
| + const char* kQueryInfo = "[{\"discarded\": true}]";
|
| + std::unique_ptr<base::ListValue> tabs_list(
|
| + RunTabsQueryFunction(browser(), extension.get(), kQueryInfo));
|
| + ASSERT_TRUE(tabs_list);
|
| + ASSERT_EQ(0u, tabs_list->GetSize());
|
| + }
|
| +}
|
| +
|
| } // namespace extensions
|
|
|