1010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// found in the LICENSE file. 4010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 5010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)package org.chromium.android_webview.test; 6010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 7010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)import android.test.suitebuilder.annotation.SmallTest; 8010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 9010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)import org.chromium.android_webview.AwContentsStatics; 10010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)import org.chromium.base.test.util.Feature; 11010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)import org.chromium.content.browser.test.util.CallbackHelper; 12010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 13010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** 14010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * AwContentsStatics tests. 15010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) */ 16010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)public class AwContentsStaticsTest extends AwTestBase { 17010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 18010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) private static class ClearClientCertCallbackHelper extends CallbackHelper 19010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) implements Runnable { 20010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) @Override 21010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) public void run() { 22010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) notifyCalled(); 23010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) } 24010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) } 25010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 26010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) @Feature({"AndroidWebView"}) 27010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) @SmallTest 28010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) public void testClearClientCertPreferences() throws Throwable { 29010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) final ClearClientCertCallbackHelper callbackHelper = new ClearClientCertCallbackHelper(); 30010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) int currentCallCount = callbackHelper.getCallCount(); 31010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) runTestOnUiThread(new Runnable() { 32010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) @Override 33010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) public void run() { 34010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Make sure calling clearClientCertPreferences with null callback does not 35010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // cause a crash. 36010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) AwContentsStatics.clearClientCertPreferences(null); 37010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) AwContentsStatics.clearClientCertPreferences(callbackHelper); 38010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) } 39010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) }); 40010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) callbackHelper.waitForCallback(currentCallCount); 41010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) } 42010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 43