EMMA Coverage Report (generated Tue Aug 20 10:07:21 PDT 2013)
[all classes][org.chromium.chrome.browser.identity]

COVERAGE SUMMARY FOR SOURCE FILE [SettingsSecureBasedIdentificationGeneratorTest.java]

nameclass, %method, %block, %line, %
SettingsSecureBasedIdentificationGeneratorTest.java100% (2/2)100% (8/8)100% (94/94)100% (32/32)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class SettingsSecureBasedIdentificationGeneratorTest100% (1/1)100% (6/6)100% (77/77)100% (26/26)
SettingsSecureBasedIdentificationGeneratorTest (): void 100% (1/1)100% (3/3)100% (2/2)
runTest (String, String, String): void 100% (1/1)100% (18/18)100% (5/5)
testAndroidIdFailureWithSalt (): void 100% (1/1)100% (12/12)100% (5/5)
testAndroidIdFailureWithoutSalt (): void 100% (1/1)100% (12/12)100% (5/5)
testAndroidIdSuccessWithSalt (): void 100% (1/1)100% (18/18)100% (5/5)
testAndroidIdSuccessWithoutSalt (): void 100% (1/1)100% (14/14)100% (4/4)
     
class SettingsSecureBasedIdentificationGeneratorTest$TestGenerator100% (1/1)100% (2/2)100% (17/17)100% (6/6)
SettingsSecureBasedIdentificationGeneratorTest$TestGenerator (AdvancedMockCon... 100% (1/1)100% (10/10)100% (4/4)
getAndroidId (): String 100% (1/1)100% (7/7)100% (2/2)

1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4 
5package org.chromium.chrome.browser.identity;
6 
7import android.test.InstrumentationTestCase;
8import android.test.suitebuilder.annotation.SmallTest;
9 
10import org.chromium.base.test.util.AdvancedMockContext;
11import org.chromium.base.test.util.Feature;
12import org.chromium.chrome.browser.util.HashUtil;
13 
14public class SettingsSecureBasedIdentificationGeneratorTest extends InstrumentationTestCase {
15 
16    private static final String FLAG_ANDROID_ID = "android_id";
17 
18    @SmallTest
19    @Feature({"ChromeToMobile", "Omaha"})
20    public void testAndroidIdSuccessWithSalt() {
21        String androidId = "42";
22        String salt = "mySalt";
23        String expected = HashUtil.getMd5Hash(new HashUtil.Params(androidId).withSalt(salt));
24        runTest(androidId, salt, expected);
25    }
26 
27    @SmallTest
28    @Feature({"ChromeToMobile", "Omaha"})
29    public void testAndroidIdSuccessWithoutSalt() {
30        String androidId = "42";
31        String expected = HashUtil.getMd5Hash(new HashUtil.Params(androidId));
32        runTest(androidId, null, expected);
33    }
34 
35    @SmallTest
36    @Feature({"ChromeToMobile", "Omaha"})
37    public void testAndroidIdFailureWithSalt() {
38        String androidId = null;
39        String salt = "mySalt";
40        String expected = "";
41        runTest(androidId, salt, expected);
42    }
43 
44    @SmallTest
45    @Feature({"ChromeToMobile", "Omaha"})
46    public void testAndroidIdFailureWithoutSalt() {
47        String androidId = null;
48        String salt = null;
49        String expected = "";
50        runTest(androidId, salt, expected);
51    }
52 
53    private void runTest(String androidId, String salt, String expectedUniqueId) {
54        AdvancedMockContext context = new AdvancedMockContext();
55        TestGenerator generator = new TestGenerator(context, androidId);
56 
57        // Get a unique ID and ensure it is as expected.
58        String result = generator.getUniqueId(salt);
59        assertEquals(expectedUniqueId, result);
60    }
61 
62    private static class TestGenerator extends SettingsSecureBasedIdentificationGenerator {
63        private final AdvancedMockContext mContext;
64        private final String mAndroidId;
65 
66        TestGenerator(AdvancedMockContext context, String androidId) {
67            super(context);
68            mContext = context;
69            mAndroidId = androidId;
70        }
71 
72        @Override
73        String getAndroidId() {
74            mContext.setFlag(FLAG_ANDROID_ID);
75            return mAndroidId;
76        }
77    }
78}

[all classes][org.chromium.chrome.browser.identity]
EMMA 2.0.5312 (C) Vladimir Roubtsov