EMMA Coverage Report (generated Fri Aug 23 16:39:17 PDT 2013)
[all classes][org.chromium.base.test.util]

COVERAGE SUMMARY FOR SOURCE FILE [AdvancedMockContext.java]

nameclass, %method, %block, %line, %
AdvancedMockContext.java50%  (1/2)53%  (8/15)58%  (93/159)56%  (17.4/31)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class AdvancedMockContext$MapBuilder0%   (0/1)0%   (0/4)0%   (0/23)0%   (0/6)
AdvancedMockContext$MapBuilder (): void 0%   (0/1)0%   (0/8)0%   (0/2)
add (String, Object): AdvancedMockContext$MapBuilder 0%   (0/1)0%   (0/8)0%   (0/2)
build (): Map 0%   (0/1)0%   (0/3)0%   (0/1)
create (): AdvancedMockContext$MapBuilder 0%   (0/1)0%   (0/4)0%   (0/1)
     
class AdvancedMockContext100% (1/1)73%  (8/11)68%  (93/136)70%  (17.4/25)
addSharedPreferences (String, Map): void 0%   (0/1)0%   (0/23)0%   (0/4)
getContentResolver (): ContentResolver 0%   (0/1)0%   (0/3)0%   (0/1)
getMockContentResolver (): MockContentResolver 0%   (0/1)0%   (0/3)0%   (0/1)
isFlagSet (String): boolean 100% (1/1)44%  (7/16)43%  (0.4/1)
getSharedPreferences (String, int): SharedPreferences 100% (1/1)84%  (26/31)80%  (4/5)
AdvancedMockContext (): void 100% (1/1)100% (21/21)100% (5/5)
AdvancedMockContext (Context): void 100% (1/1)100% (19/19)100% (5/5)
clearFlag (String): void 100% (1/1)100% (6/6)100% (2/2)
getApplicationContext (): Context 100% (1/1)100% (2/2)100% (1/1)
getPackageName (): String 100% (1/1)100% (4/4)100% (1/1)
setFlag (String): void 100% (1/1)100% (8/8)100% (2/2)

1// Copyright (c) 2013 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.base.test.util;
6 
7import android.content.ContentResolver;
8import android.content.Context;
9import android.content.ContextWrapper;
10import android.content.SharedPreferences;
11import android.test.mock.MockContentResolver;
12import android.test.mock.MockContext;
13 
14import java.util.HashMap;
15import java.util.Map;
16 
17/**
18 * ContextWrapper that adds functionality for SharedPreferences and a way to set and retrieve flags.
19 */
20public class AdvancedMockContext extends ContextWrapper {
21 
22    private final MockContentResolver mMockContentResolver = new MockContentResolver();
23 
24    private final Map<String, SharedPreferences> mSharedPreferences =
25            new HashMap<String, SharedPreferences>();
26 
27    private final Map<String, Boolean> flags = new HashMap<String, Boolean>();
28 
29    public AdvancedMockContext(Context base) {
30        super(base);
31    }
32 
33    public AdvancedMockContext() {
34        super(new MockContext());
35    }
36 
37    @Override
38    public String getPackageName() {
39        return getBaseContext().getPackageName();
40    }
41 
42    @Override
43    public Context getApplicationContext() {
44        return this;
45    }
46 
47    @Override
48    public ContentResolver getContentResolver() {
49        return mMockContentResolver;
50    }
51 
52    public MockContentResolver getMockContentResolver() {
53        return mMockContentResolver;
54    }
55 
56    @Override
57    public SharedPreferences getSharedPreferences(String name, int mode) {
58        synchronized (mSharedPreferences) {
59            if (!mSharedPreferences.containsKey(name)) {
60                // Auto-create shared preferences to mimic Android Context behavior
61                mSharedPreferences.put(name, new InMemorySharedPreferences());
62            }
63            return mSharedPreferences.get(name);
64        }
65    }
66 
67    public void addSharedPreferences(String name, Map<String, Object> data) {
68        synchronized (mSharedPreferences) {
69            mSharedPreferences.put(name, new InMemorySharedPreferences(data));
70        }
71    }
72 
73    public void setFlag(String key) {
74        flags.put(key, true);
75    }
76 
77    public void clearFlag(String key) {
78        flags.remove(key);
79    }
80 
81    public boolean isFlagSet(String key) {
82        return flags.containsKey(key) && flags.get(key);
83    }
84 
85    public static class MapBuilder {
86 
87        private final Map<String, Object> mData = new HashMap<String, Object>();
88 
89        public static MapBuilder create() {
90            return new MapBuilder();
91        }
92 
93        public MapBuilder add(String key, Object value) {
94            mData.put(key, value);
95            return this;
96        }
97 
98        public Map<String, Object> build() {
99            return mData;
100        }
101 
102    }
103}

[all classes][org.chromium.base.test.util]
EMMA 2.0.5312 (C) Vladimir Roubtsov