webrtc_uma_histograms_unittest.cc revision effb81e5f8246d0db0270817048dc992db66e9fb
1effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// found in the LICENSE file. 4effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 5effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "content/renderer/media/webrtc_uma_histograms.h" 6effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 7effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "testing/gmock/include/gmock/gmock.h" 8effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "testing/gtest/include/gtest/gtest.h" 9effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 10effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochusing ::testing::_; 11effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 12effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochnamespace content { 13effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 14effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochclass MockPerSessionWebRTCAPIMetrics : public PerSessionWebRTCAPIMetrics { 15effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch public: 16effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch MockPerSessionWebRTCAPIMetrics() {} 17effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 18effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch using PerSessionWebRTCAPIMetrics::LogUsageOnlyOnce; 19effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 20effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch MOCK_METHOD1(LogUsage, void(JavaScriptAPIName)); 21effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch}; 22effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 23effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochTEST(PerSessionWebRTCAPIMetrics, NoCallOngoingGetUserMedia) { 24effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch MockPerSessionWebRTCAPIMetrics metrics; 25effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch EXPECT_CALL(metrics, LogUsage(_)).Times(1); 26effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch metrics.LogUsageOnlyOnce(WEBKIT_GET_USER_MEDIA); 27effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 28effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 29effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochTEST(PerSessionWebRTCAPIMetrics, CallOngoingGetUserMedia) { 30effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch MockPerSessionWebRTCAPIMetrics metrics; 31effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch metrics.IncrementStreamCounter(); 32effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch EXPECT_CALL(metrics, LogUsage(WEBKIT_GET_USER_MEDIA)).Times(1); 33effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch metrics.LogUsageOnlyOnce(WEBKIT_GET_USER_MEDIA); 34effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 35effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 36effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochTEST(PerSessionWebRTCAPIMetrics, NoCallOngoingRTCPeerConnection) { 37effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch MockPerSessionWebRTCAPIMetrics metrics; 38effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch EXPECT_CALL(metrics, LogUsage(WEBKIT_RTC_PEER_CONNECTION)); 39effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch metrics.LogUsageOnlyOnce(WEBKIT_RTC_PEER_CONNECTION); 40effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 41effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 42effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochTEST(PerSessionWebRTCAPIMetrics, NoCallOngoingMultiplePC) { 43effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch MockPerSessionWebRTCAPIMetrics metrics; 44effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch EXPECT_CALL(metrics, LogUsage(WEBKIT_RTC_PEER_CONNECTION)).Times(1); 45effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch metrics.LogUsageOnlyOnce(WEBKIT_RTC_PEER_CONNECTION); 46effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch metrics.LogUsageOnlyOnce(WEBKIT_RTC_PEER_CONNECTION); 47effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch metrics.LogUsageOnlyOnce(WEBKIT_RTC_PEER_CONNECTION); 48effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 49effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 50effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochTEST(PerSessionWebRTCAPIMetrics, BeforeAfterCallMultiplePC) { 51effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch MockPerSessionWebRTCAPIMetrics metrics; 52effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch EXPECT_CALL(metrics, LogUsage(WEBKIT_RTC_PEER_CONNECTION)).Times(1); 53effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch metrics.LogUsageOnlyOnce(WEBKIT_RTC_PEER_CONNECTION); 54effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch metrics.LogUsageOnlyOnce(WEBKIT_RTC_PEER_CONNECTION); 55effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch metrics.IncrementStreamCounter(); 56effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch metrics.IncrementStreamCounter(); 57effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch metrics.LogUsageOnlyOnce(WEBKIT_RTC_PEER_CONNECTION); 58effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch metrics.DecrementStreamCounter(); 59effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch metrics.LogUsageOnlyOnce(WEBKIT_RTC_PEER_CONNECTION); 60effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch metrics.DecrementStreamCounter(); 61effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch EXPECT_CALL(metrics, LogUsage(WEBKIT_RTC_PEER_CONNECTION)).Times(1); 62effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch metrics.LogUsageOnlyOnce(WEBKIT_RTC_PEER_CONNECTION); 63effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch metrics.LogUsageOnlyOnce(WEBKIT_RTC_PEER_CONNECTION); 64effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 65effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 66effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} // namespace content 67