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

Unified Diff: third_party/WebKit/Source/modules/notifications/NotificationImageLoaderTest.cpp

Issue 2540763002: Notifications: Split up image loading histograms by image type (Closed)
Patch Set: Use histogram_suffixes Created 4 years 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: third_party/WebKit/Source/modules/notifications/NotificationImageLoaderTest.cpp
diff --git a/third_party/WebKit/Source/modules/notifications/NotificationImageLoaderTest.cpp b/third_party/WebKit/Source/modules/notifications/NotificationImageLoaderTest.cpp
index bcb59f4d19f6523ba1a2570ff293250865609682..4072119435b1dc75c7b4ba25f14c4ad3ea142aa6 100644
--- a/third_party/WebKit/Source/modules/notifications/NotificationImageLoaderTest.cpp
+++ b/third_party/WebKit/Source/modules/notifications/NotificationImageLoaderTest.cpp
@@ -7,6 +7,7 @@
#include "core/dom/ExecutionContext.h"
#include "core/fetch/MemoryCache.h"
#include "core/testing/DummyPageHolder.h"
+#include "platform/testing/HistogramTester.h"
#include "platform/testing/TestingPlatformSupport.h"
#include "platform/testing/URLTestHelpers.h"
#include "public/platform/Platform.h"
@@ -35,7 +36,9 @@ class NotificationImageLoaderTest : public ::testing::Test {
public:
NotificationImageLoaderTest()
: m_page(DummyPageHolder::create()),
- m_loader(new NotificationImageLoader()) {}
+ // Use an arbitrary type, since it only affects which UMA bucket we use.
+ m_loader(
+ new NotificationImageLoader(NotificationImageLoader::Type::Icon)) {}
~NotificationImageLoaderTest() override {
m_loader->stop();
@@ -70,6 +73,9 @@ class NotificationImageLoaderTest : public ::testing::Test {
ExecutionContext* context() const { return &m_page->document(); }
LoadState loaded() const { return m_loaded; }
+ protected:
+ HistogramTester m_histogramTester;
+
private:
std::unique_ptr<DummyPageHolder> m_page;
Persistent<NotificationImageLoader> m_loader;
@@ -79,8 +85,18 @@ class NotificationImageLoaderTest : public ::testing::Test {
TEST_F(NotificationImageLoaderTest, SuccessTest) {
KURL url = registerMockedURL(kIcon500x500);
loadImage(url);
+ m_histogramTester.expectTotalCount("Notifications.LoadFinishTime.Icon", 0);
+ m_histogramTester.expectTotalCount("Notifications.LoadFileSize.Icon", 0);
+ m_histogramTester.expectTotalCount("Notifications.LoadFailTime.Icon", 0);
Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequests();
EXPECT_EQ(LoadState::kLoadSuccessful, loaded());
+ m_histogramTester.expectUniqueSample("Notifications.LoadFileSize.Icon", 7439,
+ 1);
+ m_histogramTester.expectTotalCount("Notifications.LoadFailTime.Icon", 0);
+ // Should log a non-zero finish time.
+ m_histogramTester.expectTotalCount("Notifications.LoadFinishTime.Icon", 1);
+ m_histogramTester.expectBucketCount("Notifications.LoadFinishTime.Icon", 0,
+ 0);
}
TEST_F(NotificationImageLoaderTest, TimeoutTest) {
@@ -94,12 +110,20 @@ TEST_F(NotificationImageLoaderTest, TimeoutTest) {
// result in a timeout.
testingPlatform.runForPeriodSeconds(kImageFetchTimeoutInMs / 1000 - 1);
EXPECT_EQ(LoadState::kNotLoaded, loaded());
+ m_histogramTester.expectTotalCount("Notifications.LoadFinishTime.Icon", 0);
+ m_histogramTester.expectTotalCount("Notifications.LoadFileSize.Icon", 0);
+ m_histogramTester.expectTotalCount("Notifications.LoadFailTime.Icon", 0);
// Now advance time until a timeout should be expected.
testingPlatform.runForPeriodSeconds(2);
// If the loader times out, it calls the callback and returns an empty bitmap.
EXPECT_EQ(LoadState::kLoadFailed, loaded());
+ m_histogramTester.expectTotalCount("Notifications.LoadFinishTime.Icon", 0);
+ m_histogramTester.expectTotalCount("Notifications.LoadFileSize.Icon", 0);
+ // Should log a non-zero failure time.
+ m_histogramTester.expectTotalCount("Notifications.LoadFailTime.Icon", 1);
+ m_histogramTester.expectBucketCount("Notifications.LoadFailTime.Icon", 0, 0);
}
} // namspace

Powered by Google App Engine
This is Rietveld 408576698