blob: be1a5a9356de3a8424ce5bb9fd45d3dce850fb92 [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/macros.h"
#include "base/metrics/histogram_macros.h"
#include "base/test/histogram_tester.h"
#include "base/time/time.h"
#include "chrome/browser/media/router/media_router_metrics.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
using base::Bucket;
using testing::ElementsAre;
namespace media_router {
TEST(MediaRouterMetricsTest, RecordMediaRouterDialogOrigin) {
base::HistogramTester tester;
const MediaRouterDialogOpenOrigin origin1 =
MediaRouterDialogOpenOrigin::TOOLBAR;
const MediaRouterDialogOpenOrigin origin2 =
MediaRouterDialogOpenOrigin::CONTEXTUAL_MENU;
tester.ExpectTotalCount(MediaRouterMetrics::kHistogramIconClickLocation, 0);
MediaRouterMetrics::RecordMediaRouterDialogOrigin(origin1);
MediaRouterMetrics::RecordMediaRouterDialogOrigin(origin2);
MediaRouterMetrics::RecordMediaRouterDialogOrigin(origin1);
tester.ExpectTotalCount(MediaRouterMetrics::kHistogramIconClickLocation, 3);
EXPECT_THAT(
tester.GetAllSamples(MediaRouterMetrics::kHistogramIconClickLocation),
ElementsAre(Bucket(static_cast<int>(origin1), 2),
Bucket(static_cast<int>(origin2), 1)));
}
TEST(MediaRouterMetricsTest, RecordMediaRouterDialogPaint) {
base::HistogramTester tester;
const base::TimeDelta delta = base::TimeDelta::FromMilliseconds(10);
tester.ExpectTotalCount(MediaRouterMetrics::kHistogramUiDialogPaint, 0);
MediaRouterMetrics::RecordMediaRouterDialogPaint(delta);
tester.ExpectUniqueSample(MediaRouterMetrics::kHistogramUiDialogPaint,
delta.InMilliseconds(), 1);
}
TEST(MediaRouterMetricsTest, RecordMediaRouterDialogLoaded) {
base::HistogramTester tester;
const base::TimeDelta delta = base::TimeDelta::FromMilliseconds(10);
tester.ExpectTotalCount(MediaRouterMetrics::kHistogramUiDialogLoadedWithData,
0);
MediaRouterMetrics::RecordMediaRouterDialogLoaded(delta);
tester.ExpectUniqueSample(
MediaRouterMetrics::kHistogramUiDialogLoadedWithData,
delta.InMilliseconds(), 1);
}
TEST(MediaRouterMetricsTest, RecordMediaRouterInitialUserAction) {
base::HistogramTester tester;
const MediaRouterUserAction action1 = MediaRouterUserAction::START_LOCAL;
const MediaRouterUserAction action2 = MediaRouterUserAction::CLOSE;
const MediaRouterUserAction action3 = MediaRouterUserAction::STATUS_REMOTE;
tester.ExpectTotalCount(MediaRouterMetrics::kHistogramUiFirstAction, 0);
MediaRouterMetrics::RecordMediaRouterInitialUserAction(action3);
MediaRouterMetrics::RecordMediaRouterInitialUserAction(action2);
MediaRouterMetrics::RecordMediaRouterInitialUserAction(action3);
MediaRouterMetrics::RecordMediaRouterInitialUserAction(action1);
tester.ExpectTotalCount(MediaRouterMetrics::kHistogramUiFirstAction, 4);
EXPECT_THAT(tester.GetAllSamples(MediaRouterMetrics::kHistogramUiFirstAction),
ElementsAre(Bucket(static_cast<int>(action1), 1),
Bucket(static_cast<int>(action2), 1),
Bucket(static_cast<int>(action3), 2)));
}
TEST(MediaRouterMetricsTest, RecordRouteCreationOutcome) {
base::HistogramTester tester;
const MediaRouterRouteCreationOutcome outcome1 =
MediaRouterRouteCreationOutcome::SUCCESS;
const MediaRouterRouteCreationOutcome outcome2 =
MediaRouterRouteCreationOutcome::FAILURE_NO_ROUTE;
tester.ExpectTotalCount(MediaRouterMetrics::kHistogramRouteCreationOutcome,
0);
MediaRouterMetrics::RecordRouteCreationOutcome(outcome2);
MediaRouterMetrics::RecordRouteCreationOutcome(outcome1);
MediaRouterMetrics::RecordRouteCreationOutcome(outcome2);
tester.ExpectTotalCount(MediaRouterMetrics::kHistogramRouteCreationOutcome,
3);
EXPECT_THAT(
tester.GetAllSamples(MediaRouterMetrics::kHistogramRouteCreationOutcome),
ElementsAre(Bucket(static_cast<int>(outcome1), 1),
Bucket(static_cast<int>(outcome2), 2)));
}
} // namespace media_router