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

COVERAGE SUMMARY FOR SOURCE FILE [AutofillTestHelper.java]

nameclass, %method, %block, %line, %
AutofillTestHelper.java100% (11/11)100% (32/32)96%  (247/257)99%  (43.4/44)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class AutofillTestHelper$9$1100% (1/1)100% (2/2)81%  (22/27)95%  (4.8/5)
onPersonalDataChanged (): void 100% (1/1)76%  (16/21)94%  (3.8/4)
AutofillTestHelper$9$1 (AutofillTestHelper$9): void 100% (1/1)100% (6/6)100% (1/1)
     
class AutofillTestHelper100% (1/1)100% (12/12)95%  (106/111)99%  (26.7/27)
waitForDataChanged (): void 100% (1/1)72%  (13/18)92%  (3.7/4)
AutofillTestHelper (): void 100% (1/1)100% (5/5)100% (3/3)
access$000 (AutofillTestHelper): Object 100% (1/1)100% (3/3)100% (1/1)
deleteCreditCard (String): void 100% (1/1)100% (9/9)100% (3/3)
deleteProfile (String): void 100% (1/1)100% (9/9)100% (3/3)
getCreditCard (String): PersonalDataManager$CreditCard 100% (1/1)100% (8/8)100% (1/1)
getNumberOfCreditCards (): int 100% (1/1)100% (8/8)100% (1/1)
getNumberOfProfiles (): int 100% (1/1)100% (8/8)100% (1/1)
getProfile (String): PersonalDataManager$AutofillProfile 100% (1/1)100% (8/8)100% (1/1)
registerDataObserver (): void 100% (1/1)100% (11/11)100% (3/3)
setCreditCard (PersonalDataManager$CreditCard): String 100% (1/1)100% (12/12)100% (3/3)
setProfile (PersonalDataManager$AutofillProfile): String 100% (1/1)100% (12/12)100% (3/3)
     
class AutofillTestHelper$1100% (1/1)100% (2/2)100% (14/14)100% (2/2)
AutofillTestHelper$1 (AutofillTestHelper, String): void 100% (1/1)100% (9/9)100% (1/1)
call (): PersonalDataManager$AutofillProfile 100% (1/1)100% (5/5)100% (1/1)
     
class AutofillTestHelper$2100% (1/1)100% (2/2)100% (11/11)100% (2/2)
AutofillTestHelper$2 (AutofillTestHelper): void 100% (1/1)100% (6/6)100% (1/1)
call (): Integer 100% (1/1)100% (5/5)100% (1/1)
     
class AutofillTestHelper$3100% (1/1)100% (2/2)100% (14/14)100% (2/2)
AutofillTestHelper$3 (AutofillTestHelper, PersonalDataManager$AutofillProfile... 100% (1/1)100% (9/9)100% (1/1)
call (): String 100% (1/1)100% (5/5)100% (1/1)
     
class AutofillTestHelper$4100% (1/1)100% (2/2)100% (14/14)100% (3/3)
AutofillTestHelper$4 (AutofillTestHelper, String): void 100% (1/1)100% (9/9)100% (1/1)
run (): void 100% (1/1)100% (5/5)100% (2/2)
     
class AutofillTestHelper$5100% (1/1)100% (2/2)100% (14/14)100% (2/2)
AutofillTestHelper$5 (AutofillTestHelper, String): void 100% (1/1)100% (9/9)100% (1/1)
call (): PersonalDataManager$CreditCard 100% (1/1)100% (5/5)100% (1/1)
     
class AutofillTestHelper$6100% (1/1)100% (2/2)100% (11/11)100% (2/2)
AutofillTestHelper$6 (AutofillTestHelper): void 100% (1/1)100% (6/6)100% (1/1)
call (): Integer 100% (1/1)100% (5/5)100% (1/1)
     
class AutofillTestHelper$7100% (1/1)100% (2/2)100% (14/14)100% (2/2)
AutofillTestHelper$7 (AutofillTestHelper, PersonalDataManager$CreditCard): void 100% (1/1)100% (9/9)100% (1/1)
call (): String 100% (1/1)100% (5/5)100% (1/1)
     
class AutofillTestHelper$8100% (1/1)100% (2/2)100% (14/14)100% (3/3)
AutofillTestHelper$8 (AutofillTestHelper, String): void 100% (1/1)100% (9/9)100% (1/1)
run (): void 100% (1/1)100% (5/5)100% (2/2)
     
class AutofillTestHelper$9100% (1/1)100% (2/2)100% (13/13)100% (3/3)
AutofillTestHelper$9 (AutofillTestHelper): void 100% (1/1)100% (6/6)100% (1/1)
run (): void 100% (1/1)100% (7/7)100% (2/2)

1// Copyright 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.chrome.browser.autofill;
6 
7import org.chromium.base.ThreadUtils;
8import org.chromium.chrome.browser.autofill.PersonalDataManager.AutofillProfile;
9import org.chromium.chrome.browser.autofill.PersonalDataManager.CreditCard;
10import org.chromium.chrome.browser.autofill.PersonalDataManager.PersonalDataManagerObserver;
11 
12import java.util.concurrent.Callable;
13import java.util.concurrent.ExecutionException;
14 
15/**
16 * Helper class for testing AutofillProfiles.
17 */
18public class AutofillTestHelper {
19 
20    private Object mObserverNotified;
21 
22    public AutofillTestHelper() {
23        registerDataObserver();
24    }
25 
26    AutofillProfile getProfile(final String guid) throws ExecutionException {
27        return ThreadUtils.runOnUiThreadBlocking(new Callable<AutofillProfile>() {
28            @Override
29            public AutofillProfile call() {
30                return PersonalDataManager.getInstance().getProfile(guid);
31            }
32        });
33    }
34 
35    int getNumberOfProfiles() throws ExecutionException {
36        return ThreadUtils.runOnUiThreadBlocking(new Callable<Integer>() {
37            @Override
38            public Integer call() {
39                return PersonalDataManager.getInstance().getProfiles().size();
40            }
41        }).intValue();
42    }
43 
44    String setProfile(final AutofillProfile profile) throws InterruptedException,
45            ExecutionException {
46        String guid = ThreadUtils.runOnUiThreadBlocking(new Callable<String>() {
47            @Override
48            public String call() {
49                return PersonalDataManager.getInstance().setProfile(profile);
50            }
51        });
52        waitForDataChanged();
53        return guid;
54    }
55 
56    void deleteProfile(final String guid) throws InterruptedException {
57        ThreadUtils.runOnUiThreadBlocking(new Runnable() {
58            @Override
59            public void run() {
60               PersonalDataManager.getInstance().deleteProfile(guid);
61            }
62        });
63        waitForDataChanged();
64    }
65 
66    CreditCard getCreditCard(final String guid) throws ExecutionException {
67        return ThreadUtils.runOnUiThreadBlocking(new Callable<CreditCard>() {
68            @Override
69            public CreditCard call() {
70                return PersonalDataManager.getInstance().getCreditCard(guid);
71            }
72        });
73    }
74 
75    int getNumberOfCreditCards() throws ExecutionException {
76        return ThreadUtils.runOnUiThreadBlocking(new Callable<Integer>() {
77            @Override
78            public Integer call() {
79                return PersonalDataManager.getInstance().getCreditCards().size();
80            }
81        }).intValue();
82    }
83 
84    String setCreditCard(final CreditCard card) throws InterruptedException, ExecutionException {
85        String guid = ThreadUtils.runOnUiThreadBlocking(new Callable<String>() {
86            @Override
87            public String call() {
88                return PersonalDataManager.getInstance().setCreditCard(card);
89            }
90        });
91        waitForDataChanged();
92        return guid;
93    }
94 
95    void deleteCreditCard(final String guid) throws InterruptedException {
96        ThreadUtils.runOnUiThreadBlocking(new Runnable() {
97            @Override
98            public void run() {
99               PersonalDataManager.getInstance().deleteCreditCard(guid);
100            }
101        });
102        waitForDataChanged();
103    }
104 
105    private void registerDataObserver() {
106        mObserverNotified = new Object();
107        ThreadUtils.runOnUiThreadBlocking(new Runnable() {
108            @Override
109            public void run() {
110                PersonalDataManager.getInstance().registerDataObserver(
111                        new PersonalDataManagerObserver() {
112                            @Override
113                            public void onPersonalDataChanged() {
114                                synchronized (mObserverNotified) {
115                                    mObserverNotified.notifyAll();
116                                }
117                            }
118                        }
119                );
120            }
121        });
122    }
123 
124    public void waitForDataChanged() throws InterruptedException {
125        synchronized (mObserverNotified) {
126            mObserverNotified.wait(3000);
127        }
128    }
129}

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