Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / android_webview / javatests / src / org / chromium / android_webview / test / util / AwQuotaManagerBridgeTestUtil.java
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
5 package org.chromium.android_webview.test.util;
6
7 import android.webkit.ValueCallback;
8
9 import org.chromium.android_webview.AwQuotaManagerBridge;
10 import org.chromium.android_webview.test.AwTestBase;
11 import org.chromium.content.browser.test.util.CallbackHelper;
12
13 import java.util.concurrent.Callable;
14
15 /**
16  * This class provides common methods for AwQuotaManagerBridge related tests
17  */
18 public class AwQuotaManagerBridgeTestUtil {
19
20     public static AwQuotaManagerBridge getQuotaManagerBridge(AwTestBase awTestBase)
21             throws Exception {
22         return awTestBase.runTestOnUiThreadAndGetResult(new Callable<AwQuotaManagerBridge>() {
23             @Override
24             public AwQuotaManagerBridge call() throws Exception {
25                 return AwQuotaManagerBridge.getInstance();
26             }
27         });
28     }
29
30     private static class GetOriginsCallbackHelper extends CallbackHelper {
31         private AwQuotaManagerBridge.Origins mOrigins;
32
33         public void notifyCalled(AwQuotaManagerBridge.Origins origins) {
34             mOrigins = origins;
35             notifyCalled();
36         }
37
38         public AwQuotaManagerBridge.Origins getOrigins() {
39             assert getCallCount() > 0;
40             return mOrigins;
41         }
42     }
43
44     public static AwQuotaManagerBridge.Origins getOrigins(AwTestBase awTestBase)
45             throws Exception {
46         final GetOriginsCallbackHelper callbackHelper = new GetOriginsCallbackHelper();
47         final AwQuotaManagerBridge bridge = getQuotaManagerBridge(awTestBase);
48
49         int callCount = callbackHelper.getCallCount();
50         awTestBase.getInstrumentation().runOnMainSync(new Runnable() {
51             @Override
52             public void run() {
53                 bridge.getOrigins(
54                         new ValueCallback<AwQuotaManagerBridge.Origins>() {
55                             @Override
56                             public void onReceiveValue(AwQuotaManagerBridge.Origins origins) {
57                                 callbackHelper.notifyCalled(origins);
58                             }
59                         });
60             }
61         });
62         callbackHelper.waitForCallback(callCount);
63
64         return callbackHelper.getOrigins();
65     }
66
67 }