| Index: android_webview/javatests/src/org/chromium/android_webview/test/AwContentsTest.java | 
| diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsTest.java | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..ff88c3b7ae3be4fe6640abcb5f059e4742701a34 | 
| --- /dev/null | 
| +++ b/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsTest.java | 
| @@ -0,0 +1,64 @@ | 
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
| +// Use of this source code is governed by a BSD-style license that can be | 
| +// found in the LICENSE file. | 
| + | 
| +package org.chromium.android_webview.test; | 
| + | 
| +import android.content.Context; | 
| +import android.os.Handler; | 
| +import android.os.Looper; | 
| +import android.test.suitebuilder.annotation.SmallTest; | 
| +import android.view.View; | 
| +import android.widget.GridLayout; | 
| + | 
| +import org.chromium.android_webview.AndroidWebViewUtil; | 
| +import org.chromium.android_webview.AwContents; | 
| +import org.chromium.android_webview.AwWebContentsDelegate; | 
| +import org.chromium.base.test.Feature; | 
| +import org.chromium.content.browser.ContentViewCore; | 
| + | 
| +import java.util.concurrent.Semaphore; | 
| +import java.util.concurrent.TimeUnit; | 
| + | 
| +/** | 
| + * AwContents tests. | 
| + */ | 
| +public class AwContentsTest extends AndroidWebViewTestBase { | 
| +    private AwWebContentsDelegate mAwWebContentsDelegate = | 
| +            new AwWebContentsDelegate(); | 
| + | 
| +    private AwContents createContents(Context context) { | 
| +        GridLayout viewGroup = new GridLayout(context); | 
| + | 
| +        ContentViewCore contentViewCore = new ContentViewCore( | 
| +                context, viewGroup, null, 0, ContentViewCore.PERSONALITY_VIEW); | 
| +        AwContents awContents = new AwContents(viewGroup, null, contentViewCore, | 
| +                mAwWebContentsDelegate, false, false); | 
| +        return awContents; | 
| +    } | 
| + | 
| +    @SmallTest | 
| +    public void testCreateDestroy() throws Throwable { | 
| +        final Throwable[] error = new Throwable[1]; | 
| +        final Semaphore s = new Semaphore(0); | 
| +        final Context context = getActivity(); | 
| + | 
| +        Runnable r = new Runnable() { | 
| +            @Override | 
| +            public void run() { | 
| +                try { | 
| +                    createContents(context).destroy(); | 
| +                } catch (Throwable t) { | 
| +                    error[0] = t; | 
| +                } finally { | 
| +                    s.release(); | 
| +                } | 
| +            } | 
| +        }; | 
| +        new Handler(Looper.getMainLooper()).post(r); | 
| +        assertTrue(s.tryAcquire(10000, TimeUnit.MILLISECONDS)); | 
| +        if (error[0] != null) { | 
| +            throw error[0]; | 
| +        } | 
| +    } | 
| +} | 
|  |