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

Unified Diff: trunk/src/chrome/browser/extensions/api/notifications/notifications_apitest.cc

Issue 296113009: Revert 272211 "Allow high-res bitmaps to be passed in from notif..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: trunk/src/chrome/browser/extensions/api/notifications/notifications_apitest.cc
===================================================================
--- trunk/src/chrome/browser/extensions/api/notifications/notifications_apitest.cc (revision 272269)
+++ trunk/src/chrome/browser/extensions/api/notifications/notifications_apitest.cc (working copy)
@@ -10,8 +10,6 @@
#include "chrome/browser/extensions/api/notifications/notifications_api.h"
#include "chrome/browser/extensions/extension_apitest.h"
#include "chrome/browser/extensions/extension_function_test_utils.h"
-#include "chrome/browser/notifications/notification.h"
-#include "chrome/browser/notifications/notification_ui_manager.h"
#include "content/public/browser/notification_service.h"
#include "content/public/test/test_utils.h"
#include "extensions/common/features/feature.h"
@@ -43,10 +41,411 @@
} // namespace
-IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestBasicUsage) {
- ASSERT_TRUE(RunExtensionTest("notifications/api/basic_usage")) << message_;
+IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestIdUsage) {
+ // Create a new notification. A lingering output of this block is the
+ // notifications ID, which we'll use in later parts of this test.
+ std::string notification_id;
+ scoped_refptr<Extension> empty_extension(utils::CreateEmptyExtension());
+ {
+ scoped_refptr<extensions::NotificationsCreateFunction>
+ notification_function(
+ new extensions::NotificationsCreateFunction());
+
+ notification_function->set_extension(empty_extension.get());
+ notification_function->set_has_callback(true);
+
+ scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult(
+ notification_function.get(),
+ "[\"\", " // Empty string: ask API to generate ID
+ "{"
+ "\"type\": \"basic\","
+ "\"iconUrl\": \"an/image/that/does/not/exist.png\","
+ "\"title\": \"Attention!\","
+ "\"message\": \"Check out Cirque du Soleil\""
+ "}]",
+ browser(),
+ utils::NONE));
+
+ ASSERT_EQ(base::Value::TYPE_STRING, result->GetType());
+ ASSERT_TRUE(result->GetAsString(&notification_id));
+ ASSERT_TRUE(notification_id.length() > 0);
+ }
+
+ // Update the existing notification.
+ {
+ scoped_refptr<extensions::NotificationsUpdateFunction>
+ notification_function(
+ new extensions::NotificationsUpdateFunction());
+
+ notification_function->set_extension(empty_extension.get());
+ notification_function->set_has_callback(true);
+
+ scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult(
+ notification_function.get(),
+ "[\"" + notification_id +
+ "\", "
+ "{"
+ "\"type\": \"basic\","
+ "\"iconUrl\": \"an/image/that/does/not/exist.png\","
+ "\"title\": \"Attention!\","
+ "\"message\": \"Too late! The show ended yesterday\""
+ "}]",
+ browser(),
+ utils::NONE));
+
+ ASSERT_EQ(base::Value::TYPE_BOOLEAN, result->GetType());
+ bool copy_bool_value = false;
+ ASSERT_TRUE(result->GetAsBoolean(&copy_bool_value));
+ ASSERT_TRUE(copy_bool_value);
+
+ // TODO(miket): add a testing method to query the message from the
+ // displayed notification, and assert it matches the updated message.
+ //
+ // TODO(miket): add a method to count the number of outstanding
+ // notifications, and confirm it remains at one at this point.
+ }
+
+ // Update a nonexistent notification.
+ {
+ scoped_refptr<extensions::NotificationsUpdateFunction>
+ notification_function(
+ new extensions::NotificationsUpdateFunction());
+
+ notification_function->set_extension(empty_extension.get());
+ notification_function->set_has_callback(true);
+
+ scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult(
+ notification_function.get(),
+ "[\"xxxxxxxxxxxx\", "
+ "{"
+ "\"type\": \"basic\","
+ "\"iconUrl\": \"an/image/that/does/not/exist.png\","
+ "\"title\": \"!\","
+ "\"message\": \"!\""
+ "}]",
+ browser(),
+ utils::NONE));
+
+ ASSERT_EQ(base::Value::TYPE_BOOLEAN, result->GetType());
+ bool copy_bool_value = false;
+ ASSERT_TRUE(result->GetAsBoolean(&copy_bool_value));
+ ASSERT_FALSE(copy_bool_value);
+ }
+
+ // Clear a nonexistent notification.
+ {
+ scoped_refptr<extensions::NotificationsClearFunction>
+ notification_function(
+ new extensions::NotificationsClearFunction());
+
+ notification_function->set_extension(empty_extension.get());
+ notification_function->set_has_callback(true);
+
+ scoped_ptr<base::Value> result(
+ utils::RunFunctionAndReturnSingleResult(notification_function.get(),
+ "[\"xxxxxxxxxxx\"]",
+ browser(),
+ utils::NONE));
+
+ ASSERT_EQ(base::Value::TYPE_BOOLEAN, result->GetType());
+ bool copy_bool_value = false;
+ ASSERT_TRUE(result->GetAsBoolean(&copy_bool_value));
+ ASSERT_FALSE(copy_bool_value);
+ }
+
+ // Clear the notification we created.
+ {
+ scoped_refptr<extensions::NotificationsClearFunction>
+ notification_function(
+ new extensions::NotificationsClearFunction());
+
+ notification_function->set_extension(empty_extension.get());
+ notification_function->set_has_callback(true);
+
+ scoped_ptr<base::Value> result(
+ utils::RunFunctionAndReturnSingleResult(notification_function.get(),
+ "[\"" + notification_id + "\"]",
+ browser(),
+ utils::NONE));
+
+ ASSERT_EQ(base::Value::TYPE_BOOLEAN, result->GetType());
+ bool copy_bool_value = false;
+ ASSERT_TRUE(result->GetAsBoolean(&copy_bool_value));
+ ASSERT_TRUE(copy_bool_value);
+ }
}
+IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestBaseFormatNotification) {
+ scoped_refptr<Extension> empty_extension(utils::CreateEmptyExtension());
+
+ // Create a new notification with the minimum required properties.
+ {
+ scoped_refptr<extensions::NotificationsCreateFunction>
+ notification_create_function(
+ new extensions::NotificationsCreateFunction());
+ notification_create_function->set_extension(empty_extension.get());
+ notification_create_function->set_has_callback(true);
+
+ scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult(
+ notification_create_function.get(),
+ "[\"\", "
+ "{"
+ "\"type\": \"basic\","
+ "\"iconUrl\": \"an/image/that/does/not/exist.png\","
+ "\"title\": \"Attention!\","
+ "\"message\": \"Check out Cirque du Soleil\""
+ "}]",
+ browser(),
+ utils::NONE));
+
+ std::string notification_id;
+ ASSERT_EQ(base::Value::TYPE_STRING, result->GetType());
+ ASSERT_TRUE(result->GetAsString(&notification_id));
+ ASSERT_TRUE(notification_id.length() > 0);
+ }
+
+ // Create another new notification with more than the required properties.
+ {
+ scoped_refptr<extensions::NotificationsCreateFunction>
+ notification_create_function(
+ new extensions::NotificationsCreateFunction());
+ notification_create_function->set_extension(empty_extension.get());
+ notification_create_function->set_has_callback(true);
+
+ scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult(
+ notification_create_function.get(),
+ "[\"\", "
+ "{"
+ "\"type\": \"basic\","
+ "\"iconUrl\": \"an/image/that/does/not/exist.png\","
+ "\"title\": \"Attention!\","
+ "\"message\": \"Check out Cirque du Soleil\","
+ "\"priority\": 1,"
+ "\"eventTime\": 1234567890.12345678,"
+ "\"buttons\": ["
+ " {"
+ " \"title\": \"Up\","
+ " \"iconUrl\":\"http://www.google.com/logos/2012/\""
+ " },"
+ " {"
+ " \"title\": \"Down\"" // note: no iconUrl
+ " }"
+ "],"
+ "\"expandedMessage\": \"This is a longer expanded message.\","
+ "\"imageUrl\": \"http://www.google.com/logos/2012/election12-hp.jpg\""
+ "}]",
+ browser(),
+ utils::NONE));
+
+ std::string notification_id;
+ ASSERT_EQ(base::Value::TYPE_STRING, result->GetType());
+ ASSERT_TRUE(result->GetAsString(&notification_id));
+ ASSERT_TRUE(notification_id.length() > 0);
+ }
+
+ // Error case: missing type property.
+ {
+ scoped_refptr<extensions::NotificationsCreateFunction>
+ notification_create_function(
+ new extensions::NotificationsCreateFunction());
+ notification_create_function->set_extension(empty_extension.get());
+ notification_create_function->set_has_callback(true);
+
+ utils::RunFunction(
+ notification_create_function.get(),
+ "[\"\", "
+ "{"
+ "\"iconUrl\": \"an/image/that/does/not/exist.png\","
+ "\"title\": \"Attention!\","
+ "\"message\": \"Check out Cirque du Soleil\""
+ "}]",
+ browser(),
+ utils::NONE);
+
+ EXPECT_FALSE(notification_create_function->GetError().empty());
+ }
+
+ // Error case: missing iconUrl property.
+ {
+ scoped_refptr<extensions::NotificationsCreateFunction>
+ notification_create_function(
+ new extensions::NotificationsCreateFunction());
+ notification_create_function->set_extension(empty_extension.get());
+ notification_create_function->set_has_callback(true);
+
+ utils::RunFunction(
+ notification_create_function.get(),
+ "[\"\", "
+ "{"
+ "\"type\": \"basic\","
+ "\"title\": \"Attention!\","
+ "\"message\": \"Check out Cirque du Soleil\""
+ "}]",
+ browser(),
+ utils::NONE);
+
+ EXPECT_FALSE(notification_create_function->GetError().empty());
+ }
+
+ // Error case: missing title property.
+ {
+ scoped_refptr<extensions::NotificationsCreateFunction>
+ notification_create_function(
+ new extensions::NotificationsCreateFunction());
+ notification_create_function->set_extension(empty_extension.get());
+ notification_create_function->set_has_callback(true);
+
+ utils::RunFunction(
+ notification_create_function.get(),
+ "[\"\", "
+ "{"
+ "\"type\": \"basic\","
+ "\"iconUrl\": \"an/image/that/does/not/exist.png\","
+ "\"message\": \"Check out Cirque du Soleil\""
+ "}]",
+ browser(),
+ utils::NONE);
+
+ EXPECT_FALSE(notification_create_function->GetError().empty());
+ }
+
+ // Error case: missing message property.
+ {
+ scoped_refptr<extensions::NotificationsCreateFunction>
+ notification_create_function(
+ new extensions::NotificationsCreateFunction());
+ notification_create_function->set_extension(empty_extension.get());
+ notification_create_function->set_has_callback(true);
+
+ utils::RunFunction(
+ notification_create_function.get(),
+ "[\"\", "
+ "{"
+ "\"type\": \"basic\","
+ "\"iconUrl\": \"an/image/that/does/not/exist.png\","
+ "\"title\": \"Attention!\""
+ "}]",
+ browser(),
+ utils::NONE);
+
+ EXPECT_FALSE(notification_create_function->GetError().empty());
+ }
+}
+
+IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestMultipleItemNotification) {
+ scoped_refptr<extensions::NotificationsCreateFunction>
+ notification_create_function(
+ new extensions::NotificationsCreateFunction());
+ scoped_refptr<Extension> empty_extension(utils::CreateEmptyExtension());
+
+ notification_create_function->set_extension(empty_extension.get());
+ notification_create_function->set_has_callback(true);
+
+ scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult(
+ notification_create_function.get(),
+ "[\"\", "
+ "{"
+ "\"type\": \"list\","
+ "\"iconUrl\": \"an/image/that/does/not/exist.png\","
+ "\"title\": \"Multiple Item Notification Title\","
+ "\"message\": \"Multiple item notification message.\","
+ "\"items\": ["
+ " {\"title\": \"Brett Boe\","
+ " \"message\": \"This is an important message!\"},"
+ " {\"title\": \"Carla Coe\","
+ " \"message\": \"Just took a look at the proposal\"},"
+ " {\"title\": \"Donna Doe\","
+ " \"message\": \"I see that you went to the conference\"},"
+ " {\"title\": \"Frank Foe\","
+ " \"message\": \"I ate Harry's sandwich!\"},"
+ " {\"title\": \"Grace Goe\","
+ " \"message\": \"I saw Frank steal a sandwich :-)\"}"
+ "],"
+ "\"priority\": 1,"
+ "\"eventTime\": 1361488019.9999999"
+ "}]",
+ browser(),
+ utils::NONE));
+ // TODO(dharcourt): [...], items = [{title: foo, message: bar}, ...], [...]
+
+ std::string notification_id;
+ ASSERT_EQ(base::Value::TYPE_STRING, result->GetType());
+ ASSERT_TRUE(result->GetAsString(&notification_id));
+ ASSERT_TRUE(notification_id.length() > 0);
+}
+
+#if defined(OS_LINUX)
+#define MAYBE_TestGetAll DISABLED_TestGetAll
+#else
+#define MAYBE_TestGetAll TestGetAll
+#endif
+
+IN_PROC_BROWSER_TEST_F(NotificationsApiTest, MAYBE_TestGetAll) {
+ scoped_refptr<Extension> empty_extension(utils::CreateEmptyExtension());
+
+ {
+ scoped_refptr<extensions::NotificationsGetAllFunction>
+ notification_get_all_function(
+ new extensions::NotificationsGetAllFunction());
+ notification_get_all_function->set_extension(empty_extension.get());
+ notification_get_all_function->set_has_callback(true);
+ scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult(
+ notification_get_all_function.get(), "[]", browser(), utils::NONE));
+
+ base::DictionaryValue* return_value;
+ ASSERT_EQ(base::Value::TYPE_DICTIONARY, result->GetType());
+ ASSERT_TRUE(result->GetAsDictionary(&return_value));
+ ASSERT_TRUE(return_value->size() == 0);
+ }
+
+ const unsigned int kNotificationsToCreate = 4;
+
+ for (unsigned int i = 0; i < kNotificationsToCreate; i++) {
+ scoped_refptr<extensions::NotificationsCreateFunction>
+ notification_create_function(
+ new extensions::NotificationsCreateFunction());
+
+ notification_create_function->set_extension(empty_extension.get());
+ notification_create_function->set_has_callback(true);
+
+ scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult(
+ notification_create_function.get(),
+ base::StringPrintf("[\"identifier-%u\", "
+ "{"
+ "\"type\": \"basic\","
+ "\"iconUrl\": \"an/image/that/does/not/exist.png\","
+ "\"title\": \"Title\","
+ "\"message\": \"Message.\","
+ "\"priority\": 1,"
+ "\"eventTime\": 1361488019.9999999"
+ "}]",
+ i),
+ browser(),
+ utils::NONE));
+ }
+
+ {
+ scoped_refptr<extensions::NotificationsGetAllFunction>
+ notification_get_all_function(
+ new extensions::NotificationsGetAllFunction());
+ notification_get_all_function->set_extension(empty_extension.get());
+ notification_get_all_function->set_has_callback(true);
+ scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult(
+ notification_get_all_function.get(), "[]", browser(), utils::NONE));
+
+ base::DictionaryValue* return_value;
+ ASSERT_EQ(base::Value::TYPE_DICTIONARY, result->GetType());
+ ASSERT_TRUE(result->GetAsDictionary(&return_value));
+ ASSERT_EQ(return_value->size(), kNotificationsToCreate);
+ bool dictionary_bool = false;
+ for (unsigned int i = 0; i < kNotificationsToCreate; i++) {
+ std::string id = base::StringPrintf("identifier-%u", i);
+ ASSERT_TRUE(return_value->GetBoolean(id, &dictionary_bool));
+ ASSERT_TRUE(dictionary_bool);
+ }
+ }
+}
+
IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestEvents) {
ASSERT_TRUE(RunExtensionTest("notifications/api/events")) << message_;
}
@@ -75,34 +474,235 @@
true);
EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
}
+}
+
+#if defined(OS_LINUX)
+#define MAYBE_TestProgressNotification DISABLED_TestProgressNotification
+#else
+#define MAYBE_TestProgressNotification TestProgressNotification
+#endif
+
+IN_PROC_BROWSER_TEST_F(NotificationsApiTest, MAYBE_TestProgressNotification) {
+ scoped_refptr<Extension> empty_extension(utils::CreateEmptyExtension());
+
+ // Create a new progress notification.
+ std::string notification_id;
{
- ResultCatcher catcher;
- g_browser_process->message_center()->RemoveAllNotifications(false);
- EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
+ scoped_refptr<extensions::NotificationsCreateFunction>
+ notification_create_function(
+ new extensions::NotificationsCreateFunction());
+ notification_create_function->set_extension(empty_extension.get());
+ notification_create_function->set_has_callback(true);
+
+ scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult(
+ notification_create_function.get(),
+ "[\"\", "
+ "{"
+ "\"type\": \"progress\","
+ "\"iconUrl\": \"an/image/that/does/not/exist.png\","
+ "\"title\": \"Test!\","
+ "\"message\": \"This is a progress notification.\","
+ "\"priority\": 1,"
+ "\"eventTime\": 1234567890.12345678,"
+ "\"progress\": 30"
+ "}]",
+ browser(),
+ utils::NONE));
+
+ EXPECT_EQ(base::Value::TYPE_STRING, result->GetType());
+ EXPECT_TRUE(result->GetAsString(&notification_id));
+ EXPECT_TRUE(notification_id.length() > 0);
}
+
+ // Update the progress property only.
{
- ResultCatcher catcher;
- g_browser_process->message_center()->RemoveAllNotifications(true);
- EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
+ scoped_refptr<extensions::NotificationsUpdateFunction>
+ notification_function(
+ new extensions::NotificationsUpdateFunction());
+ notification_function->set_extension(empty_extension.get());
+ notification_function->set_has_callback(true);
+
+ scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult(
+ notification_function.get(),
+ "[\"" + notification_id +
+ "\", "
+ "{"
+ "\"progress\": 60"
+ "}]",
+ browser(),
+ utils::NONE));
+
+ EXPECT_EQ(base::Value::TYPE_BOOLEAN, result->GetType());
+ bool copy_bool_value = false;
+ EXPECT_TRUE(result->GetAsBoolean(&copy_bool_value));
+ EXPECT_TRUE(copy_bool_value);
}
+
+ // Error case: progress value provided for non-progress type.
+ {
+ scoped_refptr<extensions::NotificationsCreateFunction>
+ notification_create_function(
+ new extensions::NotificationsCreateFunction());
+ notification_create_function->set_extension(empty_extension.get());
+ notification_create_function->set_has_callback(true);
+
+ utils::RunFunction(
+ notification_create_function.get(),
+ "[\"\", "
+ "{"
+ "\"type\": \"basic\","
+ "\"iconUrl\": \"an/image/that/does/not/exist.png\","
+ "\"title\": \"Test!\","
+ "\"message\": \"This is a progress notification.\","
+ "\"priority\": 1,"
+ "\"eventTime\": 1234567890.12345678,"
+ "\"progress\": 10"
+ "}]",
+ browser(),
+ utils::NONE);
+ EXPECT_FALSE(notification_create_function->GetError().empty());
+ }
+
+ // Error case: progress value less than lower bound.
+ {
+ scoped_refptr<extensions::NotificationsCreateFunction>
+ notification_create_function(
+ new extensions::NotificationsCreateFunction());
+ notification_create_function->set_extension(empty_extension.get());
+ notification_create_function->set_has_callback(true);
+
+ utils::RunFunction(
+ notification_create_function.get(),
+ "[\"\", "
+ "{"
+ "\"type\": \"progress\","
+ "\"iconUrl\": \"an/image/that/does/not/exist.png\","
+ "\"title\": \"Test!\","
+ "\"message\": \"This is a progress notification.\","
+ "\"priority\": 1,"
+ "\"eventTime\": 1234567890.12345678,"
+ "\"progress\": -10"
+ "}]",
+ browser(),
+ utils::NONE);
+ EXPECT_FALSE(notification_create_function->GetError().empty());
+ }
+
+ // Error case: progress value greater than upper bound.
+ {
+ scoped_refptr<extensions::NotificationsCreateFunction>
+ notification_create_function(
+ new extensions::NotificationsCreateFunction());
+ notification_create_function->set_extension(empty_extension.get());
+ notification_create_function->set_has_callback(true);
+
+ utils::RunFunction(
+ notification_create_function.get(),
+ "[\"\", "
+ "{"
+ "\"type\": \"progress\","
+ "\"iconUrl\": \"an/image/that/does/not/exist.png\","
+ "\"title\": \"Test!\","
+ "\"message\": \"This is a progress notification.\","
+ "\"priority\": 1,"
+ "\"eventTime\": 1234567890.12345678,"
+ "\"progress\": 101"
+ "}]",
+ browser(),
+ utils::NONE);
+ EXPECT_FALSE(notification_create_function->GetError().empty());
+ }
}
IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestPartialUpdate) {
- ASSERT_TRUE(RunExtensionTest("notifications/api/partial_update")) << message_;
- const extensions::Extension* extension = GetSingleLoadedExtension();
- ASSERT_TRUE(extension) << message_;
+ scoped_refptr<Extension> empty_extension(utils::CreateEmptyExtension());
+ // Create a new notification.
+ std::string notification_id;
+ {
+ scoped_refptr<extensions::NotificationsCreateFunction>
+ notification_function(
+ new extensions::NotificationsCreateFunction());
+ notification_function->set_extension(empty_extension.get());
+ notification_function->set_has_callback(true);
+
+ scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult(
+ notification_function.get(),
+ "[\"\", " // Empty string: ask API to generate ID
+ "{"
+ "\"type\": \"basic\","
+ "\"iconUrl\": \"an/image/that/does/not/exist.png\","
+ "\"title\": \"Attention!\","
+ "\"message\": \"Check out Cirque du Soleil\","
+ "\"buttons\": [{\"title\": \"Button\"}]"
+ "}]",
+ browser(),
+ utils::NONE));
+
+ ASSERT_EQ(base::Value::TYPE_STRING, result->GetType());
+ ASSERT_TRUE(result->GetAsString(&notification_id));
+ ASSERT_TRUE(notification_id.length() > 0);
+ }
+
+ // Update a few properties in the existing notification.
const char kNewTitle[] = "Changed!";
const char kNewMessage[] = "Too late! The show ended yesterday";
+ {
+ scoped_refptr<extensions::NotificationsUpdateFunction>
+ notification_function(
+ new extensions::NotificationsUpdateFunction());
+ notification_function->set_extension(empty_extension.get());
+ notification_function->set_has_callback(true);
+
+ scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult(
+ notification_function.get(),
+ "[\"" + notification_id +
+ "\", "
+ "{"
+ "\"title\": \"" + kNewTitle + "\","
+ "\"message\": \"" + kNewMessage + "\""
+ "}]",
+ browser(),
+ utils::NONE));
+
+ ASSERT_EQ(base::Value::TYPE_BOOLEAN, result->GetType());
+ bool copy_bool_value = false;
+ ASSERT_TRUE(result->GetAsBoolean(&copy_bool_value));
+ ASSERT_TRUE(copy_bool_value);
+ }
+
+ // Update some other properties in the existing notification.
int kNewPriority = 2;
+ {
+ scoped_refptr<extensions::NotificationsUpdateFunction>
+ notification_function(
+ new extensions::NotificationsUpdateFunction());
+ notification_function->set_extension(empty_extension.get());
+ notification_function->set_has_callback(true);
+ scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult(
+ notification_function.get(),
+ "[\"" + notification_id +
+ "\", "
+ "{"
+ "\"priority\": " + base::IntToString(kNewPriority) + ","
+ "\"buttons\": []"
+ "}]",
+ browser(),
+ utils::NONE));
+
+ ASSERT_EQ(base::Value::TYPE_BOOLEAN, result->GetType());
+ bool copy_bool_value = false;
+ ASSERT_TRUE(result->GetAsBoolean(&copy_bool_value));
+ ASSERT_TRUE(copy_bool_value);
+ }
+
+ // Get the updated notification and verify its data.
const message_center::NotificationList::Notifications& notifications =
g_browser_process->message_center()->GetVisibleNotifications();
ASSERT_EQ(1u, notifications.size());
message_center::Notification* notification = *(notifications.begin());
- LOG(INFO) << "Notification ID: " << notification->id();
-
EXPECT_EQ(base::ASCIIToUTF16(kNewTitle), notification->title());
EXPECT_EQ(base::ASCIIToUTF16(kNewMessage), notification->message());
EXPECT_EQ(kNewPriority, notification->priority());
« no previous file with comments | « trunk/src/chrome/browser/extensions/api/notifications/notifications_api.cc ('k') | trunk/src/chrome/chrome_common.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698