Index: chrome/browser/chrome_application_mac_unittest.mm |
=================================================================== |
--- chrome/browser/chrome_application_mac_unittest.mm (revision 31104) |
+++ chrome/browser/chrome_application_mac_unittest.mm (working copy) |
@@ -1,81 +0,0 @@ |
-// Copyright (c) 2009 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. |
- |
-#import <Cocoa/Cocoa.h> |
- |
-#include "base/histogram.h" |
-#import "chrome/browser/chrome_application_mac.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-namespace CrApplicationNSException { |
- |
-// Generate an NSException with the given name. |
-NSException* ExceptionNamed(NSString* name) { |
- return [NSException exceptionWithName:name |
- reason:@"No reason given" |
- userInfo:nil]; |
-} |
- |
-// Helper to keep binning expectations readible. |
-size_t BinForExceptionNamed(NSString* name) { |
- return BinForException(ExceptionNamed(name)); |
-} |
- |
-TEST(ChromeApplicationMacTest, ExceptionBinning) { |
- // These exceptions must be in this order. |
- EXPECT_EQ(BinForExceptionNamed(NSGenericException), 0U); |
- EXPECT_EQ(BinForExceptionNamed(NSRangeException), 1U); |
- EXPECT_EQ(BinForExceptionNamed(NSInvalidArgumentException), 2U); |
- EXPECT_EQ(BinForExceptionNamed(NSMallocException), 3U); |
- |
- // Random other exceptions map to |kUnknownNSException|. |
- EXPECT_EQ(BinForExceptionNamed(@"CustomName"), kUnknownNSException); |
- EXPECT_EQ(BinForExceptionNamed(@"Custom Name"), kUnknownNSException); |
- EXPECT_EQ(BinForExceptionNamed(@""), kUnknownNSException); |
- EXPECT_EQ(BinForException(nil), kUnknownNSException); |
-} |
- |
-TEST(ChromeApplicationMacTest, RecordException) { |
- // Start up a histogram recorder. |
- StatisticsRecorder recorder; |
- |
- StatisticsRecorder::Histograms histograms; |
- StatisticsRecorder::GetSnapshot("OSX.NSException", &histograms); |
- EXPECT_EQ(0U, histograms.size()); |
- |
- // Record some known exceptions. |
- RecordExceptionWithUma(ExceptionNamed(NSGenericException)); |
- RecordExceptionWithUma(ExceptionNamed(NSGenericException)); |
- RecordExceptionWithUma(ExceptionNamed(NSGenericException)); |
- RecordExceptionWithUma(ExceptionNamed(NSGenericException)); |
- RecordExceptionWithUma(ExceptionNamed(NSRangeException)); |
- RecordExceptionWithUma(ExceptionNamed(NSInvalidArgumentException)); |
- RecordExceptionWithUma(ExceptionNamed(NSInvalidArgumentException)); |
- RecordExceptionWithUma(ExceptionNamed(NSInvalidArgumentException)); |
- RecordExceptionWithUma(ExceptionNamed(NSMallocException)); |
- RecordExceptionWithUma(ExceptionNamed(NSMallocException)); |
- |
- // Record some unknown exceptions. |
- RecordExceptionWithUma(ExceptionNamed(@"CustomName")); |
- RecordExceptionWithUma(ExceptionNamed(@"Custom Name")); |
- RecordExceptionWithUma(ExceptionNamed(@"")); |
- RecordExceptionWithUma(nil); |
- |
- // We should have exactly the right number of exceptions. |
- StatisticsRecorder::GetSnapshot("OSX.NSException", &histograms); |
- EXPECT_EQ(1U, histograms.size()); |
- EXPECT_EQ(kUmaTargetedHistogramFlag, histograms[0]->flags()); |
- Histogram::SampleSet sample; |
- histograms[0]->SnapshotSample(&sample); |
- EXPECT_EQ(4, sample.counts(0)); |
- EXPECT_EQ(1, sample.counts(1)); |
- EXPECT_EQ(3, sample.counts(2)); |
- EXPECT_EQ(2, sample.counts(3)); |
- |
- // The unknown exceptions should end up in the overflow bucket. |
- EXPECT_EQ(kUnknownNSException + 1, histograms[0]->bucket_count()); |
- EXPECT_EQ(4, sample.counts(kUnknownNSException)); |
-} |
- |
-} // CrApplicationNSException |