• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2008 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.app.cts;
18 
19 import java.util.ArrayList;
20 
21 import android.app.Activity;
22 import android.app.AlertDialog;
23 import android.app.Instrumentation;
24 import android.app.AlertDialog.Builder;
25 import android.content.ContentResolver;
26 import android.content.ContentValues;
27 import android.content.Context;
28 import android.content.DialogInterface;
29 import android.content.DialogInterface.OnCancelListener;
30 import android.content.DialogInterface.OnClickListener;
31 import android.content.DialogInterface.OnKeyListener;
32 import android.content.DialogInterface.OnMultiChoiceClickListener;
33 import android.cts.util.PollingCheck;
34 import android.database.Cursor;
35 import android.database.CursorWrapper;
36 import android.graphics.drawable.Drawable;
37 import android.provider.Contacts.People;
38 import android.test.ActivityInstrumentationTestCase2;
39 import android.view.KeyEvent;
40 import android.view.View;
41 import android.widget.AdapterView;
42 import android.widget.ArrayAdapter;
43 import android.widget.Button;
44 import android.widget.FrameLayout;
45 import android.widget.ListAdapter;
46 import android.widget.ListView;
47 import android.widget.AdapterView.OnItemSelectedListener;
48 
49 
50 public class AlertDialog_BuilderTest extends ActivityInstrumentationTestCase2<DialogStubActivity> {
51     private Builder mBuilder;
52     private Context mContext;
53     private Instrumentation mInstrumentation;
54     private final CharSequence mTitle = "title";
55     private Drawable mDrawable;
56     private AlertDialog mDialog;
57     private Button mButton;
58     private boolean mResult;
59     private boolean mItemSelected;
60     private CharSequence mSelectedItem;
61     private final String[] mPROJECTION = new String[] {
62             People._ID, People.NAME
63     };
64 
65     private View mView;
66     private ListView mListView;
67     private ArrayList<Integer> mSelectedItems;
68     private FrameLayout mFrameLayout;
69 
70     private OnClickListener mOnClickListener = new OnClickListener() {
71         public void onClick(DialogInterface dialog, int which) {
72             mResult = true;
73         }
74     };
75 
76     private OnCancelListener mOnCancelListener = new OnCancelListener() {
77         public void onCancel(DialogInterface dialog) {
78             mResult = true;
79         }
80     };
81 
82     private OnKeyListener mOnKeyListener = new OnKeyListener() {
83         public boolean onKey(DialogInterface dialog, int key, KeyEvent envnt) {
84             mResult = true;
85             return true;
86         }
87     };
88 
89     private OnItemSelectedListener mOnItemSelectedListener = new OnItemSelectedListener() {
90         public void onItemSelected(AdapterView parent, View v, int position, long id) {
91             mItemSelected = true;
92         }
93 
94         public void onNothingSelected(AdapterView parent) {
95         }
96 
97     };
98 
99     private OnMultiChoiceClickListener mOnMultiChoiceClickListener =
100         new OnMultiChoiceClickListener() {
101         public void onClick(DialogInterface dialog, int which, boolean isChecked) {
102             mSelectedItems.add(which);
103             mResult = true;
104         }
105     };
106 
107     @Override
setUp()108     protected void setUp() throws Exception {
109         super.setUp();
110         mBuilder = null;
111         mInstrumentation = getInstrumentation();
112         mContext = getActivity();
113         final Activity activity = getActivity();
114         new PollingCheck() {
115             @Override
116             protected boolean check() {
117                 return activity.hasWindowFocus();
118             }
119         }.run();
120         mButton = null;
121         mView = null;
122         mListView = null;
123         mDialog = null;
124         mItemSelected = false;
125         mSelectedItem = null;
126         mSelectedItems = new ArrayList<Integer>();
127     }
128 
AlertDialog_BuilderTest()129     public AlertDialog_BuilderTest() {
130         super("com.android.cts.app.stub", DialogStubActivity.class);
131     }
132 
testConstructor()133     public void testConstructor() {
134         new AlertDialog.Builder(mContext);
135     }
136 
testSetIconWithParamInt()137     public void testSetIconWithParamInt() throws Throwable {
138         runTestOnUiThread(new Runnable() {
139             public void run() {
140                 mDrawable = mContext.getResources().getDrawable(android.R.drawable.btn_default);
141                 mBuilder = new AlertDialog.Builder(mContext);
142                 mBuilder.setIcon(android.R.drawable.btn_default);
143                 mDialog = mBuilder.show();
144             }
145         });
146         mInstrumentation.waitForIdleSync();
147     }
148 
testSetIconWithParamDrawable()149     public void testSetIconWithParamDrawable() throws Throwable {
150         runTestOnUiThread(new Runnable() {
151             public void run() {
152                 mDrawable = mContext.getResources().getDrawable(android.R.drawable.btn_default);
153                 mBuilder = new AlertDialog.Builder(mContext);
154                 mBuilder.setIcon(mDrawable);
155                 mDialog = mBuilder.show();
156             }
157         });
158         mInstrumentation.waitForIdleSync();
159     }
160 
testSetPositiveButtonWithParamInt()161     public void testSetPositiveButtonWithParamInt() throws Throwable {
162        runTestOnUiThread(new Runnable() {
163             public void run() {
164                 mBuilder = new AlertDialog.Builder(mContext);
165                 mBuilder.setPositiveButton(android.R.string.yes, mOnClickListener);
166                 mDialog = mBuilder.show();
167                 mButton = mDialog.getButton(DialogInterface.BUTTON_POSITIVE);
168                 mButton.performClick();
169             }
170         });
171         mInstrumentation.waitForIdleSync();
172 
173         assertEquals(mContext.getText(android.R.string.yes), mButton.getText());
174         assertTrue(mResult);
175     }
176 
testSetPositiveButtonWithParamCharSequence()177     public void testSetPositiveButtonWithParamCharSequence() throws Throwable {
178         runTestOnUiThread(new Runnable() {
179             public void run() {
180                 mBuilder = new AlertDialog.Builder(mContext);
181                 mBuilder.setPositiveButton(android.R.string.yes, mOnClickListener);
182                 mDialog = mBuilder.show();
183                 mButton = mDialog.getButton(DialogInterface.BUTTON_POSITIVE);
184                 mButton.performClick();
185             }
186         });
187         mInstrumentation.waitForIdleSync();
188         assertEquals(mContext.getText(android.R.string.yes), mButton.getText());
189         assertTrue(mResult);
190     }
191 
testSetNegativeButtonWithParamCharSequence()192     public void testSetNegativeButtonWithParamCharSequence() throws Throwable {
193         runTestOnUiThread(new Runnable() {
194             public void run() {
195                 mBuilder = new AlertDialog.Builder(mContext);
196                 mBuilder.setNegativeButton(mTitle, mOnClickListener);
197                 mDialog = mBuilder.show();
198                 mButton = mDialog.getButton(DialogInterface.BUTTON_NEGATIVE);
199                 mButton.performClick();
200             }
201         });
202         mInstrumentation.waitForIdleSync();
203         assertEquals(mTitle, mButton.getText());
204         assertTrue(mResult);
205     }
206 
testSetNegativeButtonWithParamInt()207     public void testSetNegativeButtonWithParamInt() throws Throwable {
208         runTestOnUiThread(new Runnable() {
209             public void run() {
210                 mBuilder = new AlertDialog.Builder(mContext);
211                 mBuilder.setNegativeButton(com.android.cts.app.stub.R.string.notify, mOnClickListener);
212                 mDialog = mBuilder.show();
213                 mButton = mDialog.getButton(DialogInterface.BUTTON_NEGATIVE);
214                 mButton.performClick();
215             }
216         });
217         mInstrumentation.waitForIdleSync();
218         assertEquals(mContext.getText(com.android.cts.app.stub.R.string.notify), mButton.getText());
219         assertTrue(mResult);
220     }
221 
testSetNeutralButtonWithParamInt()222     public void testSetNeutralButtonWithParamInt() throws Throwable {
223         runTestOnUiThread(new Runnable() {
224             public void run() {
225                 mBuilder = new AlertDialog.Builder(mContext);
226                 mBuilder.setNeutralButton(com.android.cts.app.stub.R.string.notify, mOnClickListener);
227                 mDialog = mBuilder.show();
228                 mButton = mDialog.getButton(DialogInterface.BUTTON_NEUTRAL);
229                 mButton.performClick();
230             }
231         });
232         mInstrumentation.waitForIdleSync();
233         assertEquals(mContext.getText(com.android.cts.app.stub.R.string.notify), mButton.getText());
234         assertTrue(mResult);
235     }
236 
testSetNeutralButtonWithParamCharSequence()237     public void testSetNeutralButtonWithParamCharSequence() throws Throwable {
238         runTestOnUiThread(new Runnable() {
239             public void run() {
240                 mBuilder = new AlertDialog.Builder(mContext);
241                 mBuilder.setNeutralButton(mTitle, mOnClickListener);
242                 mDialog = mBuilder.show();
243                 mButton = mDialog.getButton(DialogInterface.BUTTON_NEUTRAL);
244                 mButton.performClick();
245             }
246         });
247         mInstrumentation.waitForIdleSync();
248         assertEquals(mTitle, mButton.getText());
249         assertTrue(mResult);
250     }
251 
testCancelable(final boolean cancelable)252     private void testCancelable(final boolean cancelable) throws Throwable {
253         runTestOnUiThread(new Runnable() {
254             public void run() {
255                 mBuilder = new AlertDialog.Builder(mContext);
256                 mBuilder.setCancelable(cancelable);
257                 mDialog = mBuilder.show();
258             }
259         });
260         mInstrumentation.waitForIdleSync();
261         new PollingCheck() {
262             @Override
263             protected boolean check() {
264                 return mDialog.isShowing();
265             }
266         }.run();
267         mInstrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);
268         mInstrumentation.waitForIdleSync();
269         new PollingCheck() {
270             @Override
271             protected boolean check() {
272                 boolean showing = mDialog.isShowing();
273                 if (cancelable) {
274                     // if the dialog is cancelable, then pressing back
275                     // should cancel it. Thus it should not be showing
276                     return !showing;
277                 } else {
278                     // if the dialog is not cancelable, pressing back
279                     // should so nothing and it should still be showing
280                     return showing;
281                 }
282             }
283         }.run();
284     }
285 
testSetCancelable()286     public void testSetCancelable() throws Throwable {
287         testCancelable(true);
288     }
289 
testDisableCancelable()290     public void testDisableCancelable() throws Throwable {
291         testCancelable(false);
292     }
293 
testSetOnCancelListener()294     public void testSetOnCancelListener() throws Throwable {
295         runTestOnUiThread(new Runnable() {
296             public void run() {
297                 mBuilder = new AlertDialog.Builder(mContext);
298                 mBuilder.setOnCancelListener(mOnCancelListener);
299                 mDialog = mBuilder.show();
300                 mDialog.cancel();
301             }
302         });
303         mInstrumentation.waitForIdleSync();
304         assertTrue(mResult);
305     }
306 
testSetOnKeyListener()307     public void testSetOnKeyListener() throws Throwable {
308         runTestOnUiThread(new Runnable() {
309             public void run() {
310                 mBuilder = new AlertDialog.Builder(mContext);
311                 mBuilder.setOnKeyListener(mOnKeyListener);
312                 mDialog = mBuilder.show();
313             }
314         });
315         mInstrumentation.waitForIdleSync();
316         sendKeys(KeyEvent.ACTION_DOWN, KeyEvent.ACTION_DOWN);
317         assertTrue(mResult);
318     }
319 
testSetItemsWithParamInt()320     public void testSetItemsWithParamInt() throws Throwable {
321         runTestOnUiThread(new Runnable() {
322             public void run() {
323                 mBuilder = new AlertDialog.Builder(mContext);
324                 mBuilder.setItems(com.android.cts.app.stub.R.array.difficultyLevel, mOnClickListener);
325                 mDialog = mBuilder.show();
326                 mListView = mDialog.getListView();
327             }
328         });
329         mInstrumentation.waitForIdleSync();
330 
331         final CharSequence[] levels = mContext.getResources().getTextArray(
332                 com.android.cts.app.stub.R.array.difficultyLevel);
333         assertEquals(levels[0], mListView.getItemAtPosition(0));
334     }
335 
testSetItemsWithParamCharSequence()336     public void testSetItemsWithParamCharSequence() throws Throwable {
337         final CharSequence[] expect = mContext.getResources().getTextArray(
338                 com.android.cts.app.stub.R.array.difficultyLevel);
339 
340         runTestOnUiThread(new Runnable() {
341             public void run() {
342                 mBuilder = new AlertDialog.Builder(mContext);
343                 mBuilder.setItems(expect, mOnClickListener);
344                 mDialog = mBuilder.show();
345                 mListView = mDialog.getListView();
346             }
347         });
348         mInstrumentation.waitForIdleSync();
349         assertEquals(expect[0], mListView.getItemAtPosition(0));
350     }
351 
testSetAdapter()352     public void testSetAdapter() throws Throwable {
353         final ListAdapter adapter = new AdapterTest();
354         runTestOnUiThread(new Runnable() {
355             public void run() {
356                 mBuilder = new AlertDialog.Builder(mContext);
357                 mBuilder.setAdapter(adapter, mOnClickListener);
358                 mDialog = mBuilder.show();
359                 mListView = mDialog.getListView();
360             }
361         });
362         mInstrumentation.waitForIdleSync();
363         assertEquals(adapter, mListView.getAdapter());
364     }
365 
testSetCursor()366     public void testSetCursor() throws Throwable {
367         preparePeople();
368         final Cursor c = mContext.getContentResolver().query(People.CONTENT_URI, mPROJECTION, null,
369                 null, null);
370 
371         runTestOnUiThread(new Runnable() {
372             public void run() {
373                 mBuilder = new AlertDialog.Builder(mContext);
374                 mBuilder.setCursor(c, mOnClickListener, People.NAME);
375                 mDialog = mBuilder.show();
376                 mListView = mDialog.getListView();
377                 mListView.performItemClick(null, 0, 0);
378             }
379         });
380         mInstrumentation.waitForIdleSync();
381         final CursorWrapper selected = (CursorWrapper)mListView.getSelectedItem();
382         assertEquals(c.getString(1), selected.getString(1));
383         assertTrue(mResult);
384     }
385 
testSetMultiChoiceItemsWithParamInt()386     public void testSetMultiChoiceItemsWithParamInt() throws Throwable {
387 
388         final CharSequence[] items = mContext.getResources().getTextArray(
389                 com.android.cts.app.stub.R.array.difficultyLevel);
390 
391         runTestOnUiThread(new Runnable() {
392             public void run() {
393                 mBuilder = new AlertDialog.Builder(mContext);
394                 mBuilder.setMultiChoiceItems(com.android.cts.app.stub.R.array.difficultyLevel, null,
395                         mOnMultiChoiceClickListener);
396                 mDialog = mBuilder.show();
397                 mListView = mDialog.getListView();
398                 mSelectedItem = (CharSequence)mListView.getSelectedItem();
399                 mListView.performItemClick(null, 0, 0);
400                 mListView.performItemClick(null, 1, 0);
401             }
402         });
403         mInstrumentation.waitForIdleSync();
404         assertEquals(items[0], mSelectedItem);
405         assertEquals(2, mSelectedItems.size());
406         assertEquals(items[0], mListView.getItemAtPosition(0));
407         assertTrue(mResult);
408     }
409 
testSetMultiChoiceItemsWithParamCharSequence()410     public void testSetMultiChoiceItemsWithParamCharSequence() throws Throwable {
411         final CharSequence[] items = mContext.getResources().getTextArray(
412                 com.android.cts.app.stub.R.array.difficultyLevel);
413 
414         runTestOnUiThread(new Runnable() {
415             public void run() {
416                 mBuilder = new AlertDialog.Builder(mContext);
417                 mBuilder.setMultiChoiceItems(items, null, mOnMultiChoiceClickListener);
418                 mDialog = mBuilder.show();
419                 mListView = mDialog.getListView();
420                 mSelectedItem = (CharSequence)mListView.getSelectedItem();
421                 mListView.performItemClick(null, 0, 0);
422                 mListView.performItemClick(null, 1, 0);
423             }
424         });
425         mInstrumentation.waitForIdleSync();
426         assertEquals(items[0], mSelectedItem);
427         assertEquals(2, mSelectedItems.size());
428         assertEquals(items[0], mListView.getItemAtPosition(0));
429         assertTrue(mResult);
430     }
431 
testSetMultiChoiceItemsWithParamCursor()432     public void testSetMultiChoiceItemsWithParamCursor() throws Throwable {
433         preparePeople();
434         final Cursor c = mContext.getContentResolver().query(People.CONTENT_URI, mPROJECTION, null,
435                 null, null);
436 
437         runTestOnUiThread(new Runnable() {
438             public void run() {
439                 mBuilder = new AlertDialog.Builder(mContext);
440                 mBuilder.setMultiChoiceItems(c, People.NAME, People.NAME,
441                         mOnMultiChoiceClickListener);
442                 mDialog = mBuilder.show();
443                 mListView = mDialog.getListView();
444                 mListView.performItemClick(null, 0, 0);
445                 mListView.performItemClick(null, 1, 0);
446             }
447         });
448         mInstrumentation.waitForIdleSync();
449         final CursorWrapper selected = (CursorWrapper)mListView.getSelectedItem();
450         assertEquals(c.getString(1), selected.getString(1));
451         assertEquals(2, mSelectedItems.size());
452         assertTrue(mResult);
453     }
454 
testSetSingleChoiceItemsWithParamInt()455     public void testSetSingleChoiceItemsWithParamInt() throws Throwable {
456         final CharSequence[] items = mContext.getResources().getTextArray(
457                 com.android.cts.app.stub.R.array.difficultyLevel);
458 
459         runTestOnUiThread(new Runnable() {
460             public void run() {
461                 mBuilder = new AlertDialog.Builder(mContext);
462                 mBuilder.setSingleChoiceItems(com.android.cts.app.stub.R.array.difficultyLevel, 0,
463                         mOnClickListener);
464                 mDialog = mBuilder.show();
465                 mListView = mDialog.getListView();
466                 mSelectedItem = (CharSequence)mListView.getSelectedItem();
467                 mListView.performItemClick(null, 0, 0);
468             }
469         });
470         mInstrumentation.waitForIdleSync();
471         assertEquals(items[0], mSelectedItem);
472         assertEquals(items[0], mListView.getItemAtPosition(0));
473         assertTrue(mResult);
474     }
475 
preparePeople()476     private void preparePeople() {
477         final ContentResolver mResolver = mContext.getContentResolver();
478         mResolver.delete(People.CONTENT_URI, null, null);
479         final ContentValues valuse = new ContentValues();
480         valuse.put(People._ID, "1");
481         valuse.put(People.NAME, "name");
482         mResolver.insert(People.CONTENT_URI, valuse);
483     }
484 
testSetSingleChoiceItemsWithParamCursor()485     public void testSetSingleChoiceItemsWithParamCursor() throws Throwable {
486         final String[] PROJECTION = new String[] {
487                 People._ID, People.NAME
488         };
489         preparePeople();
490         final Cursor c = mContext.getContentResolver().query(People.CONTENT_URI, PROJECTION, null,
491                 null, null);
492 
493         runTestOnUiThread(new Runnable() {
494             public void run() {
495                 mBuilder = new AlertDialog.Builder(mContext);
496                 mBuilder.setSingleChoiceItems(c, 0, People.NAME, mOnClickListener);
497                 mDialog = mBuilder.show();
498                 mListView = mDialog.getListView();
499                 mListView.performItemClick(null, 0, 0);
500             }
501         });
502         mInstrumentation.waitForIdleSync();
503         final CursorWrapper selected = (CursorWrapper)mListView.getSelectedItem();
504         assertEquals(c.getString(1), selected.getString(1));
505         assertTrue(mResult);
506     }
507 
testSetSingleChoiceItemsWithParamCharSequence()508     public void testSetSingleChoiceItemsWithParamCharSequence() throws Throwable {
509         final CharSequence[] items = mContext.getResources().getTextArray(
510                 com.android.cts.app.stub.R.array.difficultyLevel);
511 
512         runTestOnUiThread(new Runnable() {
513             public void run() {
514                 mBuilder = new AlertDialog.Builder(mContext);
515                 mBuilder.setSingleChoiceItems(items, 0, mOnClickListener);
516                 mDialog = mBuilder.show();
517                 mListView = mDialog.getListView();
518                 mSelectedItem = (CharSequence)mListView.getSelectedItem();
519                 mListView.performItemClick(null, 0, 0);
520             }
521         });
522         mInstrumentation.waitForIdleSync();
523         assertEquals(items[0], mSelectedItem);
524         assertEquals(items[0], mListView.getItemAtPosition(0));
525         assertTrue(mResult);
526     }
527 
testSetSingleChoiceItems()528     public void testSetSingleChoiceItems() throws Throwable {
529         final CharSequence[] items = mContext.getResources().getTextArray(
530                 com.android.cts.app.stub.R.array.difficultyLevel);
531 
532         runTestOnUiThread(new Runnable() {
533             public void run() {
534                 mBuilder = new AlertDialog.Builder(mContext);
535                 mBuilder.setSingleChoiceItems(new ArrayAdapter<CharSequence>(mContext,
536                         android.R.layout.select_dialog_singlechoice, android.R.id.text1, items), 0,
537                         mOnClickListener);
538                 mDialog = mBuilder.show();
539                 mListView = mDialog.getListView();
540                 mSelectedItem = (CharSequence)mListView.getSelectedItem();
541                 mListView.performItemClick(null, 0, 0);
542             }
543         });
544         mInstrumentation.waitForIdleSync();
545         assertEquals(items[0], mSelectedItem);
546         assertEquals(items[0], mListView.getItemAtPosition(0));
547         assertTrue(mResult);
548     }
549 
testSetOnItemSelectedListener()550     public void testSetOnItemSelectedListener() throws Throwable {
551         runTestOnUiThread(new Runnable() {
552             public void run() {
553                 mBuilder = new AlertDialog.Builder(mContext);
554                 mBuilder.setOnItemSelectedListener(mOnItemSelectedListener);
555                 mBuilder.setItems(com.android.cts.app.stub.R.array.difficultyLevel, mOnClickListener);
556                 mDialog = mBuilder.show();
557                 mListView = mDialog.getListView();
558                 mListView.pointToPosition(0, 0);
559             }
560         });
561         mInstrumentation.waitForIdleSync();
562         assertTrue(mItemSelected);
563     }
564 
testSetView()565     public void testSetView() throws Throwable {
566         final View view = new View(mContext);
567         view.setId(100);
568         runTestOnUiThread(new Runnable() {
569             public void run() {
570                 mBuilder = new AlertDialog.Builder(mContext);
571                 mBuilder.setView(view);
572                 mDialog = mBuilder.show();
573                 mView = mDialog.getWindow().findViewById(100);
574             }
575         });
576         mInstrumentation.waitForIdleSync();
577         assertEquals(view, mView);
578     }
579 
testSetViewCustom()580     public void testSetViewCustom() throws Throwable {
581         final int viewSpacingLeft = 10;
582         final int viewSpacingTop = 20;
583         final int viewSpacingRight = 30;
584         final int viewSpacingBottom = 40;
585         final View view = new View(mContext);
586         view.setId(100);
587         runTestOnUiThread(new Runnable() {
588             public void run() {
589                 mBuilder = new AlertDialog.Builder(mContext);
590                 mBuilder.setView(view, viewSpacingLeft, viewSpacingTop, viewSpacingRight,
591                         viewSpacingBottom);
592                 mDialog = mBuilder.show();
593                 mView = mDialog.getWindow().findViewById(100);
594             }
595         });
596         mInstrumentation.waitForIdleSync();
597         assertEquals(view, mView);
598     }
599 
testSetInverseBackgroundForced()600     public void testSetInverseBackgroundForced() throws Throwable {
601         runTestOnUiThread(new Runnable() {
602             public void run() {
603                 mBuilder = new AlertDialog.Builder(mContext);
604                 mBuilder.setInverseBackgroundForced(true);
605                 mDialog = mBuilder.create();
606                 mDialog.show();
607             }
608         });
609         mInstrumentation.waitForIdleSync();
610     }
611 
testCreate()612     public void testCreate() throws Throwable {
613         runTestOnUiThread(new Runnable() {
614             public void run() {
615                 mBuilder = new AlertDialog.Builder(mContext);
616                 mDialog = mBuilder.create();
617                 mDialog.show();
618             }
619         });
620         mInstrumentation.waitForIdleSync();
621         assertNotNull(mDialog);
622         assertTrue(mDialog.isShowing());
623     }
624 
testShow()625     public void testShow() throws Throwable {
626         runTestOnUiThread(new Runnable() {
627             public void run() {
628                 mBuilder = new AlertDialog.Builder(mContext);
629                 mDialog = mBuilder.show();
630             }
631         });
632         mInstrumentation.waitForIdleSync();
633         assertTrue(mDialog.isShowing());
634     }
635 
636     private static class AdapterTest implements android.widget.ListAdapter {
areAllItemsEnabled()637         public boolean areAllItemsEnabled() {
638             return true;
639         }
640 
isEnabled(int position)641         public boolean isEnabled(int position) {
642             return false;
643         }
644 
getCount()645         public int getCount() {
646             return 0;
647         }
648 
getItem(int position)649         public Object getItem(int position) {
650             return null;
651         }
652 
getItemId(int position)653         public long getItemId(int position) {
654             return 0;
655         }
656 
getItemViewType(int position)657         public int getItemViewType(int position) {
658             return 0;
659         }
660 
getView( int position, android.view.View convertView, android.view.ViewGroup parent)661         public android.view.View getView( int position,
662                                           android.view.View convertView,
663                                           android.view.ViewGroup parent){
664             return null;
665         }
666 
getViewTypeCount()667         public int getViewTypeCount() {
668             return 1;
669         }
670 
hasStableIds()671         public boolean hasStableIds() {
672             return false;
673         }
674 
isEmpty()675         public boolean isEmpty() {
676             return true;
677         }
678 
registerDataSetObserver( android.database.DataSetObserver observer)679         public void registerDataSetObserver(
680             android.database.DataSetObserver observer) {
681         }
682 
unregisterDataSetObserver( android.database.DataSetObserver observer)683         public void unregisterDataSetObserver(
684             android.database.DataSetObserver observer) {
685         }
686     }
687 }
688