summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:45 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:45 -0800
commitd83a98f4ce9cfa908f5c54bbd70f03eec07e7553 (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /tests
parent076357b8567458d4b6dfdcf839ef751634cd2bfb (diff)
downloadframeworks_base-d83a98f4ce9cfa908f5c54bbd70f03eec07e7553.zip
frameworks_base-d83a98f4ce9cfa908f5c54bbd70f03eec07e7553.tar.gz
frameworks_base-d83a98f4ce9cfa908f5c54bbd70f03eec07e7553.tar.bz2
auto import from //depot/cupcake/@135843
Diffstat (limited to 'tests')
-rw-r--r--tests/AndroidTests/Android.mk22
-rw-r--r--tests/AndroidTests/AndroidManifest.xml226
-rw-r--r--tests/AndroidTests/DisabledTestApp/Android.mk12
-rw-r--r--tests/AndroidTests/DisabledTestApp/AndroidManifest.xml13
-rw-r--r--tests/AndroidTests/DisabledTestApp/src/com/android/unit_tests/disabled_app/EnabledActivity.java27
-rw-r--r--tests/AndroidTests/EnabledTestApp/Android.mk12
-rw-r--r--tests/AndroidTests/EnabledTestApp/AndroidManifest.xml37
-rw-r--r--tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/DisabledActivity.java27
-rw-r--r--tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/DisabledProvider.java54
-rw-r--r--tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/DisabledReceiver.java32
-rw-r--r--tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/DisabledService.java32
-rw-r--r--tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/EnabledActivity.java27
-rw-r--r--tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/EnabledProvider.java54
-rw-r--r--tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/EnabledReceiver.java32
-rw-r--r--tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/EnabledService.java32
-rw-r--r--tests/AndroidTests/MODULE_LICENSE_APACHE20
-rw-r--r--tests/AndroidTests/NOTICE190
-rw-r--r--tests/AndroidTests/assets/text.txt1
-rw-r--r--tests/AndroidTests/res/drawable/test128x96.pngbin21474 -> 0 bytes
-rw-r--r--tests/AndroidTests/res/drawable/test16x12.pngbin707 -> 0 bytes
-rw-r--r--tests/AndroidTests/res/drawable/test256x192.pngbin78630 -> 0 bytes
-rw-r--r--tests/AndroidTests/res/drawable/test320x240.pngbin39533 -> 0 bytes
-rw-r--r--tests/AndroidTests/res/drawable/test32x24.pngbin1841 -> 0 bytes
-rw-r--r--tests/AndroidTests/res/drawable/test64x48.pngbin6020 -> 0 bytes
-rw-r--r--tests/AndroidTests/res/layout/layout_five.xml22
-rw-r--r--tests/AndroidTests/res/layout/layout_four.xml20
-rw-r--r--tests/AndroidTests/res/layout/layout_one.xml20
-rw-r--r--tests/AndroidTests/res/layout/layout_six.xml27
-rw-r--r--tests/AndroidTests/res/layout/layout_tag.xml23
-rw-r--r--tests/AndroidTests/res/layout/layout_three.xml27
-rw-r--r--tests/AndroidTests/res/layout/layout_two.xml23
-rw-r--r--tests/AndroidTests/res/raw/calendarjs.txt1
-rw-r--r--tests/AndroidTests/res/raw/calendarjsgz.jsgzbin1956 -> 0 bytes
-rw-r--r--tests/AndroidTests/res/raw/calendarxml.xml38
-rw-r--r--tests/AndroidTests/res/raw/calendarxmlgz.xmlgzbin2412 -> 0 bytes
-rw-r--r--tests/AndroidTests/res/raw/medium.xml27
-rw-r--r--tests/AndroidTests/res/raw/small.xml20
-rw-r--r--tests/AndroidTests/res/raw/text.txt1
-rw-r--r--tests/AndroidTests/res/raw/youtube.xml1852
-rw-r--r--tests/AndroidTests/res/values-12key/configVarying.xml26
-rw-r--r--tests/AndroidTests/res/values-320x200/configVarying.xml26
-rw-r--r--tests/AndroidTests/res/values-480x320/configVarying.xml26
-rw-r--r--tests/AndroidTests/res/values-cs/strings.xml25
-rw-r--r--tests/AndroidTests/res/values-dpad/configVarying.xml22
-rw-r--r--tests/AndroidTests/res/values-finger/configVarying.xml26
-rw-r--r--tests/AndroidTests/res/values-keysexposed/configVarying.xml22
-rw-r--r--tests/AndroidTests/res/values-keyshidden/configVarying.xml22
-rw-r--r--tests/AndroidTests/res/values-mcc111/configVarying.xml26
-rw-r--r--tests/AndroidTests/res/values-mnc222/configVarying.xml26
-rw-r--r--tests/AndroidTests/res/values-nokeys/configVarying.xml22
-rw-r--r--tests/AndroidTests/res/values-nonav/configVarying.xml22
-rw-r--r--tests/AndroidTests/res/values-notouch/configVarying.xml26
-rw-r--r--tests/AndroidTests/res/values-qwerty/configVarying.xml22
-rw-r--r--tests/AndroidTests/res/values-stylus/configVarying.xml26
-rw-r--r--tests/AndroidTests/res/values-trackball/configVarying.xml22
-rw-r--r--tests/AndroidTests/res/values-wheel/configVarying.xml22
-rw-r--r--tests/AndroidTests/res/values-xx-rYY/configVarying.xml26
-rw-r--r--tests/AndroidTests/res/values-xx/configVarying.xml26
-rw-r--r--tests/AndroidTests/res/values/arrays.xml42
-rw-r--r--tests/AndroidTests/res/values/attrs.xml44
-rw-r--r--tests/AndroidTests/res/values/bools.xml20
-rw-r--r--tests/AndroidTests/res/values/configVarying.xml27
-rw-r--r--tests/AndroidTests/res/values/dimens.xml42
-rw-r--r--tests/AndroidTests/res/values/strings.xml54
-rw-r--r--tests/AndroidTests/res/values/styles.xml46
-rw-r--r--tests/AndroidTests/res/xml/calendar.xml38
-rw-r--r--tests/AndroidTests/res/xml/metadata.xml23
-rw-r--r--tests/AndroidTests/res/xml/metadata_app.xml24
-rw-r--r--tests/AndroidTests/res/xml/searchable.xml21
-rwxr-xr-xtests/AndroidTests/run_test.sh4
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/AndroidPerformanceTests.java39
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/AndroidTests.java32
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/ApacheHttpTests.java13
-rwxr-xr-xtests/AndroidTests/src/com/android/unit_tests/AppCacheTest.java744
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/ArrayListTest.java327
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/BrickDeniedTest.java33
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/BuildTest.java131
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/CharSequencesTest.java58
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/ComponentTest.java738
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/ContentQueryMapTest.java104
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/CreateViewTest.java123
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/CursorWindowTest.java173
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/DatabaseCursorTest.java626
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/DatabaseGeneralTest.java871
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/DatabaseLocaleTest.java102
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/DatabasePerformanceTests.java1353
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/DatabaseStatementTest.java320
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/DatabaseStressTest.java99
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/DatabaseTests.java33
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/ExpatPerformanceTest.java123
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/GDataParseTest.java162
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/GeocoderTest.java64
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/GoogleHttpClientTest.java122
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/GoogleLoginServiceTest.java145
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/GraphicsPerformanceTests.java448
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/HashMapTest.java185
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/HashSetTest.java207
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/HashtableTest.java357
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/HeapTest.java631
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/HtmlTest.java160
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/InflateTest.java154
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/InstanceofTest.java141
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/JavaPerformanceTests.java38
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/JniLibTest.java59
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/LabelView.java191
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/LinkedListTest.java529
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/LinkifyTest.java68
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/LocalSocketTest.java171
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/LocationManagerTest.java132
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/LogTest.java152
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/MathTest.java380
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/MenuTest.java277
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/MonitorTest.java469
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/ParentalControlTest.java57
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/PerformanceTests.java1223
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/RegexTest.java124
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/SMSTest.java277
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/SSLTest.java52
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/SafeSaxTest.java539
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/SearchManagerTest.java542
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/SerializationTest.java47
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/SettingsProviderTest.java147
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/SimplePullParserTest.java132
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/SmsProviderTest.java76
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/SpannedTest.java187
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/StringTest.java951
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/TestHttpClient.java116
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/TestHttpServer.java207
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/TestHttpService.java608
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/TextLayoutTest.java51
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/TextUtilsTest.java358
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/TextViewPerformanceTest.java132
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/TextViewTest.java61
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/ThreadBitmapTest.java47
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/TimeTest.java525
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/TimeUtilsTest.java432
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/TraceTest.java215
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/TreeMapTest.java281
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/TreeSetTest.java349
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/UriMatcherTest.java95
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/UriTest.java502
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/UrlRulesTest.java120
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/VectorTest.java555
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/WebkitTest.java59
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/AbortReceiver.java49
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/ActivityManagerTest.java135
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/ActivityTests.java40
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/ActivityTestsBase.java212
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/BroadcastTest.java536
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/ClearTop.java51
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/IntentSenderTest.java86
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/LaunchTest.java75
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/LaunchpadActivity.java588
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/LaunchpadTabActivity.java43
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/LifecycleTest.java108
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/LocalActivity.java33
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/LocalDeniedReceiver.java42
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/LocalDeniedService.java22
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/LocalDialog.java33
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/LocalGrantedReceiver.java42
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/LocalGrantedService.java22
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/LocalProvider.java163
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/LocalReceiver.java77
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/LocalScreen.java33
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/LocalService.java122
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/MetaDataTest.java166
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/RemoteDeniedReceiver.java42
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/RemoteGrantedReceiver.java42
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/RemoteReceiver.java50
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/RemoteSubActivityScreen.java59
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/ResultReceiver.java43
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/ServiceTest.java465
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/SetTimeZonePermissionsTest.java70
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/SubActivityScreen.java168
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/SubActivityTest.java92
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/TestedActivity.java77
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/activity/TestedScreen.java128
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/content/ArrayTest.java77
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/content/AssetTest.java74
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/content/ConfigTest.java326
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/content/ContentTests.java32
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/content/FractionTest.java92
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/content/IntentFilterTest.java570
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/content/PluralResourcesTest.java97
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/content/PrimitiveTest.java141
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/content/RawResourceTest.java40
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/content/ResourceNameTest.java61
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/content/ResourceTests.java33
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/graphics/BitmapTest.java232
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/graphics/GraphicsTests.java29
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/graphics/TypefaceTest.java91
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/os/AidlTest.aidl20
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/os/AidlTest.java422
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/os/BroadcasterTest.java232
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/os/FileObserverTest.java120
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/os/FileUtilsTest.java171
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/os/HandlerStateMachineTest.java119
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/os/HandlerTester.java89
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/os/HandlerThreadTest.java90
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/os/IAidlTest.aidl47
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/os/IdleHandlerTest.java199
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/os/MemoryFileTest.java243
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/os/MessageQueueTest.java103
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/os/MessengerService.java50
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/os/MessengerTest.java119
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/os/OsTests.java41
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/os/PowerManagerTest.java125
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/os/SystemPropertiesTest.java51
-rw-r--r--tests/AndroidTests/src/com/android/unit_tests/os/TestHandlerThread.java104
-rw-r--r--tests/CoreTests/Android.mk2
-rw-r--r--tests/CoreTests/MODULE_LICENSE_APACHE20
-rw-r--r--tests/CoreTests/android/Android.mk15
-rw-r--r--tests/CoreTests/android/AndroidManifest.xml55
-rw-r--r--tests/CoreTests/android/content/ObserverNodeTest.java92
-rw-r--r--tests/CoreTests/android/content/SyncStorageEngineTest.java66
-rw-r--r--tests/CoreTests/android/core/AbstractJDBCDriverTest.java211
-rw-r--r--tests/CoreTests/android/core/ArrayListTest.java94
-rw-r--r--tests/CoreTests/android/core/AtParserTest.java348
-rw-r--r--tests/CoreTests/android/core/BooleanTest.java46
-rw-r--r--tests/CoreTests/android/core/BufferedInputStreamTest.java81
-rw-r--r--tests/CoreTests/android/core/BufferedOutputStreamTest.java50
-rw-r--r--tests/CoreTests/android/core/BufferedReaderTest.java66
-rw-r--r--tests/CoreTests/android/core/BufferedWriterTest.java53
-rw-r--r--tests/CoreTests/android/core/ByteArrayInputStreamTest.java43
-rw-r--r--tests/CoreTests/android/core/ByteArrayOutputStreamTest.java43
-rw-r--r--tests/CoreTests/android/core/CharArrayReaderTest.java42
-rw-r--r--tests/CoreTests/android/core/CharArrayWriterTest.java48
-rw-r--r--tests/CoreTests/android/core/ChecksumTest.java97
-rw-r--r--tests/CoreTests/android/core/ClassLoaderTest.java243
-rw-r--r--tests/CoreTests/android/core/ClassTest.java337
-rw-r--r--tests/CoreTests/android/core/CoreTests.java66
-rw-r--r--tests/CoreTests/android/core/CryptoTest.java137
-rw-r--r--tests/CoreTests/android/core/DataInputStreamTest.java107
-rw-r--r--tests/CoreTests/android/core/DataOutputStreamTest.java51
-rw-r--r--tests/CoreTests/android/core/DatagramTest.java192
-rw-r--r--tests/CoreTests/android/core/DeflateTest.java199
-rw-r--r--tests/CoreTests/android/core/EnumTest.java64
-rw-r--r--tests/CoreTests/android/core/FileTest.java38
-rw-r--r--tests/CoreTests/android/core/FloatDoubleTest.java152
-rw-r--r--tests/CoreTests/android/core/GZIPStreamTest.java114
-rw-r--r--tests/CoreTests/android/core/HashMapPerfTest.java93
-rw-r--r--tests/CoreTests/android/core/HashMapTest.java281
-rw-r--r--tests/CoreTests/android/core/HttpConstants.java157
-rw-r--r--tests/CoreTests/android/core/IOUtil.java193
-rw-r--r--tests/CoreTests/android/core/InetAddrTest.java100
-rw-r--r--tests/CoreTests/android/core/InputStreamReaderTest.java114
-rw-r--r--tests/CoreTests/android/core/JavaTests.java86
-rw-r--r--tests/CoreTests/android/core/LineNumberReaderTest.java79
-rw-r--r--tests/CoreTests/android/core/LocaleTest.java199
-rw-r--r--tests/CoreTests/android/core/LowLevelNetRunner.java46
-rw-r--r--tests/CoreTests/android/core/MathTest.java831
-rw-r--r--tests/CoreTests/android/core/MiscRegressionTest.java506
-rw-r--r--tests/CoreTests/android/core/NIOTest.java694
-rw-r--r--tests/CoreTests/android/core/OutputStreamWriterTest.java48
-rw-r--r--tests/CoreTests/android/core/ParseIntTest.java110
-rw-r--r--tests/CoreTests/android/core/PipedStreamTest.java303
-rw-r--r--tests/CoreTests/android/core/PrintWriterTest.java75
-rw-r--r--tests/CoreTests/android/core/PushbackInputStreamTest.java57
-rw-r--r--tests/CoreTests/android/core/PushbackReaderTest.java57
-rw-r--r--tests/CoreTests/android/core/ReflectArrayTest.java136
-rw-r--r--tests/CoreTests/android/core/RegexTest.java288
-rw-r--r--tests/CoreTests/android/core/RequestAPITest.java483
-rw-r--r--tests/CoreTests/android/core/SQLiteJDBCDriverTest.java137
-rw-r--r--tests/CoreTests/android/core/SSLSocketTest.java872
-rw-r--r--tests/CoreTests/android/core/Sha1Test.java69
-rw-r--r--tests/CoreTests/android/core/SocketTest.java288
-rw-r--r--tests/CoreTests/android/core/StreamTokenizerTest.java96
-rw-r--r--tests/CoreTests/android/core/StrictMathTest.java855
-rw-r--r--tests/CoreTests/android/core/StringReaderTest.java40
-rw-r--r--tests/CoreTests/android/core/StringTest.java149
-rw-r--r--tests/CoreTests/android/core/StringWriterTest.java42
-rw-r--r--tests/CoreTests/android/core/TestEventHandler.java811
-rw-r--r--tests/CoreTests/android/core/TestWebData.java132
-rw-r--r--tests/CoreTests/android/core/TestWebServer.java871
-rw-r--r--tests/CoreTests/android/core/TreeMapTest.java105
-rw-r--r--tests/CoreTests/android/core/URITest.java55
-rw-r--r--tests/CoreTests/android/core/URLTest.java200
-rw-r--r--tests/CoreTests/android/core/ZipFileTest.java200
-rw-r--r--tests/CoreTests/android/core/ZipStreamTest.java171
-rw-r--r--tests/CoreTests/android/database/MatrixCursorTest.java146
-rw-r--r--tests/CoreTests/android/graphics/ColorStateListTest.java68
-rw-r--r--tests/CoreTests/android/graphics/drawable/StateListDrawableTest.java98
-rw-r--r--tests/CoreTests/android/location/LocationManagerProximityTest.java307
-rw-r--r--tests/CoreTests/android/location/LocationTest.java230
-rw-r--r--tests/CoreTests/android/res/color/color1.xml20
-rw-r--r--tests/CoreTests/android/res/color/color_no_default.xml19
-rw-r--r--tests/CoreTests/android/res/values/colors.xml24
-rw-r--r--tests/CoreTests/android/test/AndroidTestRunnerTest.java294
-rw-r--r--tests/CoreTests/android/test/InstrumentationTestRunnerTest.java272
-rw-r--r--tests/CoreTests/android/test/StubTestBrowserActivity.java33
-rw-r--r--tests/CoreTests/android/test/TestBrowserActivityTest.java270
-rw-r--r--tests/CoreTests/android/test/TestBrowserControllerImplTest.java134
-rw-r--r--tests/CoreTests/android/test/TestBrowserTests.java22
-rw-r--r--tests/CoreTests/android/test/TestCaseUtilTest.java100
-rw-r--r--tests/CoreTests/android/test/suitebuilder/AssignableFromTest.java85
-rw-r--r--tests/CoreTests/android/test/suitebuilder/InstrumentationTestSuiteBuilderTest.java116
-rw-r--r--tests/CoreTests/android/test/suitebuilder/ListTestCaseNames.java102
-rw-r--r--tests/CoreTests/android/test/suitebuilder/SmokeTestSuiteBuilderTest.java34
-rw-r--r--tests/CoreTests/android/test/suitebuilder/TestSuiteBuilderTest.java218
-rw-r--r--tests/CoreTests/android/test/suitebuilder/UnitTestSuiteBuilderTest.java109
-rw-r--r--tests/CoreTests/android/test/suitebuilder/annotation/HasAnnotationTest.java76
-rw-r--r--tests/CoreTests/android/test/suitebuilder/annotation/HasClassAnnotationTest.java57
-rw-r--r--tests/CoreTests/android/test/suitebuilder/annotation/HasMethodAnnotationTest.java56
-rw-r--r--tests/CoreTests/android/test/suitebuilder/examples/OuterTest.java37
-rw-r--r--tests/CoreTests/android/test/suitebuilder/examples/error/ErrorTest.java30
-rw-r--r--tests/CoreTests/android/test/suitebuilder/examples/error/FailingTest.java30
-rw-r--r--tests/CoreTests/android/test/suitebuilder/examples/instrumentation/InstrumentationTest.java26
-rw-r--r--tests/CoreTests/android/test/suitebuilder/examples/nested/Level1Test.java26
-rw-r--r--tests/CoreTests/android/test/suitebuilder/examples/nested/nested/Level2Test.java26
-rw-r--r--tests/CoreTests/android/test/suitebuilder/examples/simple/AnotherSimpleTest.java26
-rw-r--r--tests/CoreTests/android/test/suitebuilder/examples/simple/SimpleTest.java30
-rw-r--r--tests/CoreTests/android/test/suitebuilder/examples/smoke/NonSmokeTest.java26
-rw-r--r--tests/CoreTests/android/test/suitebuilder/examples/smoke/SmokeTest.java28
-rw-r--r--tests/CoreTests/android/test/suitebuilder/examples/subclass/SubclassTest.java24
-rw-r--r--tests/CoreTests/android/test/suitebuilder/examples/subclass/SuperclassTest.java26
-rw-r--r--tests/CoreTests/android/test/suitebuilder/examples/suppress/PartiallySuppressedTest.java33
-rw-r--r--tests/CoreTests/android/test/suitebuilder/examples/suppress/SuppressedTest.java29
-rw-r--r--tests/CoreTests/android/util/DayOfMonthCursorTest.java157
-rw-r--r--tests/CoreTests/android/util/FloatMathTest.java55
-rw-r--r--tests/CoreTests/android/util/MonthDisplayHelperTest.java211
-rw-r--r--tests/CoreTests/android/util/StateSetTest.java182
-rw-r--r--tests/CoreTests/android/view/FocusFinderTest.java576
-rw-r--r--tests/CoreTests/android/view/MockView.java25
-rw-r--r--tests/CoreTests/android/view/ViewGroupAttributesTest.java83
-rw-r--r--tests/CoreTests/android/webkit/CookieTest.java188
-rw-r--r--tests/CoreTests/com/android/internal/telephony/ATResponseParserTest.java113
-rw-r--r--tests/CoreTests/com/android/internal/telephony/PhoneNumberUtilsTest.java326
-rw-r--r--tests/CoreTests/com/android/internal/telephony/PhoneNumberWatcherTest.java65
-rw-r--r--tests/CoreTests/com/android/internal/telephony/TelephonyTests.java53
-rw-r--r--tests/CoreTests/com/android/internal/telephony/TestPhoneNotifier.java53
-rw-r--r--tests/CoreTests/com/android/internal/telephony/gsm/AdnRecordTest.java176
-rw-r--r--tests/CoreTests/com/android/internal/telephony/gsm/GSMPhoneTest.java1938
-rw-r--r--tests/CoreTests/com/android/internal/telephony/gsm/GSMTestHandler.java118
-rw-r--r--tests/CoreTests/com/android/internal/telephony/gsm/GsmAlphabetTest.java309
-rw-r--r--tests/CoreTests/com/android/internal/telephony/gsm/SMSDispatcherTest.java97
-rw-r--r--tests/CoreTests/com/android/internal/telephony/gsm/SimPhoneBookTest.java106
-rw-r--r--tests/CoreTests/com/android/internal/telephony/gsm/SimSmsTest.java60
-rw-r--r--tests/CoreTests/com/android/internal/telephony/gsm/SimUtilsTest.java79
-rw-r--r--tests/CoreTests/com/android/internal/util/PredicatesTest.java74
-rwxr-xr-xtests/CoreTests/run_core_test.sh4
-rwxr-xr-xtests/CoreTests/run_junit.sh9
-rw-r--r--tests/DpiTest/Android.mk10
-rw-r--r--tests/DpiTest/AndroidManifest.xml28
-rw-r--r--tests/DpiTest/res/drawable-120dpi/logo120dpi.pngbin5178 -> 0 bytes
-rw-r--r--tests/DpiTest/res/drawable-240dpi/logo240dpi.pngbin13388 -> 0 bytes
-rw-r--r--tests/DpiTest/res/drawable/logo160dpi.pngbin8114 -> 0 bytes
-rw-r--r--tests/DpiTest/src/com/google/android/test/dpi/DpiTestActivity.java167
-rw-r--r--tests/DumpRenderTree/Android.mk12
-rw-r--r--tests/DumpRenderTree/AndroidManifest.xml34
-rw-r--r--tests/DumpRenderTree/compare_layout_results.py93
-rw-r--r--tests/DumpRenderTree/results/layout_tests_crashed.txt2
-rw-r--r--tests/DumpRenderTree/results/layout_tests_failed.txt283
-rw-r--r--tests/DumpRenderTree/results/layout_tests_nontext.txt1658
-rw-r--r--tests/DumpRenderTree/results/layout_tests_passed.txt990
-rwxr-xr-xtests/DumpRenderTree/run_layout_tests.py274
-rw-r--r--tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java328
-rw-r--r--tests/DumpRenderTree/src/com/android/dumprendertree/EventSender.java29
-rw-r--r--tests/DumpRenderTree/src/com/android/dumprendertree/FileFilter.java256
-rw-r--r--tests/DumpRenderTree/src/com/android/dumprendertree/FileList.java165
-rw-r--r--tests/DumpRenderTree/src/com/android/dumprendertree/HTMLHostActivity.java726
-rw-r--r--tests/DumpRenderTree/src/com/android/dumprendertree/HTMLHostApp.java33
-rw-r--r--tests/DumpRenderTree/src/com/android/dumprendertree/HTMLHostCallbackInterface.java21
-rw-r--r--tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestController.java62
-rwxr-xr-xtests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoRunner.java68
-rw-r--r--tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoTest.java172
-rw-r--r--tests/DumpRenderTree/src/com/android/dumprendertree/Menu.java56
-rw-r--r--tests/DumpRenderTree/src/com/android/dumprendertree/WebViewEventSender.java194
-rw-r--r--tests/FrameworkTest/Android.mk15
-rw-r--r--tests/FrameworkTest/AndroidManifest.xml952
-rw-r--r--tests/FrameworkTest/README8
-rw-r--r--tests/FrameworkTest/res/drawable/big_drawable_background.9.pngbin330 -> 0 bytes
-rw-r--r--tests/FrameworkTest/res/drawable/bitmap_drawable.xml19
-rw-r--r--tests/FrameworkTest/res/drawable/black_square.pngbin151 -> 0 bytes
-rw-r--r--tests/FrameworkTest/res/drawable/black_square_stretchable.9.pngbin175 -> 0 bytes
-rw-r--r--tests/FrameworkTest/res/drawable/box.xml26
-rw-r--r--tests/FrameworkTest/res/drawable/drawable_background.9.pngbin270 -> 0 bytes
-rw-r--r--tests/FrameworkTest/res/drawable/sym_now_playing_pause_1.pngbin3038 -> 0 bytes
-rw-r--r--tests/FrameworkTest/res/drawable/sym_now_playing_skip_backward_1.pngbin3262 -> 0 bytes
-rw-r--r--tests/FrameworkTest/res/drawable/sym_now_playing_skip_forward_1.pngbin3275 -> 0 bytes
-rw-r--r--tests/FrameworkTest/res/layout/add_column_in_table.xml46
-rw-r--r--tests/FrameworkTest/res/layout/autocompletetextview_simple.xml34
-rw-r--r--tests/FrameworkTest/res/layout/baseline_0width_and_weight.xml49
-rw-r--r--tests/FrameworkTest/res/layout/baseline_buttons.xml68
-rw-r--r--tests/FrameworkTest/res/layout/baseline_center_gravity.xml39
-rw-r--r--tests/FrameworkTest/res/layout/brightness_limit.xml29
-rw-r--r--tests/FrameworkTest/res/layout/descendant_focusability.xml66
-rw-r--r--tests/FrameworkTest/res/layout/disabled.xml43
-rw-r--r--tests/FrameworkTest/res/layout/drawable_background_minimum_size.xml93
-rw-r--r--tests/FrameworkTest/res/layout/fill_in_wrap.xml64
-rw-r--r--tests/FrameworkTest/res/layout/focus_after_removal.xml60
-rw-r--r--tests/FrameworkTest/res/layout/focus_listener.xml38
-rw-r--r--tests/FrameworkTest/res/layout/framelayout_gravity.xml76
-rw-r--r--tests/FrameworkTest/res/layout/framelayout_margin.xml50
-rw-r--r--tests/FrameworkTest/res/layout/grid_in_horizontal.xml38
-rw-r--r--tests/FrameworkTest/res/layout/grid_in_vertical.xml42
-rw-r--r--tests/FrameworkTest/res/layout/grid_padding.xml24
-rw-r--r--tests/FrameworkTest/res/layout/grid_scroll_listener.xml39
-rw-r--r--tests/FrameworkTest/res/layout/grid_thrasher.xml38
-rw-r--r--tests/FrameworkTest/res/layout/include_button.xml21
-rw-r--r--tests/FrameworkTest/res/layout/include_button_with_size.xml21
-rw-r--r--tests/FrameworkTest/res/layout/include_tag.xml45
-rw-r--r--tests/FrameworkTest/res/layout/inflated_expandablelistview.xml20
-rw-r--r--tests/FrameworkTest/res/layout/linear_layout_buttons.xml48
-rw-r--r--tests/FrameworkTest/res/layout/linear_layout_edittext_then_button.xml39
-rw-r--r--tests/FrameworkTest/res/layout/linear_layout_grid.xml101
-rw-r--r--tests/FrameworkTest/res/layout/linear_layout_listview_height.xml66
-rw-r--r--tests/FrameworkTest/res/layout/linear_layout_spinner_then_button.xml37
-rw-r--r--tests/FrameworkTest/res/layout/linear_layout_textviews.xml41
-rw-r--r--tests/FrameworkTest/res/layout/linear_layout_weight.xml55
-rw-r--r--tests/FrameworkTest/res/layout/list_dividers.xml32
-rw-r--r--tests/FrameworkTest/res/layout/list_filter.xml50
-rw-r--r--tests/FrameworkTest/res/layout/list_in_horizontal.xml29
-rw-r--r--tests/FrameworkTest/res/layout/list_in_vertical.xml46
-rw-r--r--tests/FrameworkTest/res/layout/list_recycler_profiling.xml32
-rw-r--r--tests/FrameworkTest/res/layout/list_scroll_listener.xml33
-rw-r--r--tests/FrameworkTest/res/layout/list_take_focus_from_side.xml113
-rw-r--r--tests/FrameworkTest/res/layout/list_thrasher.xml33
-rw-r--r--tests/FrameworkTest/res/layout/list_with_button_above.xml39
-rw-r--r--tests/FrameworkTest/res/layout/list_with_disappearing_item_bug_item.xml31
-rw-r--r--tests/FrameworkTest/res/layout/list_with_empty_view.xml36
-rw-r--r--tests/FrameworkTest/res/layout/longpress.xml32
-rw-r--r--tests/FrameworkTest/res/layout/mail_message.xml32
-rw-r--r--tests/FrameworkTest/res/layout/merge_child.xml34
-rw-r--r--tests/FrameworkTest/res/layout/merge_tag.xml41
-rw-r--r--tests/FrameworkTest/res/layout/popup_window_visibility.xml60
-rw-r--r--tests/FrameworkTest/res/layout/pre_draw_listener.xml41
-rw-r--r--tests/FrameworkTest/res/layout/remote_view_host.xml25
-rw-r--r--tests/FrameworkTest/res/layout/remote_view_test_bad_1.xml31
-rw-r--r--tests/FrameworkTest/res/layout/remote_view_test_bad_2.xml31
-rw-r--r--tests/FrameworkTest/res/layout/remote_view_test_good.xml59
-rw-r--r--tests/FrameworkTest/res/layout/scroll_to_rect_with_internal_scroll.xml49
-rw-r--r--tests/FrameworkTest/res/layout/scroll_to_rectangle.xml79
-rw-r--r--tests/FrameworkTest/res/layout/scrollview_linear_layout.xml32
-rw-r--r--tests/FrameworkTest/res/layout/scrollview_with_webviews.xml45
-rw-r--r--tests/FrameworkTest/res/layout/table_layout_cell_span.xml88
-rw-r--r--tests/FrameworkTest/res/layout/table_layout_fixed_width.xml56
-rw-r--r--tests/FrameworkTest/res/layout/table_layout_horizontal_gravity.xml82
-rw-r--r--tests/FrameworkTest/res/layout/table_layout_vertical_gravity.xml70
-rw-r--r--tests/FrameworkTest/res/layout/table_layout_weight.xml44
-rw-r--r--tests/FrameworkTest/res/layout/translucent_background.xml24
-rw-r--r--tests/FrameworkTest/res/layout/viewgroupchildren.xml29
-rw-r--r--tests/FrameworkTest/res/layout/viewstub.xml42
-rw-r--r--tests/FrameworkTest/res/layout/visibility.xml75
-rw-r--r--tests/FrameworkTest/res/layout/weight_sum.xml34
-rw-r--r--tests/FrameworkTest/res/layout/with_bitmap_background.xml27
-rw-r--r--tests/FrameworkTest/res/layout/zero_sized.xml48
-rw-r--r--tests/FrameworkTest/res/values/arrays.xml34
-rw-r--r--tests/FrameworkTest/res/values/attrs.xml21
-rw-r--r--tests/FrameworkTest/res/values/colors.xml26
-rw-r--r--tests/FrameworkTest/res/values/strings.xml103
-rw-r--r--tests/FrameworkTest/res/values/styles.xml22
-rw-r--r--tests/FrameworkTest/src/android/widget/AutoCompleteTextViewSimple.java122
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/FrameworkTestApplication.java19
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/activity/TranslucentFancyActivity.java70
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/drawable/BitmapDrawable.java40
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/drawable/DrawableBgMinSize.java91
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/drawable/MutateDrawable.java49
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/expandablelistview/ExpandableListSimple.java49
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/expandablelistview/ExpandableListWithHeaders.java70
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/expandablelistview/InflatedExpandableListView.java115
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/focus/AdjacentVerticalRectLists.java94
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/focus/DescendantFocusability.java53
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/focus/FocusAfterRemoval.java78
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/focus/GoneParentFocusedChild.java88
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/focus/HorizontalFocusSearch.java134
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/focus/LinearLayoutGrid.java65
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/focus/ListOfButtons.java76
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/focus/ListOfEditTexts.java125
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/focus/ListOfInternalSelectionViews.java170
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/focus/ListWithFooterViewAndNewLabels.java111
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/focus/ListWithMailMessages.java147
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/focus/RequestFocus.java47
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/focus/VerticalFocusSearch.java151
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/gridview/GridDelete.java108
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/gridview/GridInHorizontal.java59
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/gridview/GridInVertical.java59
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/gridview/GridPadding.java52
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/gridview/GridScrollListener.java68
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSetSelection.java35
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSetSelectionMany.java35
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSetSelectionStackFromBottom.java35
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSetSelectionStackFromBottomMany.java35
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSimple.java55
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSingleColumn.java37
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/gridview/GridStackFromBottom.java35
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/gridview/GridStackFromBottomMany.java35
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/gridview/GridThrasher.java135
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/gridview/GridVerticalSpacing.java34
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/gridview/GridVerticalSpacingStackFromBottom.java35
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/layout/frame/FrameLayoutGravity.java31
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/layout/frame/FrameLayoutMargin.java31
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/layout/linear/BaselineAlignmentCenterGravity.java31
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/layout/linear/BaselineAlignmentZeroWidthAndWeight.java37
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/layout/linear/BaselineButtons.java31
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/layout/linear/ExceptionTextView.java65
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/layout/linear/FillInWrap.java32
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/layout/linear/HorizontalOrientationVerticalAlignment.java31
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/layout/linear/LLEditTextThenButton.java55
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/layout/linear/LLOfButtons1.java66
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/layout/linear/LLOfButtons2.java26
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/layout/linear/LLOfTwoFocusableInTouchMode.java91
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/layout/linear/LinearLayoutEditTexts.java31
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/layout/linear/Weight.java30
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/layout/linear/WeightSum.java31
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/layout/table/AddColumn.java54
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/layout/table/CellSpan.java33
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/layout/table/FixedWidth.java33
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/layout/table/HorizontalGravity.java33
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/layout/table/VerticalGravity.java33
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/layout/table/Weight.java33
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/AdjacentListsWithAdjacentISVsInside.java131
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListBottomGravity.java37
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListBottomGravityMany.java36
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListButtonsDiagonalAcrossItems.java57
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListDividers.java52
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListEndingWithMultipleSeparators.java32
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListFilter.java193
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListGetSelectedView.java30
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListHeterogeneous.java83
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListHorizontalFocusWithinItemWins.java64
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListInHorizontal.java55
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListInVertical.java56
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListInterleaveFocusables.java63
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListItemFocusableAboveUnfocusable.java48
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListItemFocusablesClose.java54
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListItemFocusablesFarApart.java44
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListItemISVAndButton.java75
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListItemsExpandOnSelection.java80
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListLastItemPartiallyVisible.java31
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListManagedCursor.java60
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfItemsShorterThanScreen.java28
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfItemsTallerThanScreen.java29
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfShortShortTallShortShort.java33
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfShortTallShort.java32
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfThinItems.java33
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfTouchables.java47
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListRecyclerProfiling.java55
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListScrollListener.java72
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListSetSelection.java72
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListSimple.java51
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListTakeFocusFromSide.java84
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListThrasher.java131
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListTopGravity.java37
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListTopGravityMany.java35
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListViewHeight.java109
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithDisappearingItemBug.java80
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithEditTextHeader.java34
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithEmptyView.java104
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithFirstScreenUnSelectable.java33
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithHeaders.java57
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithNoFadingEdge.java28
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithOffScreenNextSelectable.java37
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithOnItemSelectedAction.java44
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithScreenOfNoSelectables.java28
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithSeparators.java33
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/menus/ListContextMenu.java201
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/menus/MenuLayout.java65
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/menus/MenuLayoutLandscape.java24
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/menus/MenuLayoutPortrait.java24
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/menus/MenuScenario.java212
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/menus/MenuWith1Item.java44
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/performance/InvalidateCycle.java49
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/scroll/ButtonAboveTallInternalSelectionView.java46
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/scroll/ButtonsWithTallTextViewInBetween.java50
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/scroll/RequestRectangleVisible.java94
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/scroll/RequestRectangleVisibleWithInternalScroll.java76
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/scroll/ScrollViewButtonsAndLabels.java91
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/scroll/ShortButtons.java54
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/scroll/TallTextAboveButton.java31
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/settings/BrightnessLimit.java60
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/settings/RingtonePickerActivityLauncher.java79
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/util/ExpandableListScenario.java387
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/util/GridScenario.java370
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/util/InternalSelectionView.java273
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/util/KeyUtils.java88
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/util/ListItemFactory.java291
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/util/ListScenario.java662
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/util/ListUtil.java103
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/util/ScrollViewScenario.java258
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/util/TouchModeFlexibleAsserts.java75
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/view/BigCache.java71
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/view/Disabled.java49
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/view/GlobalFocusChange.java46
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/view/Include.java33
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/view/Longpress.java32
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/view/Merge.java47
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/view/PopupWindowVisibility.java117
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/view/PreDrawListener.java92
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/view/RemoteViewsActivity.java33
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/view/RunQueue.java70
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/view/StubbedView.java43
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/view/ViewGroupChildren.java35
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/view/Visibility.java70
-rw-r--r--tests/FrameworkTest/src/com/android/frameworktest/view/ZeroSized.java34
-rw-r--r--tests/FrameworkTest/tests/Android.mk17
-rw-r--r--tests/FrameworkTest/tests/AndroidManifest.xml34
-rw-r--r--tests/FrameworkTest/tests/src/android/content/AbstractTableMergerTest.java578
-rw-r--r--tests/FrameworkTest/tests/src/android/content/SearchRecentSuggestionsProviderTest.java402
-rw-r--r--tests/FrameworkTest/tests/src/android/widget/AutoCompleteTextViewCallbacks.java110
-rw-r--r--tests/FrameworkTest/tests/src/android/widget/AutoCompleteTextViewPopup.java150
-rw-r--r--tests/FrameworkTest/tests/src/android/widget/SimpleCursorAdapterTest.java259
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/AllTests.java34
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/drawable/DrawableBgMinSizeTest.java152
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/drawable/MutateDrawableTest.java51
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/expandablelistview/ExpandableListBasicTest.java129
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/expandablelistview/ExpandableListWithHeadersTest.java66
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/focus/DescendantFocusabilityTest.java138
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/focus/FocusAfterRemovalTest.java131
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/focus/FocusChangeWithInterestingRectHintTest.java114
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/focus/GoneParentFocusedChildTest.java56
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/focus/HorizontalFocusSearchTest.java124
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/focus/LinearLayoutGridTest.java81
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/focus/ListOfButtonsTest.java170
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/focus/ListWithFooterViewAndNewLabelsTest.java72
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/focus/RequestFocusTest.java97
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/focus/ScrollingThroughListOfFocusablesTest.java225
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/focus/VerticalFocusSearchTest.java152
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridInHorizontalTest.java49
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridInVerticalTest.java49
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridPaddingTest.java49
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridScrollListenerTest.java110
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSetSelectionBaseTest.java102
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSetSelectionManyTest.java25
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSetSelectionStackFromBottomManyTest.java25
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSetSelectionStackFromBottomTest.java25
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSetSelectionTest.java25
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSingleColumnTest.java47
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridStackFromBottomManyTest.java49
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridStackFromBottomTest.java49
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/touch/GridTouchSetSelectionTest.java82
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/touch/GridTouchStackFromBottomManyTest.java86
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/touch/GridTouchStackFromBottomTest.java119
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/touch/GridTouchVerticalSpacingStackFromBottomTest.java154
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/touch/GridTouchVerticalSpacingTest.java142
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/layout/frame/FrameLayoutGravityTest.java131
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/layout/frame/FrameLayoutMarginTest.java85
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/BaselineAlignmentCenterGravityTest.java69
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/BaselineAlignmentSpinnerButton.java55
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/BaselineAlignmentZeroWidthAndWeightTest.java62
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/BaselineButtonsTest.java86
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/FillInWrapTest.java54
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/LinearLayoutEditTextsTest.java57
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/WeightSumTest.java57
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/WeightTest.java55
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/AddColumnTest.java71
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/CellSpanTest.java85
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/FixedWidthTest.java66
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/HorizontalGravityTest.java74
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/VerticalGravityTest.java80
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/WeightTest.java63
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListBottomGravityManyTest.java49
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListBottomGravityTest.java49
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListEmptyViewTest.java128
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListFocusableTest.java232
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListHeterogeneousTest.java74
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListInHorizontalTest.java25
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListInVerticalTest.java25
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListItemRequestRectAboveThinFirstItemTest.java102
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListManagedCursorTest.java180
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListRetainsFocusAcrossLayoutsTest.java88
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListScrollListenerTest.java105
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListSetSelectionTest.java73
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListUnspecifiedMeasure.java55
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListViewHeightTest.java86
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListInterleaveFocusablesTest.java109
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListItemFocusableAboveUnfocusableTest.java55
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListItemFocusablesCloseTest.java115
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListItemFocusablesFarApartTest.java116
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListItemsExpandOnSelectionTest.java118
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListLastItemPartiallyVisibleTest.java80
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListOfItemsShorterThanScreenTest.java162
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListOfItemsTallerThanScreenTest.java195
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListOfShortShortTallShortShortTest.java137
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListOfShortTallShortTest.java80
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListOfThinItemsTest.java115
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithFirstScreenUnSelectableTest.java64
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithNoFadingEdgeTest.java80
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithOffScreenNextSelectableTest.java105
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithOnItemSelectedActionTest.java60
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithScreenOfNoSelectablesTest.java106
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithSeparatorsTest.java75
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/focus/AdjacentListsWithAdjacentISVsInsideTest.java90
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/focus/ListButtonsDiagonalAcrossItemsTest.java105
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/focus/ListHorizontalFocusWithinItemWinsTest.java74
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/focus/ListWithEditTextHeaderTest.java66
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListGetSelectedViewTest.java65
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListOfTouchablesTest.java84
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListSetSelectionTest.java148
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListTouchBottomGravityManyTest.java153
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListTouchBottomGravityTest.java94
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListTouchManyTest.java192
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListTouchTest.java91
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/menus/MenuLayoutLandscapeTest.java230
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/menus/MenuLayoutPortraitTest.java231
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/menus/MenuWith1ItemTest.java84
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/ButtonAboveTallInternalSelectionViewTest.java66
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/RequestRectangleVisibleTest.java237
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/RequestRectangleVisibleWithInternalScrollTest.java85
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/ScrollViewButtonsAndLabelsTest.java214
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/arrowscroll/ButtonsWithTallTextViewInBetweenTest.java142
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/arrowscroll/ShortButtonsTest.java109
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/arrowscroll/TallTextAboveButtonTest.java78
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/settings/RingtonePickerActivityTest.java227
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/text/HtmlTest.java66
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/text/SpannableStringBuilderTest.java11
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/text/SpannableStringTest.java11
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/text/SpannableTest.java34
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/touchmode/ChangeTouchModeTest.java127
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/touchmode/FocusableInTouchModeClickTest.java64
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/touchmode/StartInTouchWithViewInFocusTest.java67
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/touchmode/TouchModeFocusChangeTest.java90
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/touchmode/TouchModeFocusableTest.java91
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/view/BigCacheTest.java83
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/view/DisabledLongpressTest.java89
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/view/DisabledTest.java94
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/view/GlobalFocusChangeTest.java87
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/view/IncludeTest.java78
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/view/LongpressTest.java85
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/view/MergeTest.java42
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/view/RemoteViewsActivityTest.java126
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/view/RunQueueTest.java59
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/view/ViewGroupChildrenTest.java268
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/view/ViewStubTest.java85
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/view/VisibilityTest.java179
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/view/ZeroSizedTest.java102
-rw-r--r--tests/FrameworkTest/tests/src/com/android/frameworktest/widget/ListViewTest.java139
-rwxr-xr-xtests/ImfTest/Android.mk15
-rwxr-xr-xtests/ImfTest/AndroidManifest.xml144
-rw-r--r--tests/ImfTest/res/layout/dialog_edit_text_no_scroll.xml36
-rwxr-xr-xtests/ImfTest/res/layout/full_screen_edit_text.xml27
-rwxr-xr-xtests/ImfTest/res/layout/one_edit_text_activity.xml50
-rwxr-xr-xtests/ImfTest/res/layout/sample_edit_text.xml53
-rw-r--r--tests/ImfTest/res/values/config.xml21
-rwxr-xr-xtests/ImfTest/res/values/strings.xml50
-rw-r--r--tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityLandscape.java85
-rw-r--r--tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityPortrait.java79
-rw-r--r--tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScan.java49
-rw-r--r--tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResize.java49
-rw-r--r--tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScan.java57
-rw-r--r--tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollableResize.java57
-rw-r--r--tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityPanScan.java46
-rw-r--r--tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityResize.java46
-rw-r--r--tests/ImfTest/src/com/android/imftest/samples/ButtonActivity.java62
-rw-r--r--tests/ImfTest/src/com/android/imftest/samples/DialogActivity.java102
-rw-r--r--tests/ImfTest/src/com/android/imftest/samples/EditTextActivityDialog.java96
-rwxr-xr-xtests/ImfTest/src/com/android/imftest/samples/InputTypeActivity.java164
-rw-r--r--tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScan.java50
-rw-r--r--tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScan.java52
-rw-r--r--tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollResize.java45
-rw-r--r--tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivityNotSelected.java56
-rw-r--r--tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivitySelected.java51
-rwxr-xr-xtests/ImfTest/tests/Android.mk16
-rwxr-xr-xtests/ImfTest/tests/AndroidManifest.xml34
-rwxr-xr-xtests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScanTests.java49
-rwxr-xr-xtests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResizeTests.java48
-rwxr-xr-xtests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScanTests.java48
-rwxr-xr-xtests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollableResizeTests.java49
-rwxr-xr-xtests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityPanScanTests.java49
-rwxr-xr-xtests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityResizeTests.java49
-rwxr-xr-xtests/ImfTest/tests/src/com/android/imftest/samples/ButtonActivityTest.java58
-rwxr-xr-xtests/ImfTest/tests/src/com/android/imftest/samples/ImfBaseTestCase.java135
-rwxr-xr-xtests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityBaseTestCase.java40
-rwxr-xr-xtests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScanTests.java36
-rwxr-xr-xtests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScanTests.java37
-rwxr-xr-xtests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollResizeTests.java37
-rwxr-xr-xtests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivityNotSelectedTests.java50
-rwxr-xr-xtests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivitySelectedTests.java53
-rw-r--r--tests/SmokeTest/Android.mk16
-rw-r--r--tests/SmokeTest/AndroidManifest.xml32
-rw-r--r--tests/SmokeTest/README8
-rw-r--r--tests/SmokeTest/src/com/android/smoketest/SmokeTestActivity.java41
-rw-r--r--tests/SmokeTest/tests/Android.mk21
-rw-r--r--tests/SmokeTest/tests/AndroidManifest.xml37
-rw-r--r--tests/SmokeTest/tests/src/com/android/smoketest/ProcessErrorsTest.java117
-rw-r--r--tests/SslLoad/Android.mk10
-rw-r--r--tests/SslLoad/AndroidManifest.xml13
-rw-r--r--tests/SslLoad/src/com/android/sslload/SslLoad.java123
-rw-r--r--tests/StatusBar/Android.mk11
-rw-r--r--tests/StatusBar/AndroidManifest.xml38
-rw-r--r--tests/StatusBar/res/drawable/app_gmail.pngbin5405 -> 0 bytes
-rw-r--r--tests/StatusBar/res/drawable/app_phone.pngbin5443 -> 0 bytes
-rw-r--r--tests/StatusBar/res/drawable/ic_statusbar_chat.pngbin829 -> 0 bytes
-rw-r--r--tests/StatusBar/res/drawable/ic_statusbar_email.pngbin1077 -> 0 bytes
-rw-r--r--tests/StatusBar/res/drawable/ic_statusbar_missedcall.pngbin720 -> 0 bytes
-rw-r--r--tests/StatusBar/res/drawable/icon1.pngbin616 -> 0 bytes
-rw-r--r--tests/StatusBar/res/drawable/icon2.pngbin614 -> 0 bytes
-rw-r--r--tests/StatusBar/res/drawable/icon3.pngbin2969 -> 0 bytes
-rw-r--r--tests/StatusBar/res/drawable/icon4.pngbin2918 -> 0 bytes
-rw-r--r--tests/StatusBar/res/layout/chrono_notification.xml41
-rw-r--r--tests/StatusBar/res/raw/ringer.mp3bin42945 -> 0 bytes
-rw-r--r--tests/StatusBar/res/values/strings.xml22
-rw-r--r--tests/StatusBar/src/com/android/statusbartest/NotificationTestList.java517
-rw-r--r--tests/StatusBar/src/com/android/statusbartest/PowerTest.java129
-rw-r--r--tests/StatusBar/src/com/android/statusbartest/StatusBarTest.java164
-rw-r--r--tests/StatusBar/src/com/android/statusbartest/TestActivity.java73
-rw-r--r--tests/StatusBar/src/com/android/statusbartest/ToastTest.java114
-rw-r--r--tests/framework-tests/Android.mk1
-rw-r--r--tests/framework-tests/README5
-rw-r--r--tests/framework-tests/src/Android.mk10
-rw-r--r--tests/framework-tests/src/android/test/FrameworkTests.java28
-rw-r--r--tests/framework-tests/src/android/text/PackedIntVectorTest.java159
-rw-r--r--tests/framework-tests/src/android/util/EventLogFunctionalTest.java161
-rw-r--r--tests/framework-tests/src/android/util/EventLogTest.java68
-rw-r--r--tests/framework-tests/src/com/android/internal/http/multipart/MultipartTest.java102
-rw-r--r--tests/framework-tests/src/com/android/internal/os/LoggingPrintStreamTest.java133
-rw-r--r--tests/framework-tests/src/com/android/internal/policy/impl/LockPatternKeyguardViewTest.java372
-rw-r--r--tests/gadgets/GadgetHostTest/Android.mk11
-rw-r--r--tests/gadgets/GadgetHostTest/AndroidManifest.xml36
-rw-r--r--tests/gadgets/GadgetHostTest/res/drawable/oh_hai_icon.pngbin2988 -> 0 bytes
-rw-r--r--tests/gadgets/GadgetHostTest/res/layout/gadget_host.xml51
-rw-r--r--tests/gadgets/GadgetHostTest/res/layout/test_gadget.xml23
-rw-r--r--tests/gadgets/GadgetHostTest/res/layout/test_gadget_configure.xml44
-rw-r--r--tests/gadgets/GadgetHostTest/res/values/strings.xml24
-rw-r--r--tests/gadgets/GadgetHostTest/res/xml/gadget_info.xml10
-rw-r--r--tests/gadgets/GadgetHostTest/src/com/android/tests/gadgethost/GadgetContainerView.java32
-rw-r--r--tests/gadgets/GadgetHostTest/src/com/android/tests/gadgethost/GadgetHostActivity.java198
-rw-r--r--tests/gadgets/GadgetHostTest/src/com/android/tests/gadgethost/TestGadgetConfigure.java57
-rw-r--r--tests/gadgets/GadgetHostTest/src/com/android/tests/gadgethost/TestGadgetProvider.java69
-rw-r--r--tests/gadgets/GadgetProviderTest/Android.mk11
-rw-r--r--tests/gadgets/GadgetProviderTest/AndroidManifest.xml13
-rw-r--r--tests/gadgets/GadgetProviderTest/res/layout/test_gadget.xml23
-rw-r--r--tests/gadgets/GadgetProviderTest/res/values/strings.xml23
-rw-r--r--tests/gadgets/GadgetProviderTest/res/xml/gadget_info.xml7
-rw-r--r--tests/gadgets/GadgetProviderTest/src/com/android/tests/gadgetprovider/TestGadgetProvider.java60
824 files changed, 0 insertions, 93800 deletions
diff --git a/tests/AndroidTests/Android.mk b/tests/AndroidTests/Android.mk
deleted file mode 100644
index f5e49d7..0000000
--- a/tests/AndroidTests/Android.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := tests
-
-LOCAL_JAVA_LIBRARIES := framework-tests android.test.runner
-
-LOCAL_STATIC_JAVA_LIBRARIES := googlelogin-client
-
-# Resource unit tests use a private locale
-LOCAL_AAPT_FLAGS = -c xx_YY -c cs
-
-LOCAL_SRC_FILES := \
- $(call all-subdir-java-files) \
- src/com/android/unit_tests/os/IAidlTest.aidl
-
-LOCAL_PACKAGE_NAME := AndroidTests
-LOCAL_CERTIFICATE := platform
-
-include $(BUILD_PACKAGE)
-
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/tests/AndroidTests/AndroidManifest.xml b/tests/AndroidTests/AndroidManifest.xml
deleted file mode 100644
index 843d844..0000000
--- a/tests/AndroidTests/AndroidManifest.xml
+++ /dev/null
@@ -1,226 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.unit_tests"
- android:sharedUserId="com.android.uid.test">
- <permission android:name="com.android.unit_tests.permission.TEST_GRANTED"
- android:protectionLevel="normal"
- android:label="@string/permlab_testGranted"
- android:description="@string/permdesc_testGranted">
- <meta-data android:name="com.android.unit_tests.string" android:value="foo" />
- <meta-data android:name="com.android.unit_tests.boolean" android:value="true" />
- <meta-data android:name="com.android.unit_tests.integer" android:value="100" />
- <meta-data android:name="com.android.unit_tests.color" android:value="#ff000000" />
- <meta-data android:name="com.android.unit_tests.float" android:value="100.1" />
- <meta-data android:name="com.android.unit_tests.reference" android:resource="@xml/metadata" />
- </permission>
- <permission android:name="com.android.unit_tests.permission.TEST_DENIED"
- android:protectionLevel="normal"
- android:label="@string/permlab_testDenied"
- android:description="@string/permdesc_testDenied" />
-
- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
- <uses-permission android:name="android.permission.BROADCAST_STICKY" />
- <uses-permission android:name="android.permission.READ_CONTACTS" />
- <uses-permission android:name="android.permission.WRITE_CONTACTS" />
- <uses-permission android:name="android.permission.WRITE_SETTINGS" />
- <uses-permission android:name="android.permission.READ_SMS"/>
- <uses-permission android:name="android.permission.WRITE_SMS"/>
- <uses-permission android:name="android.permission.DELETE_CACHE_FILES" />
- <uses-permission android:name="android.permission.CLEAR_APP_CACHE" />
- <uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" />
- <uses-permission android:name="android.permission.GET_PACKAGE_SIZE" />
- <uses-permission android:name="android.permission.READ_PHONE_STATE" />
- <uses-permission android:name="android.permission.INTERNET" />
- <uses-permission android:name="android.permission.WRITE_GSERVICES" />
- <uses-permission android:name="android.permission.WAKE_LOCK" />
-
- <uses-permission android:name="com.android.unit_tests.permission.TEST_GRANTED" />
-
- <uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH" />
- <uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH.ALL_SERVICES" />
- <uses-permission android:name="com.google.android.googleapps.permission.ACCESS_GOOGLE_PASSWORD" />
- <!-- InstrumentationTestRunner for AndroidTests -->
- <instrumentation android:name="android.test.InstrumentationTestRunner"
- android:targetPackage="com.android.unit_tests"
- android:label="Tests for AndroidTests (unit tests collection)"/>
-
- <application>
- <uses-library android:name="android.test.runner" />
-
- <!-- Activity-level metadata -->
- <meta-data android:name="com.android.unit_tests.isApp" android:value="true" />
- <meta-data android:name="com.android.unit_tests.string" android:value="foo" />
- <meta-data android:name="com.android.unit_tests.boolean" android:value="true" />
- <meta-data android:name="com.android.unit_tests.integer" android:value="100" />
- <meta-data android:name="com.android.unit_tests.color" android:value="#ff000000" />
- <meta-data android:name="com.android.unit_tests.float" android:value="100.1" />
- <meta-data android:name="com.android.unit_tests.reference"
- android:resource="@xml/metadata_app" />
-
- <activity android:name="AndroidPerformanceTests" android:label="Android Performance Tests">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.UNIT_TEST" />
- </intent-filter>
- </activity>
-
- <!-- Application components used for activity tests -->
-
- <activity android:name=".activity.TestedActivity"
- android:process=":remoteActivity">
- </activity>
- <activity android:name=".activity.LocalActivity" android:multiprocess="true">
- <meta-data android:name="com.android.unit_tests.string" android:value="foo" />
- <meta-data android:name="com.android.unit_tests.boolean" android:value="true" />
- <meta-data android:name="com.android.unit_tests.integer" android:value="100" />
- <meta-data android:name="com.android.unit_tests.color" android:value="#ff000000" />
- <meta-data android:name="com.android.unit_tests.float" android:value="100.1" />
- <meta-data android:name="com.android.unit_tests.reference" android:resource="@xml/metadata" />
- </activity>
- <activity android:name=".activity.TestedScreen"
- android:process=":remoteScreen">
- </activity>
- <activity android:name=".activity.LocalScreen" android:multiprocess="true">
- </activity>
- <activity android:name=".activity.ClearTop" android:multiprocess="true"
- android:launchMode="singleTop">
- </activity>
- <activity android:name=".activity.LocalDialog" android:multiprocess="true"
- android:theme="@android:style/Theme.Dialog">
- </activity>
- <activity android:name=".activity.SubActivityScreen">
- </activity>
- <activity android:name=".activity.RemoteSubActivityScreen"
- android:process=":remoteActivity">
- </activity>
- <activity android:name=".activity.LaunchpadActivity" android:multiprocess="true">
- </activity>
- <activity android:name=".activity.LaunchpadTabActivity" android:multiprocess="true">
- </activity>
-
- <receiver android:name=".activity.AbortReceiver">
- <intent-filter android:priority="1">
- <action android:name="com.android.unit_tests.activity.BROADCAST_ABORT" />
- </intent-filter>
- </receiver>
- <receiver android:name=".activity.LocalReceiver">
- <intent-filter android:priority="-1">
- <action android:name="com.android.unit_tests.activity.BROADCAST_ABORT" />
- <action android:name="com.android.unit_tests.activity.BROADCAST_ALL" />
- <action android:name="com.android.unit_tests.activity.BROADCAST_REPEAT" />
- <action android:name="com.android.unit_tests.activity.BROADCAST_LOCAL" />
- <action android:name="com.android.unit_tests.activity.BROADCAST_FAIL_REGISTER" />
- <action android:name="com.android.unit_tests.activity.BROADCAST_FAIL_BIND" />
- </intent-filter>
- <meta-data android:name="com.android.unit_tests.string" android:value="foo" />
- <meta-data android:name="com.android.unit_tests.boolean" android:value="true" />
- <meta-data android:name="com.android.unit_tests.integer" android:value="100" />
- <meta-data android:name="com.android.unit_tests.color" android:value="#ff000000" />
- <meta-data android:name="com.android.unit_tests.float" android:value="100.1" />
- <meta-data android:name="com.android.unit_tests.reference" android:resource="@xml/metadata" />
- </receiver>
- <receiver android:name=".activity.ResultReceiver">
- <intent-filter>
- <action android:name="com.android.unit_tests.activity.BROADCAST_RESULT" />
- </intent-filter>
- </receiver>
- <receiver android:name=".activity.LocalGrantedReceiver"
- android:permission="com.android.unit_tests.permission.TEST_GRANTED">
- <intent-filter android:priority="-1">
- <action android:name="com.android.unit_tests.activity.BROADCAST_LOCAL_GRANTED" />
- </intent-filter>
- </receiver>
- <receiver android:name=".activity.LocalDeniedReceiver"
- android:permission="com.android.unit_tests.permission.TEST_DENIED">
- <intent-filter android:priority="-1">
- <action android:name="com.android.unit_tests.activity.BROADCAST_LOCAL_DENIED" />
- </intent-filter>
- </receiver>
- <receiver android:name=".activity.RemoteReceiver"
- android:process=":remoteReceiver">
- <intent-filter android:priority="2">
- <action android:name="com.android.unit_tests.activity.BROADCAST_ABORT" />
- <action android:name="com.android.unit_tests.activity.BROADCAST_ALL" />
- <action android:name="com.android.unit_tests.activity.BROADCAST_REPEAT" />
- <action android:name="com.android.unit_tests.activity.BROADCAST_REMOTE" />
- </intent-filter>
- </receiver>
- <receiver android:name=".activity.RemoteGrantedReceiver"
- android:permission="com.android.unit_tests.permission.TEST_GRANTED">
- <intent-filter android:priority="2">
- <action android:name="com.android.unit_tests.activity.BROADCAST_REMOTE_GRANTED" />
- </intent-filter>
- </receiver>
- <receiver android:name=".activity.RemoteDeniedReceiver"
- android:permission="com.android.unit_tests.permission.TEST_DENIED">
- <intent-filter android:priority="2">
- <action android:name="com.android.unit_tests.activity.BROADCAST_REMOTE_DENIED" />
- </intent-filter>
- </receiver>
- <service android:name=".activity.LocalService">
- <intent-filter>
- <action android:name="com.android.unit_tests.activity.SERVICE_LOCAL" />
- </intent-filter>
- <meta-data android:name="com.android.unit_tests.string" android:value="foo" />
- <meta-data android:name="com.android.unit_tests.boolean" android:value="true" />
- <meta-data android:name="com.android.unit_tests.integer" android:value="100" />
- <meta-data android:name="com.android.unit_tests.color" android:value="#ff000000" />
- <meta-data android:name="com.android.unit_tests.float" android:value="100.1" />
- <meta-data android:name="com.android.unit_tests.reference" android:resource="@xml/metadata" />
- </service>
- <service android:name=".activity.LocalDeniedService"
- android:permission="com.android.unit_tests.permission.TEST_DENIED">
- <intent-filter>
- <action android:name="com.android.unit_tests.activity.SERVICE_LOCAL_DENIED" />
- </intent-filter>
- </service>
- <service android:name=".activity.LocalGrantedService"
- android:permission="com.android.unit_tests.permission.TEST_GRANTED">
- <intent-filter>
- <action android:name="com.android.unit_tests.activity.SERVICE_LOCAL_GRANTED" />
- </intent-filter>
- </service>
-
- <provider android:name=".activity.LocalProvider"
- android:authorities="com.android.unit_tests.LocalProvider">
- <meta-data android:name="com.android.unit_tests.string" android:value="foo" />
- <meta-data android:name="com.android.unit_tests.boolean" android:value="true" />
- <meta-data android:name="com.android.unit_tests.integer" android:value="100" />
- <meta-data android:name="com.android.unit_tests.color" android:value="#ff000000" />
- <meta-data android:name="com.android.unit_tests.float" android:value="100.1" />
- <meta-data android:name="com.android.unit_tests.reference" android:resource="@xml/metadata" />
- </provider>
-
- <!-- Application components used for os tests -->
-
- <service android:name=".os.MessengerService"
- android:process=":messengerService">
- </service>
-
- <!-- Application components used for search manager tests -->
- <!-- TODO: Removed temporarily - need to be replaced using mocks -->
-
- <!-- Used to test IPC. -->
- <service android:name=".binder.BinderTestService"
- android:process="binder.BinderTestService" />
- <service android:name=".binder.BinderPerformanceService"
- android:process="binder.BinderPerformanceService" />
- <service android:name=".binder.BinderVsMessagingService"
- android:process="binder.BinderVsMessagingService" />
- </application>
-</manifest>
diff --git a/tests/AndroidTests/DisabledTestApp/Android.mk b/tests/AndroidTests/DisabledTestApp/Android.mk
deleted file mode 100644
index a5daedf..0000000
--- a/tests/AndroidTests/DisabledTestApp/Android.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := tests
-
-LOCAL_SRC_FILES := $(call all-subdir-java-files)
-
-LOCAL_PACKAGE_NAME := DisabledTestApp
-LOCAL_CERTIFICATE := platform
-
-include $(BUILD_PACKAGE)
-
diff --git a/tests/AndroidTests/DisabledTestApp/AndroidManifest.xml b/tests/AndroidTests/DisabledTestApp/AndroidManifest.xml
deleted file mode 100644
index 4d6843e..0000000
--- a/tests/AndroidTests/DisabledTestApp/AndroidManifest.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.unit_tests.disabled_app"
- android:sharedUserId="com.android.uid.test">
-
- <application enabled="false">
-
- <!-- Used to test package component enabling and disabling -->
- <activity android:name=".DisabledActivity" android:enabled="false" >
- </activity>
- <activity android:name=".EnabledActivity" >
- </activity>
- </application>
-</manifest>
diff --git a/tests/AndroidTests/DisabledTestApp/src/com/android/unit_tests/disabled_app/EnabledActivity.java b/tests/AndroidTests/DisabledTestApp/src/com/android/unit_tests/disabled_app/EnabledActivity.java
deleted file mode 100644
index 4e4dc85..0000000
--- a/tests/AndroidTests/DisabledTestApp/src/com/android/unit_tests/disabled_app/EnabledActivity.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.disabled_app;
-
-import android.app.Activity;
-
-/**
- * Empty Activity for testing
- */
-
-public class EnabledActivity extends Activity {
-
-}
diff --git a/tests/AndroidTests/EnabledTestApp/Android.mk b/tests/AndroidTests/EnabledTestApp/Android.mk
deleted file mode 100644
index 4b986d3..0000000
--- a/tests/AndroidTests/EnabledTestApp/Android.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := tests
-
-LOCAL_SRC_FILES := $(call all-subdir-java-files)
-
-LOCAL_PACKAGE_NAME := EnabledTestApp
-LOCAL_CERTIFICATE := platform
-
-include $(BUILD_PACKAGE)
-
diff --git a/tests/AndroidTests/EnabledTestApp/AndroidManifest.xml b/tests/AndroidTests/EnabledTestApp/AndroidManifest.xml
deleted file mode 100644
index ad610f1..0000000
--- a/tests/AndroidTests/EnabledTestApp/AndroidManifest.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.unit_tests.enabled_app"
- android:sharedUserId="com.android.uid.test">
-
- <application>
-
- <!-- Used to test package component enabling and disabling -->
- <activity android:name=".DisabledActivity" android:enabled="false" >
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="com.android.unit_tests.enabled_app.TEST_CATEGORY" />
- </intent-filter>
- </activity>
- <service android:name=".DisabledService" android:enabled="false" >
- </service>
- <receiver android:name=".DisabledReceiver" android:enabled="false" >
- <intent-filter>
- <action android:name="android.intent.action.ENABLED_APP_DISABLED_RECEIVER" />
- </intent-filter>
- </receiver>
- <provider android:name=".DisabledProvider" android:enabled="false"
- android:authorities="com.android.unit_tests.enabled_app.DisabledProvider"
- android:process=":disabled.provider.process" />
- <activity android:name=".EnabledActivity" >
- </activity>
- <service android:name=".EnabledService" android:enabled="true" >
- </service>
- <receiver android:name=".EnabledReceiver" >
- <intent-filter>
- <action android:name="android.intent.action.ENABLED_APP_ENABLED_RECEIVER" />
- </intent-filter>
- </receiver>
- <provider android:name=".EnabledProvider"
- android:authorities="com.android.unit_tests.enabled_app.EnabledProvider"
- android:process=":enabled.provider.process" />
- </application>
-</manifest>
diff --git a/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/DisabledActivity.java b/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/DisabledActivity.java
deleted file mode 100644
index 0ab0416..0000000
--- a/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/DisabledActivity.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.enabled_app;
-
-import android.app.Activity;
-
-/**
- * Empty Activity for testing
- */
-
-public class DisabledActivity extends Activity {
-
-}
diff --git a/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/DisabledProvider.java b/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/DisabledProvider.java
deleted file mode 100644
index 06527f9..0000000
--- a/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/DisabledProvider.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.enabled_app;
-
-import android.content.ContentProvider;
-import android.content.ContentValues;
-import android.database.Cursor;
-import android.net.Uri;
-
-/**
- * Empty ContentProvider for testing
- */
-
-public class DisabledProvider extends ContentProvider {
-
- public boolean onCreate() {
- return false;
- }
-
- public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
- String sortOrder) {
- return null;
- }
-
- public String getType(Uri uri) {
- return null;
- }
-
- public Uri insert(Uri uri, ContentValues values) {
- return null;
- }
-
- public int delete(Uri uri, String selection, String[] selectionArgs) {
- return 0;
- }
-
- public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
- return 0;
- }
-}
diff --git a/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/DisabledReceiver.java b/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/DisabledReceiver.java
deleted file mode 100644
index c27b87e..0000000
--- a/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/DisabledReceiver.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.enabled_app;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-
-/**
- * Empty IntentReceiver for testing
- */
-
-public class DisabledReceiver extends BroadcastReceiver {
-
- public void onReceive(Context context, Intent intent) {
-
- }
-}
diff --git a/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/DisabledService.java b/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/DisabledService.java
deleted file mode 100644
index ed8d0b9..0000000
--- a/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/DisabledService.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.enabled_app;
-
-import android.app.Service;
-import android.os.IBinder;
-import android.content.Intent;
-
-/**
- * Empty Service for testing
- */
-
-public class DisabledService extends Service {
-
- public IBinder onBind(Intent intent) {
- return null;
- }
-}
diff --git a/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/EnabledActivity.java b/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/EnabledActivity.java
deleted file mode 100644
index cfac3ec..0000000
--- a/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/EnabledActivity.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.enabled_app;
-
-import android.app.Activity;
-
-/**
- * Empty Activity for testing
- */
-
-public class EnabledActivity extends Activity {
-
-}
diff --git a/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/EnabledProvider.java b/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/EnabledProvider.java
deleted file mode 100644
index 764937f..0000000
--- a/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/EnabledProvider.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.enabled_app;
-
-import android.content.ContentProvider;
-import android.content.ContentValues;
-import android.database.Cursor;
-import android.net.Uri;
-
-/**
- * Empty ContentProvider for testing
- */
-
-public class EnabledProvider extends ContentProvider {
-
- public boolean onCreate() {
- return false;
- }
-
- public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
- String sortOrder) {
- return null;
- }
-
- public String getType(Uri uri) {
- return null;
- }
-
- public Uri insert(Uri uri, ContentValues values) {
- return null;
- }
-
- public int delete(Uri uri, String selection, String[] selectionArgs) {
- return 0;
- }
-
- public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
- return 0;
- }
-}
diff --git a/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/EnabledReceiver.java b/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/EnabledReceiver.java
deleted file mode 100644
index 707448f..0000000
--- a/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/EnabledReceiver.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.enabled_app;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-
-/**
- * Empty IntentReceiver for testing
- */
-
-public class EnabledReceiver extends BroadcastReceiver {
-
- public void onReceive(Context context, Intent intent) {
-
- }
-}
diff --git a/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/EnabledService.java b/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/EnabledService.java
deleted file mode 100644
index 81a80b3..0000000
--- a/tests/AndroidTests/EnabledTestApp/src/com/android/unit_tests/enabled_app/EnabledService.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.enabled_app;
-
-import android.app.Service;
-import android.os.IBinder;
-import android.content.Intent;
-
-/**
- * Empty Service for testing
- */
-
-public class EnabledService extends Service {
-
- public IBinder onBind(Intent intent) {
- return null;
- }
-}
diff --git a/tests/AndroidTests/MODULE_LICENSE_APACHE2 b/tests/AndroidTests/MODULE_LICENSE_APACHE2
deleted file mode 100644
index e69de29..0000000
--- a/tests/AndroidTests/MODULE_LICENSE_APACHE2
+++ /dev/null
diff --git a/tests/AndroidTests/NOTICE b/tests/AndroidTests/NOTICE
deleted file mode 100644
index c5b1efa..0000000
--- a/tests/AndroidTests/NOTICE
+++ /dev/null
@@ -1,190 +0,0 @@
-
- Copyright (c) 2005-2008, The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
diff --git a/tests/AndroidTests/assets/text.txt b/tests/AndroidTests/assets/text.txt
deleted file mode 100644
index 3d8c519..0000000
--- a/tests/AndroidTests/assets/text.txt
+++ /dev/null
@@ -1 +0,0 @@
-OneTwoThreeFourFiveSixSevenEightNineTen \ No newline at end of file
diff --git a/tests/AndroidTests/res/drawable/test128x96.png b/tests/AndroidTests/res/drawable/test128x96.png
deleted file mode 100644
index 28dc925..0000000
--- a/tests/AndroidTests/res/drawable/test128x96.png
+++ /dev/null
Binary files differ
diff --git a/tests/AndroidTests/res/drawable/test16x12.png b/tests/AndroidTests/res/drawable/test16x12.png
deleted file mode 100644
index 1a3c7e5..0000000
--- a/tests/AndroidTests/res/drawable/test16x12.png
+++ /dev/null
Binary files differ
diff --git a/tests/AndroidTests/res/drawable/test256x192.png b/tests/AndroidTests/res/drawable/test256x192.png
deleted file mode 100644
index ce8ee04..0000000
--- a/tests/AndroidTests/res/drawable/test256x192.png
+++ /dev/null
Binary files differ
diff --git a/tests/AndroidTests/res/drawable/test320x240.png b/tests/AndroidTests/res/drawable/test320x240.png
deleted file mode 100644
index 9b5800d..0000000
--- a/tests/AndroidTests/res/drawable/test320x240.png
+++ /dev/null
Binary files differ
diff --git a/tests/AndroidTests/res/drawable/test32x24.png b/tests/AndroidTests/res/drawable/test32x24.png
deleted file mode 100644
index 76bab75..0000000
--- a/tests/AndroidTests/res/drawable/test32x24.png
+++ /dev/null
Binary files differ
diff --git a/tests/AndroidTests/res/drawable/test64x48.png b/tests/AndroidTests/res/drawable/test64x48.png
deleted file mode 100644
index 9119613..0000000
--- a/tests/AndroidTests/res/drawable/test64x48.png
+++ /dev/null
Binary files differ
diff --git a/tests/AndroidTests/res/layout/layout_five.xml b/tests/AndroidTests/res/layout/layout_five.xml
deleted file mode 100644
index fd1e0ef..0000000
--- a/tests/AndroidTests/res/layout/layout_five.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2006, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/content" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
- <TextView android:id="@+id/text" android:text="@string/layout_five_text_text" android:layout_width="fill_parent" android:layout_height="wrap_content" />
-</LinearLayout>
diff --git a/tests/AndroidTests/res/layout/layout_four.xml b/tests/AndroidTests/res/layout/layout_four.xml
deleted file mode 100644
index e5a78bc..0000000
--- a/tests/AndroidTests/res/layout/layout_four.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2006, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/text" android:text="@string/layout_four_text_text"/>
diff --git a/tests/AndroidTests/res/layout/layout_one.xml b/tests/AndroidTests/res/layout/layout_one.xml
deleted file mode 100644
index f5c78bd..0000000
--- a/tests/AndroidTests/res/layout/layout_one.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2006, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<view xmlns:android="http://schemas.android.com/apk/res/android" class="com.android.unit_tests.InflateTest$ViewOne" android:id="@+id/viewOne" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
diff --git a/tests/AndroidTests/res/layout/layout_six.xml b/tests/AndroidTests/res/layout/layout_six.xml
deleted file mode 100644
index 6efcdf3..0000000
--- a/tests/AndroidTests/res/layout/layout_six.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2006, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/content" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
- <TextView android:id="@+id/text" android:text="@string/layout_six_text_text" android:layout_width="fill_parent" android:layout_height="wrap_content" />
- <TextView android:id="@+id/text" android:text="@string/layout_six_text_text" android:layout_width="fill_parent" android:layout_height="wrap_content" />
- <TextView android:id="@+id/text" android:text="@string/layout_six_text_text" android:layout_width="fill_parent" android:layout_height="wrap_content" />
- <TextView android:id="@+id/text" android:text="@string/layout_six_text_text" android:layout_width="fill_parent" android:layout_height="wrap_content" />
- <TextView android:id="@+id/text" android:text="@string/layout_six_text_text" android:layout_width="fill_parent" android:layout_height="wrap_content" />
- <TextView android:id="@+id/text" android:text="@string/layout_six_text_text" android:layout_width="fill_parent" android:layout_height="wrap_content" />
-</LinearLayout>
diff --git a/tests/AndroidTests/res/layout/layout_tag.xml b/tests/AndroidTests/res/layout/layout_tag.xml
deleted file mode 100644
index 1f17701..0000000
--- a/tests/AndroidTests/res/layout/layout_tag.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2006, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<view xmlns:android="http://schemas.android.com/apk/res/android"
- class="com.android.unit_tests.InflateTest$ViewOne"
- android:id="@+id/viewOne" android:tag="MyTag"
- android:layout_width="fill_parent" android:layout_height="fill_parent"/>
diff --git a/tests/AndroidTests/res/layout/layout_three.xml b/tests/AndroidTests/res/layout/layout_three.xml
deleted file mode 100644
index 77b2aa9..0000000
--- a/tests/AndroidTests/res/layout/layout_three.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2006, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/content" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
- <view class="com.android.unit_tests.InflateTest$ViewOne" android:id="@+id/view1" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
- <view class="com.android.unit_tests.InflateTest$ViewOne" android:id="@+id/view2" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
- <view class="com.android.unit_tests.InflateTest$ViewOne" android:id="@+id/view3" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
- <view class="com.android.unit_tests.InflateTest$ViewOne" android:id="@+id/view4" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
- <view class="com.android.unit_tests.InflateTest$ViewOne" android:id="@+id/view5" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
- <view class="com.android.unit_tests.InflateTest$ViewOne" android:id="@+id/view6" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
-</LinearLayout>
diff --git a/tests/AndroidTests/res/layout/layout_two.xml b/tests/AndroidTests/res/layout/layout_two.xml
deleted file mode 100644
index 9c99710..0000000
--- a/tests/AndroidTests/res/layout/layout_two.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2006, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/content" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
- <view class="com.android.unit_tests.InflateTest$ViewOne" android:id="@+id/viewOne" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
-</LinearLayout>
-
diff --git a/tests/AndroidTests/res/raw/calendarjs.txt b/tests/AndroidTests/res/raw/calendarjs.txt
deleted file mode 100644
index 15f7bab..0000000
--- a/tests/AndroidTests/res/raw/calendarjs.txt
+++ /dev/null
@@ -1 +0,0 @@
-{"version":"1.0","encoding":"UTF-8","feed":{"xmlns":"http://www.w3.org/2005/Atom","xmlns$openSearch":"http://a9.com/-/spec/opensearchrss/1.0/","xmlns$gd":"http://schemas.google.com/g/2005","xmlns$gCal":"http://schemas.google.com/gCal/2005","id":{"$t":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic"},"updated":{"$t":"2007-02-06T02:55:15.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"type":"text","$t":"w g"},"subtitle":{"type":"text","$t":"w g"},"link":[{"rel":"http://schemas.google.com/g/2005#feed","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic?alt\u003Djson\u0026max-results\u003D25"}],"author":[{"name":{"$t":"w g"},"email":{"$t":"wg@voiceme.net"}}],"generator":{"version":"1.0","uri":"http://www.google.com/calendar","$t":"Google Calendar"},"openSearch$totalResults":{"$t":"13"},"openSearch$startIndex":{"$t":"1"},"openSearch$itemsPerPage":{"$t":"25"},"gCal$timezone":{"value":"America/Los_Angeles"},"entry":[{"id":{"$t":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/7iqc1ro0ihc69vhsiq3uabooig"},"published":{"$t":"2007-02-05T22:04:50.000Z"},"updated":{"$t":"2007-02-05T22:04:50.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"type":"text","$t":"skate"},"summary":{"type":"html","$t":"When: Wed Feb 7, 2007 13:30 to Wed Feb 7, 2007 16:00\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"content":{"type":"text","$t":"When: Wed Feb 7, 2007 13:30 to Wed Feb 7, 2007 16:00\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid\u003DN2lxYzFybzBpaGM2OXZoc2lxM3VhYm9vaWcgd2dAdm9pY2VtZS5uZXQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/7iqc1ro0ihc69vhsiq3uabooig"}],"author":[{"name":{"$t":"w g"},"email":{"$t":"wg@voiceme.net"}}],"gCal$sendEventNotifications":{"value":"false"}},{"id":{"$t":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/kp4gil76n2vcrkt9kaotj3s12c"},"published":{"$t":"2007-02-05T22:04:42.000Z"},"updated":{"$t":"2007-02-05T22:04:42.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"type":"text","$t":"skate"},"summary":{"type":"html","$t":"When: Fri Feb 9, 2007 15:30 to Fri Feb 9, 2007 18:00\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"content":{"type":"text","$t":"When: Fri Feb 9, 2007 15:30 to Fri Feb 9, 2007 18:00\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid\u003Da3A0Z2lsNzZuMnZjcmt0OWthb3RqM3MxMmMgd2dAdm9pY2VtZS5uZXQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/kp4gil76n2vcrkt9kaotj3s12c"}],"author":[{"name":{"$t":"w g"},"email":{"$t":"wg@voiceme.net"}}],"gCal$sendEventNotifications":{"value":"false"}},{"id":{"$t":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/gkhb48fj68lcp15fd1k03tjbj0"},"published":{"$t":"2007-02-05T22:04:35.000Z"},"updated":{"$t":"2007-02-05T22:04:35.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"type":"text","$t":"test event 6"},"summary":{"type":"html","$t":"When: Sat Feb 10, 2007 14:00 to Sat Feb 10, 2007 17:00\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"content":{"type":"text","$t":"When: Sat Feb 10, 2007 14:00 to Sat Feb 10, 2007 17:00\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid\u003DZ2toYjQ4Zmo2OGxjcDE1ZmQxazAzdGpiajAgd2dAdm9pY2VtZS5uZXQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/gkhb48fj68lcp15fd1k03tjbj0"}],"author":[{"name":{"$t":"w g"},"email":{"$t":"wg@voiceme.net"}}],"gCal$sendEventNotifications":{"value":"false"}},{"id":{"$t":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/32p5g68cpean3p2ol7kanj38sg"},"published":{"$t":"2007-02-05T22:04:29.000Z"},"updated":{"$t":"2007-02-05T22:04:29.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"type":"text","$t":"test event 5"},"summary":{"type":"html","$t":"When: Fri Feb 9, 2007 09:00 to 10:30\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"content":{"type":"text","$t":"When: Fri Feb 9, 2007 09:00 to 10:30\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid\u003DMzJwNWc2OGNwZWFuM3Ayb2w3a2FuajM4c2cgd2dAdm9pY2VtZS5uZXQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/32p5g68cpean3p2ol7kanj38sg"}],"author":[{"name":{"$t":"w g"},"email":{"$t":"wg@voiceme.net"}}],"gCal$sendEventNotifications":{"value":"false"}},{"id":{"$t":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/tfqpth26conshdmav0apje1tf4"},"published":{"$t":"2007-02-05T22:04:19.000Z"},"updated":{"$t":"2007-02-05T22:04:19.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"type":"text","$t":"skate"},"summary":{"type":"html","$t":"When: Thu Feb 8, 2007 15:00 to Thu Feb 8, 2007 17:00\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"content":{"type":"text","$t":"When: Thu Feb 8, 2007 15:00 to Thu Feb 8, 2007 17:00\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid\u003DdGZxcHRoMjZjb25zaGRtYXYwYXBqZTF0ZjQgd2dAdm9pY2VtZS5uZXQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/tfqpth26conshdmav0apje1tf4"}],"author":[{"name":{"$t":"w g"},"email":{"$t":"wg@voiceme.net"}}],"gCal$sendEventNotifications":{"value":"false"}},{"id":{"$t":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/onbo9mhbr5m6mo356nog7uel4s"},"published":{"$t":"2007-02-05T22:04:07.000Z"},"updated":{"$t":"2007-02-05T22:04:07.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"type":"text","$t":"Sharks at Anaheim"},"summary":{"type":"html","$t":"When: Wed Feb 7, 2007 19:00 to 22:00\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"content":{"type":"text","$t":"When: Wed Feb 7, 2007 19:00 to 22:00\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid\u003Db25ibzltaGJyNW02bW8zNTZub2c3dWVsNHMgd2dAdm9pY2VtZS5uZXQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/onbo9mhbr5m6mo356nog7uel4s"}],"author":[{"name":{"$t":"w g"},"email":{"$t":"wg@voiceme.net"}}],"gCal$sendEventNotifications":{"value":"true"}},{"id":{"$t":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/tjqrd9fve576hieh3sa67nql5k"},"published":{"$t":"2007-02-05T22:04:02.000Z"},"updated":{"$t":"2007-02-05T22:04:02.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"type":"text","$t":"Sharks vs. ANAHEIM"},"summary":{"type":"html","$t":"When: Tue Feb 6, 2007 19:30 to 22:30\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"content":{"type":"text","$t":"When: Tue Feb 6, 2007 19:30 to 22:30\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid\u003DdGpxcmQ5ZnZlNTc2aGllaDNzYTY3bnFsNWsgd2dAdm9pY2VtZS5uZXQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/tjqrd9fve576hieh3sa67nql5k"}],"author":[{"name":{"$t":"w g"},"email":{"$t":"wg@voiceme.net"}}],"gCal$sendEventNotifications":{"value":"true"}},{"id":{"$t":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/or6dtpn065f9mntond4jh2docc"},"published":{"$t":"2007-02-05T22:03:52.000Z"},"updated":{"$t":"2007-02-05T22:03:52.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"type":"text","$t":"skate"},"summary":{"type":"html","$t":"When: Tue Feb 6, 2007 14:00 to 15:00\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"content":{"type":"text","$t":"When: Tue Feb 6, 2007 14:00 to 15:00\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid\u003Db3I2ZHRwbjA2NWY5bW50b25kNGpoMmRvY2Mgd2dAdm9pY2VtZS5uZXQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/or6dtpn065f9mntond4jh2docc"}],"author":[{"name":{"$t":"w g"},"email":{"$t":"wg@voiceme.net"}}],"gCal$sendEventNotifications":{"value":"false"}},{"id":{"$t":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/k70v8o4jt1afi17hg2spavq1c0"},"published":{"$t":"2007-02-05T22:03:36.000Z"},"updated":{"$t":"2007-02-05T22:03:36.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"type":"text","$t":"lunch"},"summary":{"type":"html","$t":"Recurring Event\u003Cbr\u003E First start: 2007-02-06 12:00:00 PST \u003Cbr\u003E Duration: 3600 \u003Cbr\u003EEvent Status: confirmed"},"content":{"type":"text","$t":"Recurring Event\u003Cbr\u003E First start: 2007-02-06 12:00:00 PST \u003Cbr\u003E Duration: 3600 \u003Cbr\u003EEvent Status: confirmed"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid\u003DazcwdjhvNGp0MWFmaTE3aGcyc3BhdnExYzBfMjAwNzAyMDZUMjAwMDAwWiB3Z0B2b2ljZW1lLm5ldA","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/k70v8o4jt1afi17hg2spavq1c0"}],"author":[{"name":{"$t":"w g"},"email":{"$t":"wg@voiceme.net"}}],"gCal$sendEventNotifications":{"value":"true"}},{"id":{"$t":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/6ee7b8nohdt03tv0gknm4v7124"},"published":{"$t":"2007-02-05T22:03:19.000Z"},"updated":{"$t":"2007-02-05T22:03:19.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"type":"text","$t":"test event 4"},"summary":{"type":"html","$t":"When: Tue Feb 6, 2007 09:00 to 11:00\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"content":{"type":"text","$t":"When: Tue Feb 6, 2007 09:00 to 11:00\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid\u003DNmVlN2I4bm9oZHQwM3R2MGdrbm00djcxMjQgd2dAdm9pY2VtZS5uZXQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/6ee7b8nohdt03tv0gknm4v7124"}],"author":[{"name":{"$t":"w g"},"email":{"$t":"wg@voiceme.net"}}],"gCal$sendEventNotifications":{"value":"false"}},{"id":{"$t":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/of1vh1r2q5aqdplo65i8bqbn3o"},"published":{"$t":"2007-02-05T22:03:11.000Z"},"updated":{"$t":"2007-02-05T22:03:11.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"type":"text","$t":"test event 3"},"summary":{"type":"html","$t":"When: Mon Feb 5, 2007 18:00 to 19:00\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"content":{"type":"text","$t":"When: Mon Feb 5, 2007 18:00 to 19:00\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid\u003Db2YxdmgxcjJxNWFxZHBsbzY1aThicWJuM28gd2dAdm9pY2VtZS5uZXQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/of1vh1r2q5aqdplo65i8bqbn3o"}],"author":[{"name":{"$t":"w g"},"email":{"$t":"wg@voiceme.net"}}],"gCal$sendEventNotifications":{"value":"false"}},{"id":{"$t":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/s7ahgfomlgii9qbkgpfbinr9u8"},"published":{"$t":"2007-02-05T22:02:40.000Z"},"updated":{"$t":"2007-02-05T22:03:04.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"type":"text","$t":"test event 2"},"summary":{"type":"html","$t":"When: Mon Feb 5, 2007 16:30 to 17:30\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"content":{"type":"text","$t":"When: Mon Feb 5, 2007 16:30 to 17:30\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid\u003DczdhaGdmb21sZ2lpOXFia2dwZmJpbnI5dTggd2dAdm9pY2VtZS5uZXQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/s7ahgfomlgii9qbkgpfbinr9u8"}],"author":[{"name":{"$t":"w g"},"email":{"$t":"wg@voiceme.net"}}],"gCal$sendEventNotifications":{"value":"false"}},{"id":{"$t":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/rl8focglfe6jndql4u8lg73q5k"},"published":{"$t":"2007-02-05T22:02:28.000Z"},"updated":{"$t":"2007-02-05T22:02:53.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"type":"text","$t":"test event 1"},"summary":{"type":"html","$t":"When: Mon Feb 5, 2007 15:00 to Mon Feb 5, 2007 16:00\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"content":{"type":"text","$t":"When: Mon Feb 5, 2007 15:00 to Mon Feb 5, 2007 16:00\u0026nbsp; PST\u003Cbr\u003E \u003Cbr\u003EEvent Status: confirmed"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid\u003Dcmw4Zm9jZ2xmZTZqbmRxbDR1OGxnNzNxNWsgd2dAdm9pY2VtZS5uZXQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/wg%40voiceme.net/public/basic/rl8focglfe6jndql4u8lg73q5k"}],"author":[{"name":{"$t":"w g"},"email":{"$t":"wg@voiceme.net"}}],"gCal$sendEventNotifications":{"value":"false"}}]}} \ No newline at end of file
diff --git a/tests/AndroidTests/res/raw/calendarjsgz.jsgz b/tests/AndroidTests/res/raw/calendarjsgz.jsgz
deleted file mode 100644
index 6f1bf54..0000000
--- a/tests/AndroidTests/res/raw/calendarjsgz.jsgz
+++ /dev/null
Binary files differ
diff --git a/tests/AndroidTests/res/raw/calendarxml.xml b/tests/AndroidTests/res/raw/calendarxml.xml
deleted file mode 100644
index 1adcd74..0000000
--- a/tests/AndroidTests/res/raw/calendarxml.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:gd='http://schemas.google.com/g/2005' xmlns:gCal='http://schemas.google.com/gCal/2005'><id>http://www.google.com/calendar/feeds/default/private/full</id><updated>2007-02-05T22:04:50.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>w g</title><subtitle type='text'>w g</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full'></link><link rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full?max-results=25'></link><author><name>w g</name><email>wg@voiceme.net</email></author><generator version='1.0' uri='http://www.google.com/calendar'>Google Calendar</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><gCal:timezone value='America/Los_Angeles'></gCal:timezone><entry><id>http://www.google.com/calendar/feeds/default/private/full/7iqc1ro0ihc69vhsiq3uabooig</id><published>2007-02-05T22:04:50.000Z</published><updated>2007-02-05T22:04:50.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>skate</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=N2lxYzFybzBpaGM2OXZoc2lxM3VhYm9vaWcgd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/7iqc1ro0ihc69vhsiq3uabooig'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/7iqc1ro0ihc69vhsiq3uabooig/63306396290'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/7iqc1ro0ihc69vhsiq3uabooig/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='false'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where></gd:where><gd:when startTime='2007-02-07T13:30:00.000-08:00' endTime='2007-02-07T16:00:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/kp4gil76n2vcrkt9kaotj3s12c</id><published>2007-02-05T22:04:42.000Z</published><updated>2007-02-05T22:04:42.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>skate</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=a3A0Z2lsNzZuMnZjcmt0OWthb3RqM3MxMmMgd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/kp4gil76n2vcrkt9kaotj3s12c'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/kp4gil76n2vcrkt9kaotj3s12c/63306396282'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/kp4gil76n2vcrkt9kaotj3s12c/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='false'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where></gd:where><gd:when startTime='2007-02-09T15:30:00.000-08:00' endTime='2007-02-09T18:00:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/gkhb48fj68lcp15fd1k03tjbj0</id><published>2007-02-05T22:04:35.000Z</published><updated>2007-02-05T22:04:35.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>test event 6</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=Z2toYjQ4Zmo2OGxjcDE1ZmQxazAzdGpiajAgd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/gkhb48fj68lcp15fd1k03tjbj0'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/gkhb48fj68lcp15fd1k03tjbj0/63306396275'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/gkhb48fj68lcp15fd1k03tjbj0/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='false'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where></gd:where><gd:when startTime='2007-02-10T14:00:00.000-08:00' endTime='2007-02-10T17:00:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/32p5g68cpean3p2ol7kanj38sg</id><published>2007-02-05T22:04:29.000Z</published><updated>2007-02-05T22:04:29.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>test event 5</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=MzJwNWc2OGNwZWFuM3Ayb2w3a2FuajM4c2cgd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/32p5g68cpean3p2ol7kanj38sg'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/32p5g68cpean3p2ol7kanj38sg/63306396269'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/32p5g68cpean3p2ol7kanj38sg/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='false'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where></gd:where><gd:when startTime='2007-02-09T09:00:00.000-08:00' endTime='2007-02-09T10:30:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/tfqpth26conshdmav0apje1tf4</id><published>2007-02-05T22:04:19.000Z</published><updated>2007-02-05T22:04:19.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>skate</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=dGZxcHRoMjZjb25zaGRtYXYwYXBqZTF0ZjQgd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/tfqpth26conshdmav0apje1tf4'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/tfqpth26conshdmav0apje1tf4/63306396259'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/tfqpth26conshdmav0apje1tf4/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='false'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where></gd:where><gd:when startTime='2007-02-08T15:00:00.000-08:00' endTime='2007-02-08T17:00:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/onbo9mhbr5m6mo356nog7uel4s</id><published>2007-02-05T22:04:07.000Z</published><updated>2007-02-05T22:04:07.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>Sharks at Anaheim</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=b25ibzltaGJyNW02bW8zNTZub2c3dWVsNHMgd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/onbo9mhbr5m6mo356nog7uel4s'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/onbo9mhbr5m6mo356nog7uel4s/63306396247'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/onbo9mhbr5m6mo356nog7uel4s/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='true'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where valueString=''></gd:where><gd:when startTime='2007-02-07T19:00:00.000-08:00' endTime='2007-02-07T22:00:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/tjqrd9fve576hieh3sa67nql5k</id><published>2007-02-05T22:04:02.000Z</published><updated>2007-02-05T22:04:02.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>Sharks vs. ANAHEIM</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=dGpxcmQ5ZnZlNTc2aGllaDNzYTY3bnFsNWsgd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/tjqrd9fve576hieh3sa67nql5k'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/tjqrd9fve576hieh3sa67nql5k/63306396242'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/tjqrd9fve576hieh3sa67nql5k/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='true'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where valueString=''></gd:where><gd:when startTime='2007-02-06T19:30:00.000-08:00' endTime='2007-02-06T22:30:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/or6dtpn065f9mntond4jh2docc</id><published>2007-02-05T22:03:52.000Z</published><updated>2007-02-05T22:03:52.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>skate</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=b3I2ZHRwbjA2NWY5bW50b25kNGpoMmRvY2Mgd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/or6dtpn065f9mntond4jh2docc'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/or6dtpn065f9mntond4jh2docc/63306396232'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/or6dtpn065f9mntond4jh2docc/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='false'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where></gd:where><gd:when startTime='2007-02-06T14:00:00.000-08:00' endTime='2007-02-06T15:00:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/k70v8o4jt1afi17hg2spavq1c0</id><published>2007-02-05T22:03:36.000Z</published><updated>2007-02-05T22:03:36.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>lunch</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=azcwdjhvNGp0MWFmaTE3aGcyc3BhdnExYzBfMjAwNzAyMDZUMjAwMDAwWiB3Z0B2b2ljZW1lLm5ldA' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/k70v8o4jt1afi17hg2spavq1c0'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/k70v8o4jt1afi17hg2spavq1c0/63306396216'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='true'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:recurrence>DTSTART;TZID=America/Los_Angeles:20070206T120000
-DURATION:PT3600S
-RRULE:FREQ=DAILY;WKST=SU
-BEGIN:VTIMEZONE
-TZID:America/Los_Angeles
-X-LIC-LOCATION:America/Los_Angeles
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19701025T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:PDT
-DTSTART:19700405T020000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
-END:DAYLIGHT
-END:VTIMEZONE
-</gd:recurrence><gd:where valueString=''></gd:where><gd:reminder minutes='10'></gd:reminder></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/6ee7b8nohdt03tv0gknm4v7124</id><published>2007-02-05T22:03:19.000Z</published><updated>2007-02-05T22:03:19.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>test event 4</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=NmVlN2I4bm9oZHQwM3R2MGdrbm00djcxMjQgd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/6ee7b8nohdt03tv0gknm4v7124'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/6ee7b8nohdt03tv0gknm4v7124/63306396199'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/6ee7b8nohdt03tv0gknm4v7124/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='false'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where></gd:where><gd:when startTime='2007-02-06T09:00:00.000-08:00' endTime='2007-02-06T11:00:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/of1vh1r2q5aqdplo65i8bqbn3o</id><published>2007-02-05T22:03:11.000Z</published><updated>2007-02-05T22:03:11.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>test event 3</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=b2YxdmgxcjJxNWFxZHBsbzY1aThicWJuM28gd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/of1vh1r2q5aqdplo65i8bqbn3o'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/of1vh1r2q5aqdplo65i8bqbn3o/63306396191'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/of1vh1r2q5aqdplo65i8bqbn3o/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='false'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where></gd:where><gd:when startTime='2007-02-05T18:00:00.000-08:00' endTime='2007-02-05T19:00:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/s7ahgfomlgii9qbkgpfbinr9u8</id><published>2007-02-05T22:02:40.000Z</published><updated>2007-02-05T22:03:04.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>test event 2</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=czdhaGdmb21sZ2lpOXFia2dwZmJpbnI5dTggd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/s7ahgfomlgii9qbkgpfbinr9u8'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/s7ahgfomlgii9qbkgpfbinr9u8/63306396184'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/s7ahgfomlgii9qbkgpfbinr9u8/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='false'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where valueString=''></gd:where><gd:when startTime='2007-02-05T16:30:00.000-08:00' endTime='2007-02-05T17:30:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/rl8focglfe6jndql4u8lg73q5k</id><published>2007-02-05T22:02:28.000Z</published><updated>2007-02-05T22:02:53.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>test event 1</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=cmw4Zm9jZ2xmZTZqbmRxbDR1OGxnNzNxNWsgd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/rl8focglfe6jndql4u8lg73q5k'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/rl8focglfe6jndql4u8lg73q5k/63306396173'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/rl8focglfe6jndql4u8lg73q5k/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='false'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where></gd:where><gd:when startTime='2007-02-05T15:00:00.000-08:00' endTime='2007-02-05T16:00:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry></feed>
diff --git a/tests/AndroidTests/res/raw/calendarxmlgz.xmlgz b/tests/AndroidTests/res/raw/calendarxmlgz.xmlgz
deleted file mode 100644
index 6c86462..0000000
--- a/tests/AndroidTests/res/raw/calendarxmlgz.xmlgz
+++ /dev/null
Binary files differ
diff --git a/tests/AndroidTests/res/raw/medium.xml b/tests/AndroidTests/res/raw/medium.xml
deleted file mode 100644
index 51c952c..0000000
--- a/tests/AndroidTests/res/raw/medium.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2006, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<LinearLayout id="@+id/content" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
- <TextView id="@+id/text" android:text="S" android:layout_width="fill_parent" android:layout_height="wrap_content" />
- <TextView id="@+id/text" android:text="M" android:layout_width="fill_parent" android:layout_height="wrap_content" />
- <TextView id="@+id/text" android:text="T" android:layout_width="fill_parent" android:layout_height="wrap_content" />
- <TextView id="@+id/text" android:text="W" android:layout_width="fill_parent" android:layout_height="wrap_content" />
- <TextView id="@+id/text" android:text="H" android:layout_width="fill_parent" android:layout_height="wrap_content" />
- <TextView id="@+id/text" android:text="F" android:layout_width="fill_parent" android:layout_height="wrap_content" />
-</LinearLayout>
diff --git a/tests/AndroidTests/res/raw/small.xml b/tests/AndroidTests/res/raw/small.xml
deleted file mode 100644
index 2697fb8..0000000
--- a/tests/AndroidTests/res/raw/small.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2006, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<view class="com.android.tests.InflateTest$ViewOne" id="@+id/viewOne" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
diff --git a/tests/AndroidTests/res/raw/text.txt b/tests/AndroidTests/res/raw/text.txt
deleted file mode 100644
index 3d8c519..0000000
--- a/tests/AndroidTests/res/raw/text.txt
+++ /dev/null
@@ -1 +0,0 @@
-OneTwoThreeFourFiveSixSevenEightNineTen \ No newline at end of file
diff --git a/tests/AndroidTests/res/raw/youtube.xml b/tests/AndroidTests/res/raw/youtube.xml
deleted file mode 100644
index fedaeac..0000000
--- a/tests/AndroidTests/res/raw/youtube.xml
+++ /dev/null
@@ -1,1852 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<feed xmlns='http://www.w3.org/2005/Atom'
- xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'
- xmlns:media='http://search.yahoo.com/mrss/'
- xmlns:gd='http://schemas.google.com/g/2005'
- xmlns:yt='http://gdata.youtube.com/schemas/2007'>
- <id>http://dm5.google.com/feeds/standardfeeds/top_rated</id>
- <updated>2007-05-01T18:13:20.333Z</updated>
- <title type='text'>Top Rated - Beta</title>
- <logo>http://www.youtube.com/img/pic_youtubelogo_123x63.gif</logo>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/browse?s=tr'></link>
- <link rel='http://schemas.google.com/g/2005#feed'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/standardfeeds/top_rated'></link>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/standardfeeds/top_rated?start-index=1&amp;max-results=25'></link>
- <link rel='next' type='application/atom+xml'
- href='http://dm5.google.com/feeds/standardfeeds/top_rated?start-index=26&amp;max-results=25'></link>
- <author>
- <name>YouTube</name>
- <uri>http://www.youtube.com/</uri>
- </author>
- <generator version='beta' uri='http://gdata.youtube.com/'>YouTube data API
- </generator>
- <openSearch:totalResults>99</openSearch:totalResults>
- <openSearch:startIndex>1</openSearch:startIndex>
- <openSearch:itemsPerPage>25</openSearch:itemsPerPage>
- <entry>
- <id>http://dm5.google.com/feeds/videos/nojWJ6-XmeQ</id>
- <published>2006-09-01T15:13:19.000Z</published>
- <updated>2006-09-01T15:13:19.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='comedy'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='hilarious'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='funny'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Commercial'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='humor'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Condoms'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Comedy' label='Comedy'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Banned'></category>
- <title type='text'>Banned Commercial - Condoms</title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/nojWJ6-XmeQ'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=nojWJ6-XmeQ'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/nojWJ6-XmeQ/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/nojWJ6-XmeQ/ratings'></link>
- <author>
- <name>bannedcommercials</name>
- <uri>http://dm5.google.com/feeds/users/bannedcommercials</uri>
- </author>
- <media:group>
- <media:title type='plain'>Banned Commercial - Condoms</media:title>
- <media:description type='plain'>Banned Commercial - Condoms
- </media:description>
- <media:keywords>Banned, Commercial, Condoms, funny, hilarious,
- comedy, humor
- </media:keywords>
- <yt:duration seconds='45'></yt:duration>
- <media:category label='Comedy'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Comedy
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=nojWJ6-XmeQ'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/nojWJ6-XmeQ/2.jpg'
- height='97' width='130'
- time='00:00:22.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/nojWJ6-XmeQ/1.jpg'
- height='97' width='130'
- time='00:00:11.250'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/nojWJ6-XmeQ/3.jpg'
- height='97' width='130'
- time='00:00:33.750'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/nojWJ6-XmeQ/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='65183' average='4.92'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/nojWJ6-XmeQ/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/JahdnOQ9XCA</id>
- <published>2006-09-01T17:25:14.000Z</published>
- <updated>2006-09-01T17:25:14.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='comedy'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Voodoo'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='hilarious'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Clinton'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='funny'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Bill'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Commercial'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='very'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='doll'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='humor'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Entertainment' label='Entertainment'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Banned'></category>
- <title type='text'>Banned Commercial - Bill Clinton Voodoo doll very
- funny
- </title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/JahdnOQ9XCA'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=JahdnOQ9XCA'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/JahdnOQ9XCA/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/JahdnOQ9XCA/ratings'></link>
- <author>
- <name>bannedcommercials</name>
- <uri>http://dm5.google.com/feeds/users/bannedcommercials</uri>
- </author>
- <media:group>
- <media:title type='plain'>Banned Commercial - Bill Clinton Voodoo
- doll very funny
- </media:title>
- <media:description type='plain'>Banned Commercial - Bill Clinton
- Voodoo doll very funny
- </media:description>
- <media:keywords>Banned, Commercial, Bill, Clinton, Voodoo, doll,
- very, funny, humor, hilarious, comedy
- </media:keywords>
- <yt:duration seconds='69'></yt:duration>
- <media:category label='Entertainment'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Entertainment
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=JahdnOQ9XCA'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/JahdnOQ9XCA/2.jpg'
- height='97' width='130'
- time='00:00:34.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/JahdnOQ9XCA/1.jpg'
- height='97' width='130'
- time='00:00:17.250'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/JahdnOQ9XCA/3.jpg'
- height='97' width='130'
- time='00:00:51.750'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/JahdnOQ9XCA/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='60422' average='4.92'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/JahdnOQ9XCA/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/VcQIwbvGRKU</id>
- <published>2006-09-03T05:32:33.000Z</published>
- <updated>2006-09-03T05:32:33.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='hilarious'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='funny'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Commercial'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Talk'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Amazing'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='humor'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Entertainment' label='Entertainment'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='awesome'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='TV'></category>
- <title type='text'>Amazing funny TV Commercial - Talk Talk</title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/VcQIwbvGRKU'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=VcQIwbvGRKU'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/VcQIwbvGRKU/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/VcQIwbvGRKU/ratings'></link>
- <author>
- <name>bannedcommercials</name>
- <uri>http://dm5.google.com/feeds/users/bannedcommercials</uri>
- </author>
- <media:group>
- <media:title type='plain'>Amazing funny TV Commercial - Talk Talk
- </media:title>
- <media:description type='plain'>Amazing funny TV Commercial - Talk
- Talk
- </media:description>
- <media:keywords>Amazing, funny, TV, Commercial, Talk, humor,
- hilarious, awesome
- </media:keywords>
- <yt:duration seconds='39'></yt:duration>
- <media:category label='Entertainment'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Entertainment
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=VcQIwbvGRKU'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/VcQIwbvGRKU/2.jpg'
- height='97' width='130'
- time='00:00:19.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/VcQIwbvGRKU/1.jpg'
- height='97' width='130'
- time='00:00:09.750'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/VcQIwbvGRKU/3.jpg'
- height='97' width='130'
- time='00:00:29.250'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/VcQIwbvGRKU/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='47602' average='4.92'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/VcQIwbvGRKU/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/JsD6uEZsIsU</id>
- <published>2006-11-28T16:42:47.000Z</published>
- <updated>2006-11-28T16:42:47.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Mckee'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Andy'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Music' label='Music'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Guitar'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Acoustic'></category>
- <title type='text'>Andy Mckee - Rylynn - Acoustic Guitar -
- www.candyrat.com
- </title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/JsD6uEZsIsU'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=JsD6uEZsIsU'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/JsD6uEZsIsU/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/JsD6uEZsIsU/ratings'></link>
- <author>
- <name>rpoland</name>
- <uri>http://dm5.google.com/feeds/users/rpoland</uri>
- </author>
- <media:group>
- <media:title type='plain'>Andy Mckee - Rylynn - Acoustic Guitar -
- www.candyrat.com
- </media:title>
- <media:description type='plain'>Filmed Nov, 2006.
-
- CD - Art of Motion
-
- http://www.candyrat.com
-
- Transcriptions Available at:
-
- http://www.candyrat.com
- </media:description>
- <media:keywords>Andy, Mckee, Acoustic, Guitar</media:keywords>
- <yt:duration seconds='315'></yt:duration>
- <media:category label='Music'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Music
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=JsD6uEZsIsU'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/JsD6uEZsIsU/2.jpg'
- height='97' width='130'
- time='00:02:37.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/JsD6uEZsIsU/1.jpg'
- height='97' width='130'
- time='00:01:18.750'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/JsD6uEZsIsU/3.jpg'
- height='97' width='130'
- time='00:03:56.250'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/JsD6uEZsIsU/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='5035' average='4.92'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/JsD6uEZsIsU/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/dt1fB62cGbo</id>
- <published>2006-11-19T16:02:11.000Z</published>
- <updated>2006-11-19T16:02:11.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Toto'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Africa'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Mckee'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Andy'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Music' label='Music'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Guitar'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Fingerstyle'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Acoustic'></category>
- <title type='text'>Andy Mckee - Africa - Toto - www.candyrat.com</title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/dt1fB62cGbo'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=dt1fB62cGbo'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/dt1fB62cGbo/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/dt1fB62cGbo/ratings'></link>
- <author>
- <name>rpoland</name>
- <uri>http://dm5.google.com/feeds/users/rpoland</uri>
- </author>
- <media:group>
- <media:title type='plain'>Andy Mckee - Africa - Toto -
- www.candyrat.com
- </media:title>
- <media:description type='plain'>Andy Mckee
-
- filmed, Nov, 2006.
-
- CD - Dreamcatcher
- http://www.candyrat.com
-
- Transcriptions Available at:
- http://www.candyrat.com
- </media:description>
- <media:keywords>Andy, Mckee, Acoustic, Guitar, Fingerstyle, Africa,
- Toto
- </media:keywords>
- <yt:duration seconds='268'></yt:duration>
- <media:category label='Music'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Music
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=dt1fB62cGbo'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/dt1fB62cGbo/2.jpg'
- height='97' width='130'
- time='00:02:14'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/dt1fB62cGbo/1.jpg'
- height='97' width='130'
- time='00:01:07'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/dt1fB62cGbo/3.jpg'
- height='97' width='130'
- time='00:03:21'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/dt1fB62cGbo/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='4741' average='4.93'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/dt1fB62cGbo/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/Ddn4MGaS3N4</id>
- <published>2006-11-25T21:38:20.000Z</published>
- <updated>2006-11-25T21:38:20.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Mckee'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Andy'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Music' label='Music'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Guitar'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Acoustic'></category>
- <title type='text'>Andy Mckee - Guitar - Drifting - www.candyrat.com
- </title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/Ddn4MGaS3N4'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=Ddn4MGaS3N4'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/Ddn4MGaS3N4/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/Ddn4MGaS3N4/ratings'></link>
- <author>
- <name>rpoland</name>
- <uri>http://dm5.google.com/feeds/users/rpoland</uri>
- </author>
- <media:group>
- <media:title type='plain'>Andy Mckee - Guitar - Drifting -
- www.candyrat.com
- </media:title>
- <media:description type='plain'>Acoustic Guitar
-
- Drifting - Andy Mckee's Original Song
-
- filmed, Nov, 2006.
-
- CD - Art of Motion
-
- http://www.candyrat.com
-
- Transcriptions Available at:
-
- http://www.candyrat.com
- </media:description>
- <media:keywords>Acoustic, Guitar, Andy, Mckee</media:keywords>
- <yt:duration seconds='198'></yt:duration>
- <media:category label='Music'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Music
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=Ddn4MGaS3N4'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/Ddn4MGaS3N4/2.jpg'
- height='97' width='130'
- time='00:01:39'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/Ddn4MGaS3N4/1.jpg'
- height='97' width='130'
- time='00:00:49.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/Ddn4MGaS3N4/3.jpg'
- height='97' width='130'
- time='00:02:28.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/Ddn4MGaS3N4/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='26323' average='4.90'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/Ddn4MGaS3N4/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/SmVAWKfJ4Go</id>
- <published>2005-12-13T02:25:05.000Z</published>
- <updated>2005-12-13T02:25:05.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Cash'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Music' label='Music'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='hurt'></category>
- <title type='text'>Cash Hurt</title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/SmVAWKfJ4Go'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=SmVAWKfJ4Go'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/SmVAWKfJ4Go/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/SmVAWKfJ4Go/ratings'></link>
- <author>
- <name>beachbuggy</name>
- <uri>http://dm5.google.com/feeds/users/beachbuggy</uri>
- </author>
- <media:group>
- <media:title type='plain'>Cash Hurt</media:title>
- <media:description type='plain'>cash hurt</media:description>
- <media:keywords>Cash, hurt</media:keywords>
- <yt:duration seconds='241'></yt:duration>
- <media:category label='Music'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Music
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=SmVAWKfJ4Go'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/SmVAWKfJ4Go/2.jpg'
- height='97' width='130'
- time='00:02:00.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/SmVAWKfJ4Go/1.jpg'
- height='97' width='130'
- time='00:01:00.250'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/SmVAWKfJ4Go/3.jpg'
- height='97' width='130'
- time='00:03:00.750'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/SmVAWKfJ4Go/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='5328' average='4.91'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/SmVAWKfJ4Go/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/AbndgwfG22k</id>
- <published>2006-06-18T18:07:46.000Z</published>
- <updated>2006-06-18T18:07:46.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Tommy'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Don'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Preston'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Kottke'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Emmanuel'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Ross'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Mongrain'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Hedges'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Erik'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Michael'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Reed'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Music' label='Music'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Guitar'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Leo'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Acoustic'></category>
- <title type='text'>"AirTap!"</title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/AbndgwfG22k'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=AbndgwfG22k'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/AbndgwfG22k/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/AbndgwfG22k/ratings'></link>
- <author>
- <name>erikmongrain</name>
- <uri>http://dm5.google.com/feeds/users/erikmongrain</uri>
- </author>
- <media:group>
- <media:title type='plain'>"AirTap!"</media:title>
- <media:description type='plain'>MY FIRST CD IS NOW AVAILABLE ON MY
- WEBSITE IN MP3 FORMAT !!! IN STORE MAY 2007 !
- www.erikmongrain.com
-
- Myself playing a composition I made 6 years ago in the streets
- of Spain when I was travelling around.That was on "Belle et Bum"
- (popular music show in Quebec ).
- </media:description>
- <media:keywords>Acoustic, Guitar, Michael, Hedges, Preston, Reed,
- Don, Ross, Erik, Mongrain, Tommy, Emmanuel, Leo, Kottke
- </media:keywords>
- <yt:duration seconds='180'></yt:duration>
- <media:category label='Music'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Music
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=AbndgwfG22k'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/AbndgwfG22k/2.jpg'
- height='97' width='130'
- time='00:01:30'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/AbndgwfG22k/1.jpg'
- height='97' width='130'
- time='00:00:45'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/AbndgwfG22k/3.jpg'
- height='97' width='130'
- time='00:02:15'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/AbndgwfG22k/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='6453' average='4.90'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/AbndgwfG22k/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/2Neop9OVaB8</id>
- <published>2006-11-21T23:03:29.000Z</published>
- <updated>2006-11-21T23:03:29.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Reel'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Minor'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Dunks'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Shinoda'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Skate'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Mike'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Name'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Fuse'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Flips'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Sports'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Entertainment' label='Entertainment'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Action'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Ties'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Remember'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Fort'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Highlight'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Scooter'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Tricks'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Rising'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='The'></category>
- <title type='text'>Remember The Name - Highlight Reel Video</title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/2Neop9OVaB8'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=2Neop9OVaB8'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/2Neop9OVaB8/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/2Neop9OVaB8/ratings'></link>
- <author>
- <name>fortminor</name>
- <uri>http://dm5.google.com/feeds/users/fortminor</uri>
- </author>
- <media:group>
- <media:title type='plain'>Remember The Name - Highlight Reel Video
- </media:title>
- <media:description type='plain'>Fort Minor Remember The Name
- "Highlight Reel" video - made from the winning video clips
- submitted for the Fort Minor / Fuse Remember The Name contest -
- congratulations to all the winners!
- </media:description>
- <media:keywords>Fort, Minor, Fuse, Highlight, Reel, Action, Sports,
- Remember, The, Name, Rising, Ties, Mike, Shinoda, Skate,
- Scooter, Tricks, Flips, Dunks
- </media:keywords>
- <yt:duration seconds='246'></yt:duration>
- <media:category label='Entertainment'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Entertainment
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=2Neop9OVaB8'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/2Neop9OVaB8/2.jpg'
- height='97' width='130'
- time='00:02:03'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/2Neop9OVaB8/1.jpg'
- height='97' width='130'
- time='00:01:01.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/2Neop9OVaB8/3.jpg'
- height='97' width='130'
- time='00:03:04.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/2Neop9OVaB8/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='5535' average='4.90'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/2Neop9OVaB8/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/QKXWAE8YYxY</id>
- <published>2006-02-03T00:07:12.000Z</published>
- <updated>2006-02-03T00:07:12.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='MF'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Self'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Resident'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='MSI'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Evil'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Stupid'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Indulgence'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Four'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Mindless'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='RE4'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Games' label='Gadgets &amp; Games'></category>
- <title type='text'>Resident Evil 4 -- Stupid MF</title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/QKXWAE8YYxY'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=QKXWAE8YYxY'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/QKXWAE8YYxY/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/QKXWAE8YYxY/ratings'></link>
- <author>
- <name>raypinot</name>
- <uri>http://dm5.google.com/feeds/users/raypinot</uri>
- </author>
- <media:group>
- <media:title type='plain'>Resident Evil 4 -- Stupid MF</media:title>
- <media:description type='plain'>Video I made for Resident Evil 4
- using "Separate Ways" and footage and that didn't make it into
- my first video, "Vicinity of Obscenity" This video is done to
- the song "Stupid MF" by Mindless Self Indulgence.
-
- http://www.help-lara-and-ray.com/
- </media:description>
- <media:keywords>Resident, Evil, Four, RE4, Mindless, Self,
- Indulgence, MSI, Stupid, MF
- </media:keywords>
- <yt:duration seconds='146'></yt:duration>
- <media:category label='Gadgets &amp; Games'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Games
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=QKXWAE8YYxY'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/QKXWAE8YYxY/2.jpg'
- height='97' width='130'
- time='00:01:13'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/QKXWAE8YYxY/1.jpg'
- height='97' width='130'
- time='00:00:36.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/QKXWAE8YYxY/3.jpg'
- height='97' width='130'
- time='00:01:49.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/QKXWAE8YYxY/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='12632' average='4.89'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/QKXWAE8YYxY/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/zQoAUI84amI</id>
- <published>2006-02-02T23:36:31.000Z</published>
- <updated>2006-02-02T23:36:31.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Resident'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Evil'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='of'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='SOAD'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Obscenity'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Four'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Vicinity'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='System'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='RE4'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Games' label='Gadgets &amp; Games'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Down'></category>
- <title type='text'>Resident Evil 4 -- Vicinity of Obscenity</title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/zQoAUI84amI'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=zQoAUI84amI'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/zQoAUI84amI/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/zQoAUI84amI/ratings'></link>
- <author>
- <name>raypinot</name>
- <uri>http://dm5.google.com/feeds/users/raypinot</uri>
- </author>
- <media:group>
- <media:title type='plain'>Resident Evil 4 -- Vicinity of Obscenity
- </media:title>
- <media:description type='plain'>Music video I made For Resident Evil
- 4 (PS2), using the System of a Down song, "Vicinity of
- Obscenity"
-
-
- http://www.help-lara-and-ray.com/
- </media:description>
- <media:keywords>Resident, Evil, Four, RE4, System, Down, SOAD,
- Vicinity, of, Obscenity
- </media:keywords>
- <yt:duration seconds='168'></yt:duration>
- <media:category label='Gadgets &amp; Games'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Games
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=zQoAUI84amI'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/zQoAUI84amI/2.jpg'
- height='97' width='130'
- time='00:01:24'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/zQoAUI84amI/1.jpg'
- height='97' width='130'
- time='00:00:42'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/zQoAUI84amI/3.jpg'
- height='97' width='130'
- time='00:02:06'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/zQoAUI84amI/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='9509' average='4.89'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/zQoAUI84amI/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/JzqumbhfxRo</id>
- <published>2006-11-07T16:59:10.000Z</published>
- <updated>2006-11-07T16:59:10.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='gjertsen'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='drums'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='and'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='editing'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='piano'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='amateur'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='drumkit'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='titties'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='norsk'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='ass'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Film' label='Film &amp; Animation'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='lasse'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='hyperactive'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='lassegg'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='music'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='norwegian'></category>
- <title type='text'>Amateur - Lasse Gjertsen</title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/JzqumbhfxRo'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=JzqumbhfxRo'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/JzqumbhfxRo/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/JzqumbhfxRo/ratings'></link>
- <author>
- <name>lassegg</name>
- <uri>http://dm5.google.com/feeds/users/lassegg</uri>
- </author>
- <media:group>
- <media:title type='plain'>Amateur - Lasse Gjertsen</media:title>
- <media:description type='plain'>I've taken my hyperactive editing
- style a step further! Hope you'll enjoy it!
-
- If you want to download the audio from this video, go to
- http://www11.nrk.no/urort/user/?id=36781
- It's a norwegian page where I uploaded some of my music. (Lytt =
- Listen to, Last ned = Download)
-
- Oh shit, I forgot to put this in the video, and now it's too
- late to change it:
- Thanks to my friend Mattis for letting me borrow the drum kit.
- Also thanks to the person letting me use her piano, but she
- didn't want her name here :P
-
- And now; to you people saying I'm ripping off Michel Gondry:
- I've seen his video with the drumkit called "Drumb and Drumber".
- It's here on youtube somewhere. His video and my video are
- different because of one very important detail: Gondy filmed
- himself doing drumming sequences and LOOPED them, while I hit
- each drum and piano chord seperately and edited them together.
- This is a very big difference if you have any idea about video
- editing. Actually, there is a short sequence of 5 sec where he
- does cut the beat, but I didn't notice this until recently,
- which makes me an idiot. But I still don't think it's a rip off,
- only similar. SO one question to you guys: If I write a song
- which includes the words "love" and "tight", am I ripping off
- The Beatles?? :P I met Michel Gondry in Milan, Italy and asked
- him. He didn't really give me a clear answer, but it seemed like
- he thought so. Either that or he didn't like my clothes. Lol.
- </media:description>
- <media:keywords>amateur, lasse, gjertsen, drumkit, drums, piano,
- music, norsk, norwegian, lassegg, hyperactive, editing, ass,
- and, titties
- </media:keywords>
- <yt:duration seconds='192'></yt:duration>
- <media:category label='Film &amp; Animation'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Film
- </media:category>
- <media:content
- url='rtsp://rtsp.youtube.com/youtube/videos/JzqumbhfxRo/video.3gp'
- type='video/3gpp' medium='video' isDefault='true'
- expression='full' duration='192'
- yt:format='1'></media:content>
- <media:player
- url='http://www.youtube.com/watch?v=JzqumbhfxRo'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/JzqumbhfxRo/2.jpg'
- height='97' width='130'
- time='00:01:36'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/JzqumbhfxRo/1.jpg'
- height='97' width='130'
- time='00:00:48'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/JzqumbhfxRo/3.jpg'
- height='97' width='130'
- time='00:02:24'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/JzqumbhfxRo/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='35620' average='4.89'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/JzqumbhfxRo/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/YxQrPXPSVhQ</id>
- <published>2006-06-17T16:04:49.000Z</published>
- <updated>2006-06-17T16:04:49.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Evanescence'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Music' label='Music'></category>
- <title type='text'>Evanescence</title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/YxQrPXPSVhQ'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=YxQrPXPSVhQ'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/YxQrPXPSVhQ/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/YxQrPXPSVhQ/ratings'></link>
- <author>
- <name>luke4leanne</name>
- <uri>http://dm5.google.com/feeds/users/luke4leanne</uri>
- </author>
- <media:group>
- <media:title type='plain'>Evanescence</media:title>
- <media:description type='plain'>Evanescence-My Immortal
- </media:description>
- <media:keywords>Evanescence</media:keywords>
- <yt:duration seconds='272'></yt:duration>
- <media:category label='Music'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Music
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=YxQrPXPSVhQ'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/YxQrPXPSVhQ/2.jpg'
- height='97' width='130'
- time='00:02:16'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/YxQrPXPSVhQ/1.jpg'
- height='97' width='130'
- time='00:01:08'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/YxQrPXPSVhQ/3.jpg'
- height='97' width='130'
- time='00:03:24'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/YxQrPXPSVhQ/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='5226' average='4.90'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/YxQrPXPSVhQ/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/O9mEKMz2Pvo</id>
- <published>2006-02-15T12:14:08.000Z</published>
- <updated>2006-02-15T12:14:08.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Weeps'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Shimabukuro'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='ukelele'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Music' label='Music'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Gently'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Guitar'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='While'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='My'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Jake'></category>
- <title type='text'>Jake Shimabukuro plays "While My Guitar Gently Weeps"
- </title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/O9mEKMz2Pvo'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=O9mEKMz2Pvo'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/O9mEKMz2Pvo/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/O9mEKMz2Pvo/ratings'></link>
- <author>
- <name>strewth</name>
- <uri>http://dm5.google.com/feeds/users/strewth</uri>
- </author>
- <media:group>
- <media:title type='plain'>Jake Shimabukuro plays "While My Guitar
- Gently Weeps"
- </media:title>
- <media:description type='plain'>Jake Shimabukuro plays "While My
- Guitar Gently Weeps" on the ukelele. Amazing.
- </media:description>
- <media:keywords>Jake, Shimabukuro, While, My, Guitar, Gently, Weeps,
- ukelele
- </media:keywords>
- <yt:duration seconds='272'></yt:duration>
- <media:category label='Music'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Music
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=O9mEKMz2Pvo'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/O9mEKMz2Pvo/2.jpg'
- height='97' width='130'
- time='00:02:16'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/O9mEKMz2Pvo/1.jpg'
- height='97' width='130'
- time='00:01:08'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/O9mEKMz2Pvo/3.jpg'
- height='97' width='130'
- time='00:03:24'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/O9mEKMz2Pvo/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='6596' average='4.89'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/O9mEKMz2Pvo/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/rP3qL4UG1TI</id>
- <published>2006-10-27T20:29:34.000Z</published>
- <updated>2006-10-27T20:29:34.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='105'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Live'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Spears'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='whitemenace'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Entertainment' label='Entertainment'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Q101'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Woody'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Ravey'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='snoop'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='JayZ'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='dog'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='show'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='morning'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Aries'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Tony'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='radio'></category>
- <title type='text'>The Woody show "Aries Spears" rap Live105.com</title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/rP3qL4UG1TI'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=rP3qL4UG1TI'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/rP3qL4UG1TI/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/rP3qL4UG1TI/ratings'></link>
- <author>
- <name>Livemorningshow</name>
- <uri>http://dm5.google.com/feeds/users/Livemorningshow</uri>
- </author>
- <media:group>
- <media:title type='plain'>The Woody show "Aries Spears" rap
- Live105.com
- </media:title>
- <media:description type='plain'>Live 105 Morning show "Aries Spears"
- rap with Woody,Tony and Ravey. Edited By:
- myspace.com/whitemenace
- </media:description>
- <media:keywords>Woody, Tony, Ravey, Live, 105, radio, morning, show,
- Aries, Spears, JayZ, whitemenace, snoop, dog, Q101
- </media:keywords>
- <yt:duration seconds='135'></yt:duration>
- <media:category label='Entertainment'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Entertainment
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=rP3qL4UG1TI'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/rP3qL4UG1TI/2.jpg'
- height='97' width='130'
- time='00:01:07.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/rP3qL4UG1TI/1.jpg'
- height='97' width='130'
- time='00:00:33.750'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/rP3qL4UG1TI/3.jpg'
- height='97' width='130'
- time='00:01:41.250'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/rP3qL4UG1TI/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='4856' average='4.90'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/rP3qL4UG1TI/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/4NFiu-V7StQ</id>
- <published>2006-05-19T17:11:52.000Z</published>
- <updated>2006-05-19T17:11:52.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Sims'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Chemical'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Film' label='Film &amp; Animation'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Helena'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Jaydee'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Romance'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Movie'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='MCR'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='machinima'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='My'></category>
- <title type='text'>Helena - My Chemical Romance - Sims 2 version</title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/4NFiu-V7StQ'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=4NFiu-V7StQ'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/4NFiu-V7StQ/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/4NFiu-V7StQ/ratings'></link>
- <author>
- <name>jaydee227</name>
- <uri>http://dm5.google.com/feeds/users/jaydee227</uri>
- </author>
- <media:group>
- <media:title type='plain'>Helena - My Chemical Romance - Sims 2
- version
- </media:title>
- <media:description type='plain'>This is the 3rd sims movie I made.
- you need to watch it carefully or you won't understand the
- story. But hope you enjoy :)
-
- USEFUL LINKS:
-
- Explanations to the storyline:
- http://www.jd-movies.com/helenaexplained.html
-
- List of the custom content:
- http://www.jd-movies.com/helenacc.html
-
- Movie FAQ:
- http://www.jd-movies.com/helenafaq.html
-
- Download link (MUCH better quality):
- http://www.archive.org/download/helenasims2/Helena.wmv
- </media:description>
- <media:keywords>Helena, My, Chemical, Romance, MCR, Sims, Movie,
- machinima, Jaydee
- </media:keywords>
- <yt:duration seconds='265'></yt:duration>
- <media:category label='Film &amp; Animation'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Film
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=4NFiu-V7StQ'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/4NFiu-V7StQ/2.jpg'
- height='97' width='130'
- time='00:02:12.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/4NFiu-V7StQ/1.jpg'
- height='97' width='130'
- time='00:01:06.250'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/4NFiu-V7StQ/3.jpg'
- height='97' width='130'
- time='00:03:18.750'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/4NFiu-V7StQ/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='8446' average='4.89'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/4NFiu-V7StQ/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/bGFXKYvH39I</id>
- <published>2006-06-21T17:23:54.000Z</published>
- <updated>2006-06-21T17:23:54.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Three'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Music' label='Music'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='grace'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='days'></category>
- <title type='text'>three days grace-Animal I Have Become</title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/bGFXKYvH39I'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=bGFXKYvH39I'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/bGFXKYvH39I/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/bGFXKYvH39I/ratings'></link>
- <author>
- <name>jollech69</name>
- <uri>http://dm5.google.com/feeds/users/jollech69</uri>
- </author>
- <media:group>
- <media:title type='plain'>three days grace-Animal I Have Become
- </media:title>
- <media:description type='plain'>By 3 days grace</media:description>
- <media:keywords>Three, days, grace</media:keywords>
- <yt:duration seconds='233'></yt:duration>
- <media:category label='Music'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Music
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=bGFXKYvH39I'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/bGFXKYvH39I/2.jpg'
- height='97' width='130'
- time='00:01:56.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/bGFXKYvH39I/1.jpg'
- height='97' width='130'
- time='00:00:58.250'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/bGFXKYvH39I/3.jpg'
- height='97' width='130'
- time='00:02:54.750'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/bGFXKYvH39I/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='5975' average='4.89'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/bGFXKYvH39I/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/V1_OkegYtZI</id>
- <published>2007-03-17T10:45:49.000Z</published>
- <updated>2007-03-17T10:45:49.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='series'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='spoof'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='dub'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='abridged'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='yugioh'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Comedy' label='Comedy'></category>
- <title type='text'>Yu-Gi-Oh: The Abridged Series - Episode 19</title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/V1_OkegYtZI'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=V1_OkegYtZI'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/V1_OkegYtZI/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/V1_OkegYtZI/ratings'></link>
- <author>
- <name>LittleKuriboh</name>
- <uri>http://dm5.google.com/feeds/users/LittleKuriboh</uri>
- </author>
- <media:group>
- <media:title type='plain'>Yu-Gi-Oh: The Abridged Series - Episode 19
- </media:title>
- <media:description type='plain'>Imagine Yu-Gi-Oh condensed into
- about nine minutes. That's basically what this is.
-
- Yu-Gi-Oh is the property of Konami and Kazuki Takahasi.
- </media:description>
- <media:keywords>yugioh, abridged, series, dub, spoof
- </media:keywords>
- <yt:duration seconds='513'></yt:duration>
- <media:category label='Comedy'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Comedy
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=V1_OkegYtZI'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/V1_OkegYtZI/2.jpg'
- height='97' width='130'
- time='00:04:16.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/V1_OkegYtZI/1.jpg'
- height='97' width='130'
- time='00:02:08.250'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/V1_OkegYtZI/3.jpg'
- height='97' width='130'
- time='00:06:24.750'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/V1_OkegYtZI/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='5912' average='4.89'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/V1_OkegYtZI/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/1A42U-pKP0U</id>
- <published>2006-06-02T16:38:18.000Z</published>
- <updated>2006-06-02T16:38:18.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Inside'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Music' label='Music'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='FroM'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='LP'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='The'></category>
- <title type='text'>â„¢[LINKIN PARK-From The Inside]â„¢</title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/1A42U-pKP0U'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=1A42U-pKP0U'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/1A42U-pKP0U/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/1A42U-pKP0U/ratings'></link>
- <author>
- <name>linkin2789</name>
- <uri>http://dm5.google.com/feeds/users/linkin2789</uri>
- </author>
- <media:group>
- <media:title type='plain'>â„¢[LINKIN PARK-From The Inside]â„¢
- </media:title>
- <media:description type='plain'>Video de la canción From The Inside
- de Linkin Park.
- </media:description>
- <media:keywords>LP, FroM, The, Inside</media:keywords>
- <yt:duration seconds='175'></yt:duration>
- <media:category label='Music'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Music
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=1A42U-pKP0U'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/1A42U-pKP0U/2.jpg'
- height='97' width='130'
- time='00:01:27.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/1A42U-pKP0U/1.jpg'
- height='97' width='130'
- time='00:00:43.750'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/1A42U-pKP0U/3.jpg'
- height='97' width='130'
- time='00:02:11.250'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/1A42U-pKP0U/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='6824' average='4.89'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/1A42U-pKP0U/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/s-7UX1xSEfU</id>
- <published>2006-07-18T17:06:52.000Z</published>
- <updated>2006-07-18T17:06:52.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='spoof'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='dub'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='abridged'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='yugioh'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Comedy' label='Comedy'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='yu-gi-oh'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='anime'></category>
- <title type='text'>Yu-Gi-Oh: The Abridged Series (Episode 3)</title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/s-7UX1xSEfU'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=s-7UX1xSEfU'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/s-7UX1xSEfU/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/s-7UX1xSEfU/ratings'></link>
- <author>
- <name>LittleKuriboh</name>
- <uri>http://dm5.google.com/feeds/users/LittleKuriboh</uri>
- </author>
- <media:group>
- <media:title type='plain'>Yu-Gi-Oh: The Abridged Series (Episode 3)
- </media:title>
- <media:description type='plain'>Imagine "Yu-Gi-Oh" condensed into
- four minutes. That's basically what this is.
- </media:description>
- <media:keywords>yugioh, yu-gi-oh, dub, spoof, anime, abridged
- </media:keywords>
- <yt:duration seconds='273'></yt:duration>
- <media:category label='Comedy'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Comedy
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=s-7UX1xSEfU'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/s-7UX1xSEfU/2.jpg'
- height='97' width='130'
- time='00:02:16.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/s-7UX1xSEfU/1.jpg'
- height='97' width='130'
- time='00:01:08.250'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/s-7UX1xSEfU/3.jpg'
- height='97' width='130'
- time='00:03:24.750'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/s-7UX1xSEfU/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='5907' average='4.89'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/s-7UX1xSEfU/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/V6k3YlcYtS0</id>
- <published>2006-08-05T22:15:41.000Z</published>
- <updated>2006-08-05T22:15:41.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='spoof'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='dub'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='abridged'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='yugioh'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Comedy' label='Comedy'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='yu-gi-oh'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='anime'></category>
- <title type='text'>Yu-Gi-Oh: The Abridged Series (Episode 6)</title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/V6k3YlcYtS0'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=V6k3YlcYtS0'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/V6k3YlcYtS0/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/V6k3YlcYtS0/ratings'></link>
- <author>
- <name>LittleKuriboh</name>
- <uri>http://dm5.google.com/feeds/users/LittleKuriboh</uri>
- </author>
- <media:group>
- <media:title type='plain'>Yu-Gi-Oh: The Abridged Series (Episode 6)
- </media:title>
- <media:description type='plain'>Imagine "Yu-Gi-Oh" condensed into
- four... uh, six minutes. That's basically what this is.
-
- Yu-Gi-Oh belongs to Kazuki Takahashi
- </media:description>
- <media:keywords>yu-gi-oh, yugioh, abridged, dub, spoof, anime
- </media:keywords>
- <yt:duration seconds='355'></yt:duration>
- <media:category label='Comedy'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Comedy
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=V6k3YlcYtS0'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/V6k3YlcYtS0/2.jpg'
- height='97' width='130'
- time='00:02:57.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/V6k3YlcYtS0/1.jpg'
- height='97' width='130'
- time='00:01:28.750'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/V6k3YlcYtS0/3.jpg'
- height='97' width='130'
- time='00:04:26.250'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/V6k3YlcYtS0/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='6447' average='4.89'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/V6k3YlcYtS0/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/HTKs5ZT16PM</id>
- <published>2006-10-23T18:15:56.000Z</published>
- <updated>2006-10-23T18:15:56.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='series'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='spoof'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='dub'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='abridged'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='yugioh'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Comedy' label='Comedy'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='anime'></category>
- <title type='text'>Yu-Gi-Oh: The Abridged Series (Episode 13)</title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/HTKs5ZT16PM'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=HTKs5ZT16PM'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/HTKs5ZT16PM/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/HTKs5ZT16PM/ratings'></link>
- <author>
- <name>LittleKuriboh</name>
- <uri>http://dm5.google.com/feeds/users/LittleKuriboh</uri>
- </author>
- <media:group>
- <media:title type='plain'>Yu-Gi-Oh: The Abridged Series (Episode 13)
- </media:title>
- <media:description type='plain'>Please ignore the imposter videos.
-
- Imagine "Yu-Gi-Oh" condensed into five/six minutes. That's
- basically what this is.
-
- Yu-Gi-Oh belongs to Kazuki Takahashi
- </media:description>
- <media:keywords>yugioh, abridged, series, anime, spoof, dub
- </media:keywords>
- <yt:duration seconds='349'></yt:duration>
- <media:category label='Comedy'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Comedy
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=HTKs5ZT16PM'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/HTKs5ZT16PM/2.jpg'
- height='97' width='130'
- time='00:02:54.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/HTKs5ZT16PM/1.jpg'
- height='97' width='130'
- time='00:01:27.250'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/HTKs5ZT16PM/3.jpg'
- height='97' width='130'
- time='00:04:21.750'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/HTKs5ZT16PM/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='7255' average='4.89'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/HTKs5ZT16PM/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/MePzWtHqrso</id>
- <published>2006-06-28T00:21:59.000Z</published>
- <updated>2006-06-28T00:21:59.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Benjamin'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Breaking'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Music' label='Music'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Diary'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Jane'></category>
- <title type='text'>Breaking Benjamin - "The Diary of Jane"</title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/MePzWtHqrso'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=MePzWtHqrso'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/MePzWtHqrso/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/MePzWtHqrso/ratings'></link>
- <author>
- <name>BrienTA</name>
- <uri>http://dm5.google.com/feeds/users/BrienTA</uri>
- </author>
- <media:group>
- <media:title type='plain'>Breaking Benjamin - "The Diary of Jane"
- </media:title>
- <media:description type='plain'>Breaking Benjamin - "The Diary of
- Jane"
- </media:description>
- <media:keywords>Breaking, Benjamin, Diary, Jane</media:keywords>
- <yt:duration seconds='207'></yt:duration>
- <media:category label='Music'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Music
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=MePzWtHqrso'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/MePzWtHqrso/2.jpg'
- height='97' width='130'
- time='00:01:43.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/MePzWtHqrso/1.jpg'
- height='97' width='130'
- time='00:00:51.750'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/MePzWtHqrso/3.jpg'
- height='97' width='130'
- time='00:02:35.250'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/MePzWtHqrso/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='6298' average='4.89'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/MePzWtHqrso/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/ElrldD02if0</id>
- <published>2006-11-20T19:41:52.000Z</published>
- <updated>2006-11-20T19:41:52.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='ms.paint'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='paint'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='how'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='good'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='automobile'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='custom'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='art'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='comaro'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='foose'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='chip'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='artistic'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='concept'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='great'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='awsome'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Film' label='Film &amp; Animation'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='design'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='draw'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='car'></category>
- <title type='text'>Re: How to draw a car in MS. Paint</title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/ElrldD02if0'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=ElrldD02if0'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/ElrldD02if0/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/ElrldD02if0/ratings'></link>
- <author>
- <name>picster</name>
- <uri>http://dm5.google.com/feeds/users/picster</uri>
- </author>
- <media:group>
- <media:title type='plain'>Re: How to draw a car in MS. Paint
- </media:title>
- <media:description type='plain'>WATCH MY NEW VIDEO!!!!
- http://www.youtube.com/watch?v=vUWqRhReaZk
-
- ----
- Wow! So many nice comments and views :)
- I'm very happy you all like it.
-
- And thank you very much for all the nice emails!
- </media:description>
- <media:keywords>car, art, paint, draw, automobile, comaro, custom,
- concept, how, ms.paint, great, good, awsome, design, artistic,
- chip, foose
- </media:keywords>
- <yt:duration seconds='318'></yt:duration>
- <media:category label='Film &amp; Animation'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Film
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=ElrldD02if0'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/ElrldD02if0/2.jpg'
- height='97' width='130'
- time='00:02:39'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/ElrldD02if0/1.jpg'
- height='97' width='130'
- time='00:01:19.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/ElrldD02if0/3.jpg'
- height='97' width='130'
- time='00:03:58.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/ElrldD02if0/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='9986' average='4.88'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/ElrldD02if0/comments'></gd:feedLink>
- </entry>
- <entry>
- <id>http://dm5.google.com/feeds/videos/Ox0c_1l9al4</id>
- <published>2006-07-04T01:56:27.000Z</published>
- <updated>2006-07-04T01:56:27.000Z</updated>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Cook'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Naruto'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat'
- term='Dane'></category>
- <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'
- term='Comedy' label='Comedy'></category>
- <title type='text'>AMV Comedians 2 (Dane Cook)</title>
- <link rel='self' type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/Ox0c_1l9al4'></link>
- <link rel='alternate' type='text/html'
- href='http://www.youtube.com/watch?v=Ox0c_1l9al4'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/Ox0c_1l9al4/responses'></link>
- <link rel='http://gdata.youtube.com/schemas/2007#video.ratings'
- type='application/atom+xml'
- href='http://dm5.google.com/feeds/videos/Ox0c_1l9al4/ratings'></link>
- <author>
- <name>Rubix89</name>
- <uri>http://dm5.google.com/feeds/users/Rubix89</uri>
- </author>
- <media:group>
- <media:title type='plain'>AMV Comedians 2 (Dane Cook)</media:title>
- <media:description type='plain'>Anime: Naruto
- Comedian: Dane Cook
- I know I already did Dane Cook, but I couldnt pass up this joke.
- http://www.animemusicvideos.org/members/members_videoinfo.php?v=130820
- </media:description>
- <media:keywords>Naruto, Dane, Cook</media:keywords>
- <yt:duration seconds='126'></yt:duration>
- <media:category label='Comedy'
- scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
- Comedy
- </media:category>
- <media:player
- url='http://www.youtube.com/watch?v=Ox0c_1l9al4'></media:player>
- <media:thumbnail url='http://img.youtube.com/vi/Ox0c_1l9al4/2.jpg'
- height='97' width='130'
- time='00:01:03'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/Ox0c_1l9al4/1.jpg'
- height='97' width='130'
- time='00:00:31.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/Ox0c_1l9al4/3.jpg'
- height='97' width='130'
- time='00:01:34.500'></media:thumbnail>
- <media:thumbnail url='http://img.youtube.com/vi/Ox0c_1l9al4/0.jpg'
- height='240' width='320'></media:thumbnail>
- </media:group>
- <gd:rating min='1' max='5' numRaters='6727' average='4.89'></gd:rating>
- <gd:feedLink rel='comments'
- href='http://dm5.google.com/feeds/videos/Ox0c_1l9al4/comments'></gd:feedLink>
- </entry>
-</feed>
diff --git a/tests/AndroidTests/res/values-12key/configVarying.xml b/tests/AndroidTests/res/values-12key/configVarying.xml
deleted file mode 100644
index 14ce1a7..0000000
--- a/tests/AndroidTests/res/values-12key/configVarying.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <item type="configVarying" name="simple">simple 12key</item>
- <bag type="configVarying" name="bag">
- <item name="testString">bag 12key</item>
- </bag>
- <item type="configVarying" name="simple_12key">only simple 12key</item>
- <bag type="configVarying" name="bag_12key">
- <item name="testString">only bag 12key</item>
- </bag>
-</resources>
diff --git a/tests/AndroidTests/res/values-320x200/configVarying.xml b/tests/AndroidTests/res/values-320x200/configVarying.xml
deleted file mode 100644
index 035e55e..0000000
--- a/tests/AndroidTests/res/values-320x200/configVarying.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <item type="configVarying" name="simple">simple 320x200</item>
- <bag type="configVarying" name="bag">
- <item name="testString">bag 320x200</item>
- </bag>
- <item type="configVarying" name="simple_320x200">only simple 320x200</item>
- <bag type="configVarying" name="bag_320x200">
- <item name="testString">only bag 320x200</item>
- </bag>
-</resources>
diff --git a/tests/AndroidTests/res/values-480x320/configVarying.xml b/tests/AndroidTests/res/values-480x320/configVarying.xml
deleted file mode 100644
index 8b28d89..0000000
--- a/tests/AndroidTests/res/values-480x320/configVarying.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <item type="configVarying" name="simple">simple 480x320</item>
- <bag type="configVarying" name="bag">
- <item name="testString">bag 480x320</item>
- </bag>
- <item type="configVarying" name="simple_480x320">only simple 480x320</item>
- <bag type="configVarying" name="bag_480x320">
- <item name="testString">only bag 480x320</item>
- </bag>
-</resources>
diff --git a/tests/AndroidTests/res/values-cs/strings.xml b/tests/AndroidTests/res/values-cs/strings.xml
deleted file mode 100644
index bd402c7..0000000
--- a/tests/AndroidTests/res/values-cs/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-
- <plurals name="plurals_test">
- <item quantity="one">A Czech dog</item>
- <item quantity="few">Few Czech dogs</item>
- <item quantity="other">Some Czech dogs</item>
- </plurals>
-</resources>
-
diff --git a/tests/AndroidTests/res/values-dpad/configVarying.xml b/tests/AndroidTests/res/values-dpad/configVarying.xml
deleted file mode 100644
index c8d5767..0000000
--- a/tests/AndroidTests/res/values-dpad/configVarying.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <item type="configVarying" name="simple">simple dpad</item>
- <bag type="configVarying" name="bag">
- <item name="testString">bag dpad</item>
- </bag>
-</resources>
diff --git a/tests/AndroidTests/res/values-finger/configVarying.xml b/tests/AndroidTests/res/values-finger/configVarying.xml
deleted file mode 100644
index efe4758..0000000
--- a/tests/AndroidTests/res/values-finger/configVarying.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <item type="configVarying" name="simple">simple finger</item>
- <bag type="configVarying" name="bag">
- <item name="testString">bag finger</item>
- </bag>
- <item type="configVarying" name="simple_finger">only simple finger</item>
- <bag type="configVarying" name="bag_finger">
- <item name="testString">only bag finger</item>
- </bag>
-</resources>
diff --git a/tests/AndroidTests/res/values-keysexposed/configVarying.xml b/tests/AndroidTests/res/values-keysexposed/configVarying.xml
deleted file mode 100644
index 2380e7e..0000000
--- a/tests/AndroidTests/res/values-keysexposed/configVarying.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <item type="configVarying" name="simple">simple keysexposed</item>
- <bag type="configVarying" name="bag">
- <item name="testString">bag keysexposed</item>
- </bag>
-</resources>
diff --git a/tests/AndroidTests/res/values-keyshidden/configVarying.xml b/tests/AndroidTests/res/values-keyshidden/configVarying.xml
deleted file mode 100644
index fdffc4d..0000000
--- a/tests/AndroidTests/res/values-keyshidden/configVarying.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <item type="configVarying" name="simple">simple keyshidden</item>
- <bag type="configVarying" name="bag">
- <item name="testString">bag keyshidden</item>
- </bag>
-</resources>
diff --git a/tests/AndroidTests/res/values-mcc111/configVarying.xml b/tests/AndroidTests/res/values-mcc111/configVarying.xml
deleted file mode 100644
index 16b13a5..0000000
--- a/tests/AndroidTests/res/values-mcc111/configVarying.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <item type="configVarying" name="simple">simple mcc111</item>
- <bag type="configVarying" name="bag">
- <item name="testString">bag mcc111</item>
- </bag>
- <item type="configVarying" name="simple_mcc111">only simple mcc111</item>
- <bag type="configVarying" name="bag_mcc111">
- <item name="testString">only bag mcc111</item>
- </bag>
-</resources>
diff --git a/tests/AndroidTests/res/values-mnc222/configVarying.xml b/tests/AndroidTests/res/values-mnc222/configVarying.xml
deleted file mode 100644
index 7f68729..0000000
--- a/tests/AndroidTests/res/values-mnc222/configVarying.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <item type="configVarying" name="simple">simple mnc222</item>
- <bag type="configVarying" name="bag">
- <item name="testString">bag mnc222</item>
- </bag>
- <item type="configVarying" name="simple_mnc222">only simple mnc222</item>
- <bag type="configVarying" name="bag_mnc222">
- <item name="testString">only bag mnc222</item>
- </bag>
-</resources>
diff --git a/tests/AndroidTests/res/values-nokeys/configVarying.xml b/tests/AndroidTests/res/values-nokeys/configVarying.xml
deleted file mode 100644
index 71f7e0b..0000000
--- a/tests/AndroidTests/res/values-nokeys/configVarying.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <item type="configVarying" name="simple">simple nokeys</item>
- <bag type="configVarying" name="bag">
- <item name="testString">bag nokeys</item>
- </bag>
-</resources>
diff --git a/tests/AndroidTests/res/values-nonav/configVarying.xml b/tests/AndroidTests/res/values-nonav/configVarying.xml
deleted file mode 100644
index 1254920..0000000
--- a/tests/AndroidTests/res/values-nonav/configVarying.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <item type="configVarying" name="simple">simple nonav</item>
- <bag type="configVarying" name="bag">
- <item name="testString">bag nonav</item>
- </bag>
-</resources>
diff --git a/tests/AndroidTests/res/values-notouch/configVarying.xml b/tests/AndroidTests/res/values-notouch/configVarying.xml
deleted file mode 100644
index 8a71de4..0000000
--- a/tests/AndroidTests/res/values-notouch/configVarying.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <item type="configVarying" name="simple">simple notouch</item>
- <bag type="configVarying" name="bag">
- <item name="testString">bag notouch</item>
- </bag>
- <item type="configVarying" name="simple_notouch">only simple notouch</item>
- <bag type="configVarying" name="bag_notouch">
- <item name="testString">only bag notouch</item>
- </bag>
-</resources>
diff --git a/tests/AndroidTests/res/values-qwerty/configVarying.xml b/tests/AndroidTests/res/values-qwerty/configVarying.xml
deleted file mode 100644
index 939f682..0000000
--- a/tests/AndroidTests/res/values-qwerty/configVarying.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <item type="configVarying" name="simple">simple qwerty</item>
- <bag type="configVarying" name="bag">
- <item name="testString">bag qwerty</item>
- </bag>
-</resources>
diff --git a/tests/AndroidTests/res/values-stylus/configVarying.xml b/tests/AndroidTests/res/values-stylus/configVarying.xml
deleted file mode 100644
index 87df119..0000000
--- a/tests/AndroidTests/res/values-stylus/configVarying.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <item type="configVarying" name="simple">simple stylus</item>
- <bag type="configVarying" name="bag">
- <item name="testString">bag stylus</item>
- </bag>
- <item type="configVarying" name="simple_stylus">only simple stylus</item>
- <bag type="configVarying" name="bag_stylus">
- <item name="testString">only bag stylus</item>
- </bag>
-</resources>
diff --git a/tests/AndroidTests/res/values-trackball/configVarying.xml b/tests/AndroidTests/res/values-trackball/configVarying.xml
deleted file mode 100644
index 0dec300..0000000
--- a/tests/AndroidTests/res/values-trackball/configVarying.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <item type="configVarying" name="simple">simple trackball</item>
- <bag type="configVarying" name="bag">
- <item name="testString">bag trackball</item>
- </bag>
-</resources>
diff --git a/tests/AndroidTests/res/values-wheel/configVarying.xml b/tests/AndroidTests/res/values-wheel/configVarying.xml
deleted file mode 100644
index 6164855..0000000
--- a/tests/AndroidTests/res/values-wheel/configVarying.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <item type="configVarying" name="simple">simple wheel</item>
- <bag type="configVarying" name="bag">
- <item name="testString">bag wheel</item>
- </bag>
-</resources>
diff --git a/tests/AndroidTests/res/values-xx-rYY/configVarying.xml b/tests/AndroidTests/res/values-xx-rYY/configVarying.xml
deleted file mode 100644
index 4e52db9..0000000
--- a/tests/AndroidTests/res/values-xx-rYY/configVarying.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <item type="configVarying" name="simple">simple xx-rYY</item>
- <bag type="configVarying" name="bag">
- <item name="testString">bag xx-rYY</item>
- </bag>
- <item type="configVarying" name="simple_xx_rYY">only simple xx_rYY</item>
- <bag type="configVarying" name="bag_xx_rYY">
- <item name="testString">only bag xx_rYY</item>
- </bag>
-</resources>
diff --git a/tests/AndroidTests/res/values-xx/configVarying.xml b/tests/AndroidTests/res/values-xx/configVarying.xml
deleted file mode 100644
index e50649d..0000000
--- a/tests/AndroidTests/res/values-xx/configVarying.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <item type="configVarying" name="simple">simple xx</item>
- <bag type="configVarying" name="bag">
- <item name="testString">bag xx</item>
- </bag>
- <item type="configVarying" name="simple_xx">only simple xx</item>
- <bag type="configVarying" name="bag_xx">
- <item name="testString">only bag xx</item>
- </bag>
-</resources>
diff --git a/tests/AndroidTests/res/values/arrays.xml b/tests/AndroidTests/res/values/arrays.xml
deleted file mode 100644
index 20ab407..0000000
--- a/tests/AndroidTests/res/values/arrays.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <item type="integer" name="reference" format="integer">101</item>
-
- <!--
- <array name="generic">
- <item>zero</item>
- <item>1</item>
- <item>@string/reference</item>
- </array>
- <array name="genericStrings" format="string">
- <item>zero</item>
- <item>1</item>
- <item>@string/reference</item>
- </array>
- -->
- <string-array name="strings">
- <item>zero</item>
- <item>1</item>
- <item>@string/reference</item>
- </string-array>
- <integer-array name="integers">
- <item>0</item>
- <item>1</item>
- <item>@integer/reference</item>
- </integer-array>
-</resources>
diff --git a/tests/AndroidTests/res/values/attrs.xml b/tests/AndroidTests/res/values/attrs.xml
deleted file mode 100644
index d3a31ca..0000000
--- a/tests/AndroidTests/res/values/attrs.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <attr name="testEnum">
- <enum name="val1" value="1" />
- <enum name="val2" value="2" />
- <enum name="val10" value="10" />
- </attr>
-
- <attr name="testFlags">
- <flag name="bit1" value="0x1" />
- <flag name="bit2" value="0x2" />
- <flag name="bit31" value="0x40000000" />
- </attr>
-
- <attr name="testString" format="string" />
-
- <declare-styleable name="EnumStyle">
- <attr name="testEnum" />
- </declare-styleable>
-
- <declare-styleable name="FlagStyle">
- <attr name="testFlags" />
- </declare-styleable>
-
- <declare-styleable name="TestConfig">
- <attr name="testString" />
- </declare-styleable>
-</resources>
-
diff --git a/tests/AndroidTests/res/values/bools.xml b/tests/AndroidTests/res/values/bools.xml
deleted file mode 100644
index ffa8955..0000000
--- a/tests/AndroidTests/res/values/bools.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <bool name="trueRes">true</bool>
- <bool name="falseRes">false</bool>
-</resources>
diff --git a/tests/AndroidTests/res/values/configVarying.xml b/tests/AndroidTests/res/values/configVarying.xml
deleted file mode 100644
index c4a20ad..0000000
--- a/tests/AndroidTests/res/values/configVarying.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <item type="configVarying" name="simple">simple default</item>
- <bag type="configVarying" name="bag">
- <item name="testString">bag default</item>
- </bag>
-
- <item type="configVarying" name="simple_default">only simple default</item>
- <bag type="configVarying" name="bag_default">
- <item name="testString">only bag default</item>
- </bag>
-</resources>
diff --git a/tests/AndroidTests/res/values/dimens.xml b/tests/AndroidTests/res/values/dimens.xml
deleted file mode 100644
index 72d1010..0000000
--- a/tests/AndroidTests/res/values/dimens.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <item name="frac100perc" type="dimen" format="fraction">100%</item>
- <item name="frac1perc" type="dimen" format="fraction">1%</item>
- <item name="fracp1perc" type="dimen" format="fraction">.1%</item>
- <item name="fracp01perc" type="dimen" format="fraction">.01%</item>
- <item name="frac0perc" type="dimen" format="fraction">0%</item>
- <item name="frac1p1perc" type="dimen" format="fraction">1.1%</item>
- <item name="frac100p1perc" type="dimen" format="fraction">100.1%</item>
- <item name="frac25510perc" type="dimen" format="fraction">25510%</item>
- <item name="frac25610perc" type="dimen" format="fraction">25610%</item>
- <item name="frac6553510perc" type="dimen" format="fraction">6553510%</item>
- <item name="frac6553610perc" type="dimen" format="fraction">6553610%</item>
-
- <item name="frac100pperc" type="dimen" format="fraction">100%p</item>
- <item name="frac1pperc" type="dimen" format="fraction">1%p</item>
- <item name="fracp1pperc" type="dimen" format="fraction">.1%p</item>
- <item name="fracp01pperc" type="dimen" format="fraction">.01%p</item>
- <item name="frac0pperc" type="dimen" format="fraction">0%p</item>
- <item name="frac1p1pperc" type="dimen" format="fraction">1.1%p</item>
- <item name="frac100p1pperc" type="dimen" format="fraction">100.1%p</item>
- <item name="frac25510pperc" type="dimen" format="fraction">25510%p</item>
- <item name="frac25610pperc" type="dimen" format="fraction">25610%p</item>
- <item name="frac6553510pperc" type="dimen" format="fraction">6553510%p</item>
- <item name="frac6553610pperc" type="dimen" format="fraction">6553610%p</item>
-</resources>
-
diff --git a/tests/AndroidTests/res/values/strings.xml b/tests/AndroidTests/res/values/strings.xml
deleted file mode 100644
index 21c72cf..0000000
--- a/tests/AndroidTests/res/values/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="permlab_testGranted">Test Granted</string>
- <string name="permdesc_testGranted">Used for running unit tests, for
- testing operations where we have the permission.</string>
- <string name="permlab_testDenied">Test Denied</string>
- <string name="permdesc_testDenied">Used for running unit tests, for
- testing operations where we do not have the permission.</string>
-
- <string name="layout_five_text_text">S</string>
-
- <string name="layout_four_text_text">S</string>
-
- <string name="layout_six_text_text">S</string>
-
- <string name="coerceIntegerToString">100</string>
- <string name="coerceBooleanToString">true</string>
- <string name="coerceColorToString">#fff</string>
- <string name="coerceFloatToString">100.0</string>
- <string name="coerceDimensionToString">100px</string>
- <string name="coerceFractionToString">100<xliff:g id="percent">%</xliff:g></string>
-
- <string name="formattedStringNone">Format[]</string>
- <string name="formattedStringOne">Format[<xliff:g id="format">%d</xliff:g>]</string>
- <string name="formattedStringTwo">Format[<xliff:g id="format">%3$d,%2$s</xliff:g>]</string>
-
- <string name="reference">here</string>
-
- <string name="metadata_text">text</string>
-
- <string name="menu_test">test</string>
-
- <plurals name="plurals_test">
- <item quantity="one">A dog</item>
- <item quantity="other">Some dogs</item>
- </plurals>
-
-<!-- <string name="layout_six_text_text">F</string> -->
-</resources>
diff --git a/tests/AndroidTests/res/values/styles.xml b/tests/AndroidTests/res/values/styles.xml
deleted file mode 100644
index 6c60e21..0000000
--- a/tests/AndroidTests/res/values/styles.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <style name="TestEnum1">
- <item name="testEnum">val1</item>
- </style>
- <style name="TestEnum2">
- <item name="testEnum">val2</item>
- </style>
- <style name="TestEnum10">
- <item name="testEnum">val10</item>
- </style>
-
- <style name="TestFlag1">
- <item name="testFlags">bit1</item>
- </style>
- <style name="TestFlag2">
- <item name="testFlags">bit2</item>
- </style>
- <style name="TestFlag31">
- <item name="testFlags">bit31</item>
- </style>
- <style name="TestFlag1And2">
- <item name="testFlags">bit1|bit2</item>
- </style>
- <style name="TestFlag1And2And31">
- <item name="testFlags">bit1|bit2|bit31</item>
- </style>
-
- <style name="TestEnum1.EmptyInherit">
- </style>
-</resources>
diff --git a/tests/AndroidTests/res/xml/calendar.xml b/tests/AndroidTests/res/xml/calendar.xml
deleted file mode 100644
index 1adcd74..0000000
--- a/tests/AndroidTests/res/xml/calendar.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:gd='http://schemas.google.com/g/2005' xmlns:gCal='http://schemas.google.com/gCal/2005'><id>http://www.google.com/calendar/feeds/default/private/full</id><updated>2007-02-05T22:04:50.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>w g</title><subtitle type='text'>w g</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full'></link><link rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full?max-results=25'></link><author><name>w g</name><email>wg@voiceme.net</email></author><generator version='1.0' uri='http://www.google.com/calendar'>Google Calendar</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><gCal:timezone value='America/Los_Angeles'></gCal:timezone><entry><id>http://www.google.com/calendar/feeds/default/private/full/7iqc1ro0ihc69vhsiq3uabooig</id><published>2007-02-05T22:04:50.000Z</published><updated>2007-02-05T22:04:50.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>skate</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=N2lxYzFybzBpaGM2OXZoc2lxM3VhYm9vaWcgd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/7iqc1ro0ihc69vhsiq3uabooig'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/7iqc1ro0ihc69vhsiq3uabooig/63306396290'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/7iqc1ro0ihc69vhsiq3uabooig/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='false'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where></gd:where><gd:when startTime='2007-02-07T13:30:00.000-08:00' endTime='2007-02-07T16:00:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/kp4gil76n2vcrkt9kaotj3s12c</id><published>2007-02-05T22:04:42.000Z</published><updated>2007-02-05T22:04:42.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>skate</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=a3A0Z2lsNzZuMnZjcmt0OWthb3RqM3MxMmMgd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/kp4gil76n2vcrkt9kaotj3s12c'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/kp4gil76n2vcrkt9kaotj3s12c/63306396282'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/kp4gil76n2vcrkt9kaotj3s12c/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='false'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where></gd:where><gd:when startTime='2007-02-09T15:30:00.000-08:00' endTime='2007-02-09T18:00:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/gkhb48fj68lcp15fd1k03tjbj0</id><published>2007-02-05T22:04:35.000Z</published><updated>2007-02-05T22:04:35.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>test event 6</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=Z2toYjQ4Zmo2OGxjcDE1ZmQxazAzdGpiajAgd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/gkhb48fj68lcp15fd1k03tjbj0'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/gkhb48fj68lcp15fd1k03tjbj0/63306396275'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/gkhb48fj68lcp15fd1k03tjbj0/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='false'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where></gd:where><gd:when startTime='2007-02-10T14:00:00.000-08:00' endTime='2007-02-10T17:00:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/32p5g68cpean3p2ol7kanj38sg</id><published>2007-02-05T22:04:29.000Z</published><updated>2007-02-05T22:04:29.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>test event 5</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=MzJwNWc2OGNwZWFuM3Ayb2w3a2FuajM4c2cgd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/32p5g68cpean3p2ol7kanj38sg'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/32p5g68cpean3p2ol7kanj38sg/63306396269'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/32p5g68cpean3p2ol7kanj38sg/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='false'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where></gd:where><gd:when startTime='2007-02-09T09:00:00.000-08:00' endTime='2007-02-09T10:30:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/tfqpth26conshdmav0apje1tf4</id><published>2007-02-05T22:04:19.000Z</published><updated>2007-02-05T22:04:19.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>skate</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=dGZxcHRoMjZjb25zaGRtYXYwYXBqZTF0ZjQgd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/tfqpth26conshdmav0apje1tf4'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/tfqpth26conshdmav0apje1tf4/63306396259'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/tfqpth26conshdmav0apje1tf4/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='false'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where></gd:where><gd:when startTime='2007-02-08T15:00:00.000-08:00' endTime='2007-02-08T17:00:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/onbo9mhbr5m6mo356nog7uel4s</id><published>2007-02-05T22:04:07.000Z</published><updated>2007-02-05T22:04:07.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>Sharks at Anaheim</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=b25ibzltaGJyNW02bW8zNTZub2c3dWVsNHMgd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/onbo9mhbr5m6mo356nog7uel4s'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/onbo9mhbr5m6mo356nog7uel4s/63306396247'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/onbo9mhbr5m6mo356nog7uel4s/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='true'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where valueString=''></gd:where><gd:when startTime='2007-02-07T19:00:00.000-08:00' endTime='2007-02-07T22:00:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/tjqrd9fve576hieh3sa67nql5k</id><published>2007-02-05T22:04:02.000Z</published><updated>2007-02-05T22:04:02.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>Sharks vs. ANAHEIM</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=dGpxcmQ5ZnZlNTc2aGllaDNzYTY3bnFsNWsgd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/tjqrd9fve576hieh3sa67nql5k'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/tjqrd9fve576hieh3sa67nql5k/63306396242'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/tjqrd9fve576hieh3sa67nql5k/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='true'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where valueString=''></gd:where><gd:when startTime='2007-02-06T19:30:00.000-08:00' endTime='2007-02-06T22:30:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/or6dtpn065f9mntond4jh2docc</id><published>2007-02-05T22:03:52.000Z</published><updated>2007-02-05T22:03:52.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>skate</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=b3I2ZHRwbjA2NWY5bW50b25kNGpoMmRvY2Mgd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/or6dtpn065f9mntond4jh2docc'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/or6dtpn065f9mntond4jh2docc/63306396232'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/or6dtpn065f9mntond4jh2docc/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='false'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where></gd:where><gd:when startTime='2007-02-06T14:00:00.000-08:00' endTime='2007-02-06T15:00:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/k70v8o4jt1afi17hg2spavq1c0</id><published>2007-02-05T22:03:36.000Z</published><updated>2007-02-05T22:03:36.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>lunch</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=azcwdjhvNGp0MWFmaTE3aGcyc3BhdnExYzBfMjAwNzAyMDZUMjAwMDAwWiB3Z0B2b2ljZW1lLm5ldA' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/k70v8o4jt1afi17hg2spavq1c0'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/k70v8o4jt1afi17hg2spavq1c0/63306396216'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='true'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:recurrence>DTSTART;TZID=America/Los_Angeles:20070206T120000
-DURATION:PT3600S
-RRULE:FREQ=DAILY;WKST=SU
-BEGIN:VTIMEZONE
-TZID:America/Los_Angeles
-X-LIC-LOCATION:America/Los_Angeles
-BEGIN:STANDARD
-TZOFFSETFROM:-0700
-TZOFFSETTO:-0800
-TZNAME:PST
-DTSTART:19701025T020000
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-END:STANDARD
-BEGIN:DAYLIGHT
-TZOFFSETFROM:-0800
-TZOFFSETTO:-0700
-TZNAME:PDT
-DTSTART:19700405T020000
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
-END:DAYLIGHT
-END:VTIMEZONE
-</gd:recurrence><gd:where valueString=''></gd:where><gd:reminder minutes='10'></gd:reminder></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/6ee7b8nohdt03tv0gknm4v7124</id><published>2007-02-05T22:03:19.000Z</published><updated>2007-02-05T22:03:19.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>test event 4</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=NmVlN2I4bm9oZHQwM3R2MGdrbm00djcxMjQgd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/6ee7b8nohdt03tv0gknm4v7124'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/6ee7b8nohdt03tv0gknm4v7124/63306396199'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/6ee7b8nohdt03tv0gknm4v7124/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='false'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where></gd:where><gd:when startTime='2007-02-06T09:00:00.000-08:00' endTime='2007-02-06T11:00:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/of1vh1r2q5aqdplo65i8bqbn3o</id><published>2007-02-05T22:03:11.000Z</published><updated>2007-02-05T22:03:11.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>test event 3</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=b2YxdmgxcjJxNWFxZHBsbzY1aThicWJuM28gd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/of1vh1r2q5aqdplo65i8bqbn3o'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/of1vh1r2q5aqdplo65i8bqbn3o/63306396191'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/of1vh1r2q5aqdplo65i8bqbn3o/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='false'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where></gd:where><gd:when startTime='2007-02-05T18:00:00.000-08:00' endTime='2007-02-05T19:00:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/s7ahgfomlgii9qbkgpfbinr9u8</id><published>2007-02-05T22:02:40.000Z</published><updated>2007-02-05T22:03:04.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>test event 2</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=czdhaGdmb21sZ2lpOXFia2dwZmJpbnI5dTggd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/s7ahgfomlgii9qbkgpfbinr9u8'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/s7ahgfomlgii9qbkgpfbinr9u8/63306396184'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/s7ahgfomlgii9qbkgpfbinr9u8/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='false'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where valueString=''></gd:where><gd:when startTime='2007-02-05T16:30:00.000-08:00' endTime='2007-02-05T17:30:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry><entry><id>http://www.google.com/calendar/feeds/default/private/full/rl8focglfe6jndql4u8lg73q5k</id><published>2007-02-05T22:02:28.000Z</published><updated>2007-02-05T22:02:53.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category><title type='text'>test event 1</title><content type='text'></content><link rel='alternate' type='text/html' href='http://www.google.com/calendar/hosted/voiceme.net/event?eid=cmw4Zm9jZ2xmZTZqbmRxbDR1OGxnNzNxNWsgd2dAdm9pY2VtZS5uZXQ' title='alternate'></link><link rel='self' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/rl8focglfe6jndql4u8lg73q5k'></link><link rel='edit' type='application/atom+xml' href='http://www.google.com/calendar/feeds/default/private/full/rl8focglfe6jndql4u8lg73q5k/63306396173'></link><author><name>w g</name><email>wg@voiceme.net</email></author><gd:comments><gd:feedLink href='http://www.google.com/calendar/feeds/default/private/full/rl8focglfe6jndql4u8lg73q5k/comments'></gd:feedLink></gd:comments><gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'></gd:eventStatus><gd:visibility value='http://schemas.google.com/g/2005#event.default'></gd:visibility><gCal:sendEventNotifications value='false'></gCal:sendEventNotifications><gd:transparency value='http://schemas.google.com/g/2005#event.opaque'></gd:transparency><gd:where></gd:where><gd:when startTime='2007-02-05T15:00:00.000-08:00' endTime='2007-02-05T16:00:00.000-08:00'><gd:reminder minutes='10'></gd:reminder></gd:when></entry></feed>
diff --git a/tests/AndroidTests/res/xml/metadata.xml b/tests/AndroidTests/res/xml/metadata.xml
deleted file mode 100644
index e352f27..0000000
--- a/tests/AndroidTests/res/xml/metadata.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<thedata xmlns:android="http://schemas.android.com/apk/res/android"
- rawText="some raw text"
- rawColor="#ffffff00"
- android:color="#f00"
- android:text="@string/metadata_text"
-
-/>
diff --git a/tests/AndroidTests/res/xml/metadata_app.xml b/tests/AndroidTests/res/xml/metadata_app.xml
deleted file mode 100644
index c37e6ba..0000000
--- a/tests/AndroidTests/res/xml/metadata_app.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<thedata xmlns:android="http://schemas.android.com/apk/res/android"
- rawText="some raw text"
- rawColor="#ffffff00"
- android:color="#f00"
- android:text="@string/metadata_text"
- appInfo="true"
-
-/>
diff --git a/tests/AndroidTests/res/xml/searchable.xml b/tests/AndroidTests/res/xml/searchable.xml
deleted file mode 100644
index a40d53d..0000000
--- a/tests/AndroidTests/res/xml/searchable.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<searchable xmlns:android="http://schemas.android.com/apk/res/android"
- android:label="SearchManagerTest"
- android:hint="SearchManagerTest Hint"
-/>
-
diff --git a/tests/AndroidTests/run_test.sh b/tests/AndroidTests/run_test.sh
deleted file mode 100755
index 0cdf63f..0000000
--- a/tests/AndroidTests/run_test.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-framework=/system/framework
-bpath=$framework/core.jar:$framework/ext.jar:$framework/framework.jar:$framework/android.test.runner.jar
-adb shell exec dalvikvm -Xbootclasspath:$bpath -cp system/app/AndroidTests.apk \
- com.android.internal.util.WithFramework junit.textui.TestRunner $*
diff --git a/tests/AndroidTests/src/com/android/unit_tests/AndroidPerformanceTests.java b/tests/AndroidTests/src/com/android/unit_tests/AndroidPerformanceTests.java
deleted file mode 100644
index b6a8594..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/AndroidPerformanceTests.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.test.TestListActivity;
-
-public class AndroidPerformanceTests extends TestListActivity {
- @Override
- public String getTestSuite() {
- return "com.android.unit_tests.AndroidPerformanceTests$Suite";
- }
-
- public static class Suite {
- public static String[] children() {
- return new String[] {
- DatabasePerformanceTests.class.getName(),
- GraphicsPerformanceTests.class.getName(),
- JavaPerformanceTests.class.getName(),
- LogTest.PerformanceTest.class.getName(),
- PerformanceTests.class.getName(),
- TextViewPerformanceTest.class.getName(),
- };
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/AndroidTests.java b/tests/AndroidTests/src/com/android/unit_tests/AndroidTests.java
deleted file mode 100644
index 4b86add..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/AndroidTests.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2005 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.test.FrameworkTests;
-import android.test.suitebuilder.TestSuiteBuilder;
-
-import junit.framework.TestSuite;
-
-public class AndroidTests extends TestSuite {
-
- public static TestSuite suite() {
- TestSuiteBuilder suiteBuilder = new TestSuiteBuilder(AndroidTests.class);
- TestSuite suite = suiteBuilder.includeAllPackagesUnderHere().build();
-
- return suite;
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/ApacheHttpTests.java b/tests/AndroidTests/src/com/android/unit_tests/ApacheHttpTests.java
deleted file mode 100644
index cf759e0..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/ApacheHttpTests.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.android.unit_tests;
-
-import junit.framework.TestSuite;
-
-public class ApacheHttpTests {
- public static TestSuite suite() {
- TestSuite suite = new TestSuite(ApacheHttpTests.class.getName());
-
- suite.addTestSuite(TestHttpService.class);
-
- return suite;
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/AppCacheTest.java b/tests/AndroidTests/src/com/android/unit_tests/AppCacheTest.java
deleted file mode 100755
index f9af436..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/AppCacheTest.java
+++ /dev/null
@@ -1,744 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-
-import android.app.PendingIntent;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.IPackageDataObserver;
-import android.content.pm.IPackageStatsObserver;
-import android.content.pm.PackageStats;
-import android.content.pm.IPackageManager;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.test.suitebuilder.annotation.Suppress;
-import android.util.Log;
-import android.os.Handler;
-import android.os.RemoteException;
-import android.os.ServiceManager;
-import android.os.StatFs;
-
-public class AppCacheTest extends AndroidTestCase {
- private static final boolean localLOGV = false;
- public static final String TAG="AppCacheTest";
- public final long MAX_WAIT_TIME=60*1000;
- public final long WAIT_TIME_INCR=10*1000;
- private static final int THRESHOLD=5;
- private static final int ACTUAL_THRESHOLD=10;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- if(localLOGV) Log.i(TAG, "Cleaning up cache directory first");
- cleanUpCacheDirectory();
- }
-
- void cleanUpDirectory(File pDir, String dirName) {
- File testDir = new File(pDir, dirName);
- if(!testDir.exists()) {
- return;
- }
- String fList[] = testDir.list();
- for(int i = 0; i < fList.length; i++) {
- File file = new File(testDir, fList[i]);
- if(file.isDirectory()) {
- cleanUpDirectory(testDir, fList[i]);
- } else {
- file.delete();
- }
- }
- testDir.delete();
- }
-
- void cleanUpCacheDirectory() {
- File testDir = mContext.getCacheDir();
- if(!testDir.exists()) {
- return;
- }
-
- String fList[] = testDir.list();
- if(fList == null) {
- testDir.delete();
- return;
- }
- for(int i = 0; i < fList.length; i++) {
- File file = new File(testDir, fList[i]);
- if(file.isDirectory()) {
- cleanUpDirectory(testDir, fList[i]);
- } else {
- file.delete();
- }
- }
- }
-
- @SmallTest
- public void testDeleteAllCacheFiles() {
- String testName="testDeleteAllCacheFiles";
- cleanUpCacheDirectory();
- }
-
- void failStr(String errMsg) {
- Log.w(TAG, "errMsg="+errMsg);
- fail(errMsg);
- }
- void failStr(Exception e) {
- Log.w(TAG, "e.getMessage="+e.getMessage());
- Log.w(TAG, "e="+e);
- }
- long getFreeStorageBlks(StatFs st) {
- st.restat("/data");
- return st.getFreeBlocks();
- }
-
- long getFreeStorageSize(StatFs st) {
- st.restat("/data");
- return (st.getFreeBlocks()*st.getBlockSize());
- }
- @LargeTest
- public void testFreeApplicationCacheAllFiles() throws Exception {
- StatFs st = new StatFs("/data");
- long blks1 = getFreeStorageBlks(st);
- long availableMem = getFreeStorageSize(st);
- File cacheDir = mContext.getCacheDir();
- assertNotNull(cacheDir);
- createTestFiles1(cacheDir, "testtmpdir", 5);
- long blks2 = getFreeStorageBlks(st);
- if(localLOGV) Log.i(TAG, "blk1="+blks1+", blks2="+blks2);
- //this should free up the test files that were created earlier
- invokePMFreeApplicationCache(availableMem);
- long blks3 = getFreeStorageBlks(st);
- if(localLOGV) Log.i(TAG, "blks3="+blks3);
- verifyTestFiles1(cacheDir, "testtmpdir", 5);
- }
-
- @LargeTest
- public void testFreeApplicationCacheSomeFiles() throws Exception {
- StatFs st = new StatFs("/data");
- long blks1 = getFreeStorageBlks(st);
- File cacheDir = mContext.getCacheDir();
- assertNotNull(cacheDir);
- createTestFiles1(cacheDir, "testtmpdir", 5);
- long blks2 = getFreeStorageBlks(st);
- Log.i(TAG, "blk1="+blks1+", blks2="+blks2);
- long diff = (blks1-blks2-2);
- assertTrue(invokePMFreeApplicationCache(diff*st.getBlockSize()));
- long blks3 = getFreeStorageBlks(st);
- //blks3 should be greater than blks2 and less than blks1
- if(!((blks3 <= blks1) && (blks3 >= blks2))) {
- failStr("Expected "+(blks1-blks2)+" number of blocks to be freed but freed only "
- +(blks1-blks3));
- }
- }
-
- /**
- * This method opens an output file writes to it, opens the same file as an input
- * stream, reads the contents and verifies the data that was written earlier can be read
- */
- public void openOutFileInAppFilesDir(File pFile, String pFileOut) {
- FileOutputStream fos = null;
- try {
- fos = new FileOutputStream(pFile);
- } catch (FileNotFoundException e1) {
- failStr("Error when opening file "+e1);
- return;
- }
- try {
- fos.write(pFileOut.getBytes());
- fos.close();
- } catch (FileNotFoundException e) {
- failStr(e.getMessage());
- } catch (IOException e) {
- failStr(e.getMessage());
- }
- int count = pFileOut.getBytes().length;
- byte[] buffer = new byte[count];
- try {
- FileInputStream fis = new FileInputStream(pFile);
- fis.read(buffer, 0, count);
- fis.close();
- } catch (FileNotFoundException e) {
- failStr("Failed when verifing output opening file "+e.getMessage());
- } catch (IOException e) {
- failStr("Failed when verifying output, reading from written file "+e);
- }
- String str = new String(buffer);
- assertEquals(str, pFileOut);
- }
-
- /*
- * This test case verifies that output written to a file
- * using Context.openFileOutput has executed successfully.
- * The operation is verified by invoking Context.openFileInput
- */
- @MediumTest
- public void testAppFilesCreateFile() {
- String fileName = "testFile1.txt";
- String fileOut = "abcdefghijklmnopqrstuvwxyz";
- Context con = super.getContext();
- try {
- FileOutputStream fos = con.openFileOutput(fileName, Context.MODE_PRIVATE);
- fos.close();
- } catch (FileNotFoundException e) {
- failStr(e);
- } catch (IOException e) {
- failStr(e);
- }
- }
-
- @SmallTest
- public void testAppCacheCreateFile() {
- String fileName = "testFile1.txt";
- String fileOut = "abcdefghijklmnopqrstuvwxyz";
- Context con = super.getContext();
- File file = new File(con.getCacheDir(), fileName);
- openOutFileInAppFilesDir(file, fileOut);
- cleanUpCacheDirectory();
- }
-
- @MediumTest
- public void testAppCreateCacheFiles() {
- File cacheDir = mContext.getCacheDir();
- String testDirName = "testtmp";
- File testTmpDir = new File(cacheDir, testDirName);
- testTmpDir.mkdir();
- int numDirs = 3;
- File fileArr[] = new File[numDirs];
- for(int i = 0; i < numDirs; i++) {
- fileArr[i] = new File(testTmpDir, "dir"+(i+1));
- fileArr[i].mkdir();
- }
- byte buffer[] = getBuffer();
- Log.i(TAG, "Size of bufer="+buffer.length);
- for(int i = 0; i < numDirs; i++) {
- for(int j = 1; j <= (i); j++) {
- File file1 = new File(fileArr[i], "testFile"+j+".txt");
- FileOutputStream fos = null;
- try {
- fos = new FileOutputStream(file1);
- for(int k = 1; k < 10; k++) {
- fos.write(buffer);
- }
- Log.i(TAG, "wrote 10K bytes to "+file1);
- fos.close();
- } catch (FileNotFoundException e) {
- Log.i(TAG, "Excetion ="+e);
- fail("Error when creating outputstream "+e);
- } catch(IOException e) {
- Log.i(TAG, "Excetion ="+e);
- fail("Error when writing output "+e);
- }
- }
- }
- }
-
- byte[] getBuffer() {
- String sbuffer = "a";
- for(int i = 0; i < 10; i++) {
- sbuffer += sbuffer;
- }
- return sbuffer.getBytes();
- }
-
- long getFileNumBlocks(long fileSize, int blkSize) {
- long ret = fileSize/blkSize;
- if(ret*blkSize < fileSize) {
- ret++;
- }
- return ret;
- }
-
- //@LargeTest
- public void testAppCacheClear() {
- String dataDir="/data/data";
- StatFs st = new StatFs(dataDir);
- int blkSize = st.getBlockSize();
- int totBlks = st.getBlockCount();
- long availableBlks = st.getFreeBlocks();
- long thresholdBlks = (totBlks*THRESHOLD)/100;
- String testDirName = "testdir";
- //create directory in cache
- File testDir = new File(mContext.getCacheDir(), testDirName);
- testDir.mkdirs();
- byte[] buffer = getBuffer();
- int i = 1;
- if(localLOGV) Log.i(TAG, "availableBlks="+availableBlks+", thresholdBlks="+thresholdBlks);
- long createdFileBlks = 0;
- int imax = 300;
- while((availableBlks > thresholdBlks) &&(i < imax)) {
- File testFile = new File(testDir, "testFile"+i+".txt");
- if(localLOGV) Log.i(TAG, "Creating "+i+"th test file "+testFile);
- int jmax = i;
- i++;
- FileOutputStream fos;
- try {
- fos = new FileOutputStream(testFile);
- } catch (FileNotFoundException e) {
- Log.i(TAG, "Failed creating test file:"+testFile);
- continue;
- }
- boolean err = false;
- for(int j = 1; j <= jmax;j++) {
- try {
- fos.write(buffer);
- } catch (IOException e) {
- Log.i(TAG, "Failed to write to file:"+testFile);
- err = true;
- }
- }
- try {
- fos.close();
- } catch (IOException e) {
- Log.i(TAG, "Failed closing file:"+testFile);
- }
- if(err) {
- continue;
- }
- createdFileBlks += getFileNumBlocks(testFile.length(), blkSize);
- st.restat(dataDir);
- availableBlks = st.getFreeBlocks();
- }
- st.restat(dataDir);
- long availableBytes = st.getFreeBlocks()*blkSize;
- long shouldFree = (ACTUAL_THRESHOLD-THRESHOLD)*totBlks;
- //would have run out of memory
- //wait for some time and confirm cache is deleted
- try {
- Log.i(TAG, "Sleeping for 2 minutes...");
- Thread.sleep(2*60*1000);
- } catch (InterruptedException e) {
- fail("Exception when sleeping "+e);
- }
- boolean removedFlag = false;
- long existingFileBlks = 0;
- for(int k = 1; k <i; k++) {
- File testFile = new File(testDir, "testFile"+k+".txt");
- if(!testFile.exists()) {
- removedFlag = true;
- if(localLOGV) Log.i(TAG, testFile+" removed");
- } else {
- existingFileBlks += getFileNumBlocks(testFile.length(), blkSize);
- }
- }
- if(localLOGV) Log.i(TAG, "createdFileBlks="+createdFileBlks+
- ", existingFileBlks="+existingFileBlks);
- long fileSize = createdFileBlks-existingFileBlks;
- //verify fileSize number of bytes have been cleared from cache
- if(localLOGV) Log.i(TAG, "deletedFileBlks="+fileSize+" shouldFreeBlks="+shouldFree);
- if((fileSize > (shouldFree-blkSize) && (fileSize < (shouldFree+blkSize)))) {
- Log.i(TAG, "passed");
- }
- assertTrue(removedFlag);
- }
-
- //createTestFiles(new File(super.getContext().getCacheDir(), "testtmp", "dir", 3)
- void createTestFiles1(File cacheDir, String testFilePrefix, int numTestFiles) {
- byte buffer[] = getBuffer();
- for(int i = 0; i < numTestFiles; i++) {
- File file1 = new File(cacheDir, testFilePrefix+i+".txt");
- FileOutputStream fos = null;
- try {
- fos = new FileOutputStream(file1);
- for(int k = 1; k < 10; k++) {
- fos.write(buffer);
- }
- fos.close();
- } catch (FileNotFoundException e) {
- Log.i(TAG, "Exception ="+e);
- fail("Error when creating outputstream "+e);
- } catch(IOException e) {
- Log.i(TAG, "Exception ="+e);
- fail("Error when writing output "+e);
- }
- try {
- //introduce sleep for 1 s to avoid common time stamps for files being created
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- fail("Exception when sleeping "+e);
- }
- }
- }
-
- void verifyTestFiles1(File cacheDir, String testFilePrefix, int numTestFiles) {
- for(int i = 0; i < numTestFiles; i++) {
- File file1 = new File(cacheDir, testFilePrefix+i+".txt");
- if(file1.exists()) {
- fail("file:"+file1+" should not exist");
- }
- }
- }
-
- void createTestFiles2(File cacheDir, String rootTestDirName, String subDirPrefix, int numDirs, String testFilePrefix) {
- Context con = super.getContext();
- File testTmpDir = new File(cacheDir, rootTestDirName);
- testTmpDir.mkdir();
- File fileArr[] = new File[numDirs];
- for(int i = 0; i < numDirs; i++) {
- fileArr[i] = new File(testTmpDir, subDirPrefix+(i+1));
- fileArr[i].mkdir();
- }
- byte buffer[] = getBuffer();
- for(int i = 0; i < numDirs; i++) {
- for(int j = 1; j <= (i); j++) {
- File file1 = new File(fileArr[i], testFilePrefix+j+".txt");
- FileOutputStream fos = null;
- try {
- fos = new FileOutputStream(file1);
- for(int k = 1; k < 10; k++) {
- fos.write(buffer);
- }
- fos.close();
- } catch (FileNotFoundException e) {
- Log.i(TAG, "Exception ="+e);
- fail("Error when creating outputstream "+e);
- } catch(IOException e) {
- Log.i(TAG, "Exception ="+e);
- fail("Error when writing output "+e);
- }
- try {
- //introduce sleep for 10 ms to avoid common time stamps for files being created
- Thread.sleep(10);
- } catch (InterruptedException e) {
- fail("Exception when sleeping "+e);
- }
- }
- }
- }
-
- class PackageDataObserver extends IPackageDataObserver.Stub {
- public boolean retValue = false;
- private boolean doneFlag = false;
- public void onRemoveCompleted(String packageName, boolean succeeded)
- throws RemoteException {
- synchronized(this) {
- retValue = succeeded;
- doneFlag = true;
- notifyAll();
- }
- }
- public boolean isDone() {
- return doneFlag;
- }
- }
-
- IPackageManager getPm() {
- return IPackageManager.Stub.asInterface(ServiceManager.getService("package"));
- }
-
- boolean invokePMDeleteAppCacheFiles() throws Exception {
- try {
- String packageName = mContext.getPackageName();
- PackageDataObserver observer = new PackageDataObserver();
- //wait on observer
- synchronized(observer) {
- getPm().deleteApplicationCacheFiles(packageName, observer);
- long waitTime = 0;
- while(!observer.isDone() || (waitTime > MAX_WAIT_TIME)) {
- observer.wait(WAIT_TIME_INCR);
- waitTime += WAIT_TIME_INCR;
- }
- if(!observer.isDone()) {
- throw new Exception("timed out waiting for PackageDataObserver.onRemoveCompleted");
- }
- }
- return observer.retValue;
- } catch (RemoteException e) {
- Log.w(TAG, "Failed to get handle for PackageManger Exception: "+e);
- return false;
- } catch (InterruptedException e) {
- Log.w(TAG, "InterruptedException :"+e);
- return false;
- }
- }
-
- boolean invokePMFreeApplicationCache(long idealStorageSize) throws Exception {
- try {
- String packageName = mContext.getPackageName();
- PackageDataObserver observer = new PackageDataObserver();
- //wait on observer
- synchronized(observer) {
- getPm().freeStorageAndNotify(idealStorageSize, observer);
- long waitTime = 0;
- while(!observer.isDone() || (waitTime > MAX_WAIT_TIME)) {
- observer.wait(WAIT_TIME_INCR);
- waitTime += WAIT_TIME_INCR;
- }
- if(!observer.isDone()) {
- throw new Exception("timed out waiting for PackageDataObserver.onRemoveCompleted");
- }
- }
- return observer.retValue;
- } catch (RemoteException e) {
- Log.w(TAG, "Failed to get handle for PackageManger Exception: "+e);
- return false;
- } catch (InterruptedException e) {
- Log.w(TAG, "InterruptedException :"+e);
- return false;
- }
- }
-
- boolean invokePMFreeStorage(long idealStorageSize, FreeStorageReceiver r,
- PendingIntent pi) throws Exception {
- try {
- // Spin lock waiting for call back
- synchronized(r) {
- getPm().freeStorage(idealStorageSize, pi);
- long waitTime = 0;
- while(!r.isDone() && (waitTime < MAX_WAIT_TIME)) {
- r.wait(WAIT_TIME_INCR);
- waitTime += WAIT_TIME_INCR;
- }
- if(!r.isDone()) {
- throw new Exception("timed out waiting for call back from PendingIntent");
- }
- }
- return r.getResultCode() == 1;
- } catch (RemoteException e) {
- Log.w(TAG, "Failed to get handle for PackageManger Exception: "+e);
- return false;
- } catch (InterruptedException e) {
- Log.w(TAG, "InterruptedException :"+e);
- return false;
- }
- }
-
- @LargeTest
- public void testDeleteAppCacheFiles() throws Exception {
- String testName="testDeleteAppCacheFiles";
- File cacheDir = mContext.getCacheDir();
- createTestFiles1(cacheDir, "testtmpdir", 5);
- assertTrue(invokePMDeleteAppCacheFiles());
- //confirm files dont exist
- verifyTestFiles1(cacheDir, "testtmpdir", 5);
- }
-
- class PackageStatsObserver extends IPackageStatsObserver.Stub {
- public boolean retValue = false;
- public PackageStats stats;
- private boolean doneFlag = false;
-
- public void onGetStatsCompleted(PackageStats pStats, boolean succeeded)
- throws RemoteException {
- synchronized(this) {
- retValue = succeeded;
- stats = pStats;
- doneFlag = true;
- notifyAll();
- }
- }
- public boolean isDone() {
- return doneFlag;
- }
- }
-
- public PackageStats invokePMGetPackageSizeInfo() throws Exception {
- try {
- String packageName = mContext.getPackageName();
- PackageStatsObserver observer = new PackageStatsObserver();
- //wait on observer
- synchronized(observer) {
- getPm().getPackageSizeInfo(packageName, observer);
- long waitTime = 0;
- while((!observer.isDone()) || (waitTime > MAX_WAIT_TIME) ) {
- observer.wait(WAIT_TIME_INCR);
- waitTime += WAIT_TIME_INCR;
- }
- if(!observer.isDone()) {
- throw new Exception("Timed out waiting for PackageStatsObserver.onGetStatsCompleted");
- }
- }
- if(localLOGV) Log.i(TAG, "OBSERVER RET VALUES code="+observer.stats.codeSize+
- ", data="+observer.stats.dataSize+", cache="+observer.stats.cacheSize);
- return observer.stats;
- } catch (RemoteException e) {
- Log.w(TAG, "Failed to get handle for PackageManger Exception: "+e);
- return null;
- } catch (InterruptedException e) {
- Log.w(TAG, "InterruptedException :"+e);
- return null;
- }
- }
-
- @SmallTest
- public void testGetPackageSizeInfo() throws Exception {
- String testName="testGetPackageSizeInfo";
- PackageStats stats = invokePMGetPackageSizeInfo();
- assertTrue(stats!=null);
- //confirm result
- if(localLOGV) Log.i(TAG, "code="+stats.codeSize+", data="+stats.dataSize+
- ", cache="+stats.cacheSize);
- }
-
- @SmallTest
- public void testGetSystemSharedLibraryNames() throws Exception {
- try {
- String[] sharedLibs = getPm().getSystemSharedLibraryNames();
- if (localLOGV) {
- for (String str : sharedLibs) {
- Log.i(TAG, str);
- }
- }
- } catch (RemoteException e) {
- fail("Failed invoking getSystemSharedLibraryNames with exception:" + e);
- }
- }
-
- class FreeStorageReceiver extends BroadcastReceiver {
- public static final String ACTION_FREE = "com.android.unit_tests.testcallback";
- private boolean doneFlag = false;
-
- public boolean isDone() {
- return doneFlag;
- }
-
- @Override
- public void onReceive(Context context, Intent intent) {
- if(intent.getAction().equalsIgnoreCase(ACTION_FREE)) {
- if (localLOGV) Log.i(TAG, "Got notification: clear cache succeeded "+getResultCode());
- synchronized (this) {
- doneFlag = true;
- notifyAll();
- }
- }
- }
- }
-
- @SmallTest
- public void testFreeStorage() throws Exception {
- StatFs st = new StatFs("/data");
- long blks1 = getFreeStorageBlks(st);
- if(localLOGV) Log.i(TAG, "Available free blocks="+blks1);
- long availableMem = getFreeStorageSize(st);
- File cacheDir = mContext.getCacheDir();
- assertNotNull(cacheDir);
- createTestFiles1(cacheDir, "testtmpdir", 5);
- long blks2 = getFreeStorageBlks(st);
- if(localLOGV) Log.i(TAG, "Available blocks after writing test files in application cache="+blks2);
- // Create receiver and register it
- FreeStorageReceiver receiver = new FreeStorageReceiver();
- mContext.registerReceiver(receiver, new IntentFilter(FreeStorageReceiver.ACTION_FREE));
- PendingIntent pi = PendingIntent.getBroadcast(mContext,
- 0, new Intent(FreeStorageReceiver.ACTION_FREE), 0);
- // Invoke PackageManager api
- invokePMFreeStorage(availableMem, receiver, pi);
- long blks3 = getFreeStorageBlks(st);
- if(localLOGV) Log.i(TAG, "Available blocks after freeing cache"+blks3);
- assertEquals(receiver.getResultCode(), 1);
- mContext.unregisterReceiver(receiver);
- // Verify result
- verifyTestFiles1(cacheDir, "testtmpdir", 5);
- }
-
- /* utility method used to create observer and check async call back from PackageManager.
- * ClearApplicationUserData
- */
- boolean invokePMClearApplicationUserData() throws Exception {
- try {
- String packageName = mContext.getPackageName();
- PackageDataObserver observer = new PackageDataObserver();
- //wait on observer
- synchronized(observer) {
- getPm().clearApplicationUserData(packageName, observer);
- long waitTime = 0;
- while(!observer.isDone() || (waitTime > MAX_WAIT_TIME)) {
- observer.wait(WAIT_TIME_INCR);
- waitTime += WAIT_TIME_INCR;
- }
- if(!observer.isDone()) {
- throw new Exception("timed out waiting for PackageDataObserver.onRemoveCompleted");
- }
- }
- return observer.retValue;
- } catch (RemoteException e) {
- Log.w(TAG, "Failed to get handle for PackageManger Exception: "+e);
- return false;
- } catch (InterruptedException e) {
- Log.w(TAG, "InterruptedException :"+e);
- return false;
- }
- }
-
- void verifyUserDataCleared(File pDir) {
- if(localLOGV) Log.i(TAG, "Verifying "+pDir);
- if(pDir == null) {
- return;
- }
- String fileList[] = pDir.list();
- if(fileList == null) {
- return;
- }
- int imax = fileList.length;
- //look recursively in user data dir
- for(int i = 0; i < imax; i++) {
- if(localLOGV) Log.i(TAG, "Found entry "+fileList[i]+ "in "+pDir);
- if("lib".equalsIgnoreCase(fileList[i])) {
- if(localLOGV) Log.i(TAG, "Ignoring lib directory");
- continue;
- }
- fail(pDir+" should be empty or contain only lib subdirectory. Found "+fileList[i]);
- }
- }
-
- File getDataDir() {
- try {
- ApplicationInfo appInfo = getPm().getApplicationInfo(mContext.getPackageName(), 0);
- return new File(appInfo.dataDir);
- } catch (RemoteException e) {
- throw new RuntimeException("Pacakge manager dead", e);
- }
- }
-
- @LargeTest
- public void testClearApplicationUserDataWithTestData() throws Exception {
- File cacheDir = mContext.getCacheDir();
- createTestFiles1(cacheDir, "testtmpdir", 5);
- if(localLOGV) {
- Log.i(TAG, "Created test data Waiting for 60seconds before continuing");
- Thread.sleep(60*1000);
- }
- assertTrue(invokePMClearApplicationUserData());
- //confirm files dont exist
- verifyUserDataCleared(getDataDir());
- }
-
- @SmallTest
- public void testClearApplicationUserDataWithNoTestData() throws Exception {
- assertTrue(invokePMClearApplicationUserData());
- //confirm files dont exist
- verifyUserDataCleared(getDataDir());
- }
-
- @LargeTest
- public void testClearApplicationUserDataNoObserver() throws Exception {
- getPm().clearApplicationUserData(mContext.getPackageName(), null);
- //sleep for 1 minute
- Thread.sleep(60*1000);
- //confirm files dont exist
- verifyUserDataCleared(getDataDir());
- }
-
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/ArrayListTest.java b/tests/AndroidTests/src/com/android/unit_tests/ArrayListTest.java
deleted file mode 100644
index 81e6efd..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/ArrayListTest.java
+++ /dev/null
@@ -1,327 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import java.util.ArrayList;
-import android.test.PerformanceTestBase;
-
-public class ArrayListTest extends PerformanceTestBase {
-
- private ArrayList<Integer> mList;
-
- @Override
- @SuppressWarnings("unchecked")
- protected void setUp() throws Exception {
- super.setUp();
-
- mList = new ArrayList();
- mList.add(0);
- mList.add(1);
- mList.add(2);
- mList.add(3);
- mList.add(4);
- mList.add(5);
- mList.add(6);
- mList.add(7);
- mList.add(8);
- mList.add(9);
- }
-
- public void testArrayListAdd() {
- int i = 0;
- for (; i < 10; i++) {
- mList.add(i);
- mList.add(i);
- mList.add(i);
- mList.add(i);
- mList.add(i);
- mList.add(i);
- mList.add(i);
- mList.add(i);
- mList.add(i);
- mList.add(i);
- }
- }
-
- public void testArrayListAdd1() {
- int i = 0;
- for (; i < 10; i++) {
- mList.add(7, i);
- mList.add(7, i);
- mList.add(7, i);
- mList.add(7, i);
- mList.add(7, i);
- mList.add(7, i);
- mList.add(7, i);
- mList.add(7, i);
- mList.add(7, i);
- mList.add(7, i);
- }
- }
-
- public void testArrayListToArray() {
- Object rArray;
- int i = 0;
- for (; i < 100; i++) {
- rArray = mList.toArray();
- rArray = mList.toArray();
- rArray = mList.toArray();
- rArray = mList.toArray();
- rArray = mList.toArray();
- rArray = mList.toArray();
- rArray = mList.toArray();
- rArray = mList.toArray();
- rArray = mList.toArray();
- rArray = mList.toArray();
- }
- }
-
- public void testArrayListSize() {
- int i = 0, len;
- for (; i < 100; i++) {
- len = mList.size();
- len = mList.size();
- len = mList.size();
- len = mList.size();
- len = mList.size();
- len = mList.size();
- len = mList.size();
- len = mList.size();
- len = mList.size();
- len = mList.size();
- }
- }
-
- public void testArrayListGet() {
- int i = 0, value;
- int len = mList.size();
- for (; i < len; i++) {
- value = mList.get(i);
- value = mList.get(i);
- value = mList.get(i);
- value = mList.get(i);
- value = mList.get(i);
- value = mList.get(i);
- value = mList.get(i);
- value = mList.get(i);
- value = mList.get(i);
- value = mList.get(i);
- }
- }
-
- public void testArrayListContains() {
- boolean flag;
- int i = 0;
-
- for (; i < 100; i++) {
- flag = mList.contains(i);
- flag = mList.contains(i);
- flag = mList.contains(i);
- flag = mList.contains(i);
- flag = mList.contains(i);
- flag = mList.contains(i);
- flag = mList.contains(i);
- flag = mList.contains(i);
- flag = mList.contains(i);
- flag = mList.contains(i);
-
- }
- }
-
- public void testArrayListToArray1() {
- Integer[] rArray = new Integer[10];
-
- Integer[] mArray;
- int i = 0;
- for (; i < 100; i++) {
- mArray = mList.toArray(rArray);
- mArray = mList.toArray(rArray);
- mArray = mList.toArray(rArray);
- mArray = mList.toArray(rArray);
- mArray = mList.toArray(rArray);
- mArray = mList.toArray(rArray);
- mArray = mList.toArray(rArray);
- mArray = mList.toArray(rArray);
- mArray = mList.toArray(rArray);
- mArray = mList.toArray(rArray);
- }
- }
-
- public void testArrayListSet() {
- int i = 0;
- for (; i < 10; i++) {
- mList.set(5, 0);
- mList.set(5, 0);
- mList.set(5, 0);
- mList.set(5, 0);
- mList.set(5, 0);
- mList.set(5, 0);
- mList.set(5, 0);
- mList.set(5, 0);
- mList.set(5, 0);
- mList.set(5, 0);
- }
- }
-
- public void testArrayListIndexOf() {
- int i = 0, index;
-
- for (; i < 100; i++) {
- index = mList.indexOf(0);
- index = mList.indexOf(0);
- index = mList.indexOf(0);
- index = mList.indexOf(0);
- index = mList.indexOf(0);
- index = mList.indexOf(0);
- index = mList.indexOf(0);
- index = mList.indexOf(0);
- index = mList.indexOf(0);
- index = mList.indexOf(0);
- }
- }
-
- public void testArrayListLastIndexOf() {
- int i = 0, index;
-
- for (; i < 100; i++) {
- index = mList.lastIndexOf(0);
- index = mList.lastIndexOf(0);
- index = mList.lastIndexOf(0);
- index = mList.lastIndexOf(0);
- index = mList.lastIndexOf(0);
- index = mList.lastIndexOf(0);
- index = mList.lastIndexOf(0);
- index = mList.lastIndexOf(0);
- index = mList.lastIndexOf(0);
- index = mList.lastIndexOf(0);
- }
- }
-
- @SuppressWarnings("unchecked")
- public void testArrayListRemove() {
- ArrayList<Integer> aList;
- aList = new ArrayList();
- for (int j = 0; j < 10000; j++) {
- aList.add(0);
- }
-
- int i = 0, index;
-
- for (; i < 10; i++) {
- index = aList.remove(0);
- index = aList.remove(0);
- index = aList.remove(0);
- index = aList.remove(0);
- index = aList.remove(0);
- index = aList.remove(0);
- index = aList.remove(0);
- index = aList.remove(0);
- index = aList.remove(0);
- index = aList.remove(0);
-
-
- }
- }
-
- @SuppressWarnings("unchecked")
- public void testArrayListAddAll() {
- ArrayList<Integer> aList = new ArrayList();
-
- int i = 0;
- boolean b;
- for (; i < 10; i++) {
- b = aList.addAll(mList);
- b = aList.addAll(mList);
- b = aList.addAll(mList);
- b = aList.addAll(mList);
- b = aList.addAll(mList);
- b = aList.addAll(mList);
- b = aList.addAll(mList);
- b = aList.addAll(mList);
- b = aList.addAll(mList);
- b = aList.addAll(mList);
-
- }
- }
-
- @SuppressWarnings("unchecked")
- public void testArrayListRemove1() {
- ArrayList<String> aList;
- String s;
-
- aList = new ArrayList();
- for (int j = 0; j < 100; j++) {
- aList.add("a");
- aList.add("b");
- }
- s = new String("a");
-
- int i = 0;
- boolean b;
- for (; i < 10; i++) {
- b = aList.remove(s);
- b = aList.remove(s);
- b = aList.remove(s);
- b = aList.remove(s);
- b = aList.remove(s);
- b = aList.remove(s);
- b = aList.remove(s);
- b = aList.remove(s);
- b = aList.remove(s);
- b = aList.remove(s);
- }
- }
-
- @SuppressWarnings("unchecked")
- public void testArrayListAddAll1() {
- ArrayList<Integer> aList = new ArrayList();
-
- int i = 0;
- boolean b;
-
- for (; i < 10; i++) {
- b = aList.addAll(0, mList);
- b = aList.addAll(0, mList);
- b = aList.addAll(0, mList);
- b = aList.addAll(0, mList);
- b = aList.addAll(0, mList);
- b = aList.addAll(0, mList);
- b = aList.addAll(0, mList);
- b = aList.addAll(0, mList);
- b = aList.addAll(0, mList);
- b = aList.addAll(0, mList);
- }
- }
-
- public void testArrayListClone() {
- Object rObj;
- int i = 0;
-
- for (; i < 100; i++) {
- rObj = mList.clone();
- rObj = mList.clone();
- rObj = mList.clone();
- rObj = mList.clone();
- rObj = mList.clone();
- rObj = mList.clone();
- rObj = mList.clone();
- rObj = mList.clone();
- rObj = mList.clone();
- rObj = mList.clone();
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/BrickDeniedTest.java b/tests/AndroidTests/src/com/android/unit_tests/BrickDeniedTest.java
deleted file mode 100644
index 0f2b23b..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/BrickDeniedTest.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.content.Intent;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-
-/** Test to make sure brick intents <b>don't</b> work without permission. */
-public class BrickDeniedTest extends AndroidTestCase {
- @MediumTest
- public void testBrick() {
- // Try both the old and new brick intent names. Neither should work,
- // since this test application doesn't have the required permission.
- // If it does work, well, the test certainly won't pass.
- getContext().sendBroadcast(new Intent("SHES_A_BRICK_HOUSE"));
- getContext().sendBroadcast(new Intent("android.intent.action.BRICK"));
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/BuildTest.java b/tests/AndroidTests/src/com/android/unit_tests/BuildTest.java
deleted file mode 100644
index dbfd0e7..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/BuildTest.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.os.Build;
-import android.server.data.BuildData;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.util.Log;
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-/**
- * Provides test cases for android.os.Build and android.server.data.BuildData,
- * and, in turn, many of the system properties set by the build system.
- */
-public class BuildTest extends TestCase {
-
- private static final String TAG = "BuildTest";
-
- /**
- * Asserts that a String is non-null and non-empty. If it is not,
- * an AssertionFailedError is thrown with the given message.
- */
- private static void assertNotEmpty(String message, String string) {
- //Log.i(TAG, "" + message + ": " + string);
- assertNotNull(message, string);
- assertFalse(message, string.equals(""));
- }
-
- /**
- * Asserts that a String is non-null and non-empty. If it is not,
- * an AssertionFailedError is thrown.
- */
- private static void assertNotEmpty(String string) {
- assertNotEmpty(null, string);
- }
-
- /**
- * Asserts that all android.os.Build fields are non-empty and/or in a valid range.
- */
- @SmallTest
- public void testBuildFields() throws Exception {
- assertNotEmpty("ID", Build.ID);
- assertNotEmpty("DISPLAY", Build.DISPLAY);
- assertNotEmpty("PRODUCT", Build.PRODUCT);
- assertNotEmpty("DEVICE", Build.DEVICE);
- assertNotEmpty("BOARD", Build.BOARD);
- assertNotEmpty("BRAND", Build.BRAND);
- assertNotEmpty("MODEL", Build.MODEL);
- assertNotEmpty("VERSION.INCREMENTAL", Build.VERSION.INCREMENTAL);
- assertNotEmpty("VERSION.RELEASE", Build.VERSION.RELEASE);
- assertNotEmpty("TYPE", Build.TYPE);
- Assert.assertNotNull("TAGS", Build.TAGS); // TAGS is allowed to be empty.
- assertNotEmpty("FINGERPRINT", Build.FINGERPRINT);
- Assert.assertTrue("TIME", Build.TIME > 0);
- assertNotEmpty("USER", Build.USER);
- assertNotEmpty("HOST", Build.HOST);
-
- // TODO: if any of the android.os.Build fields have additional constraints
- // (e.g., must be a C identifier, must be a valid filename, must not contain any spaces)
- // add tests for them.
- }
-
- /**
- * Asserts that android.server.data.BuildData behaves as expected.
- */
- @SmallTest
- public void testBuildData() throws Exception {
- BuildData bd;
-
- /*
- * Default constructor
- */
- bd = new BuildData();
- assertNotEmpty(bd.getFingerprint());
- assertNotEmpty(bd.getIncrementalVersion());
- Assert.assertTrue(bd.getTime() > 0);
-
- /*
- * Explicit constructor
- */
- final String FINGERPRINT = "fingerprint";
- final String INCREMENTAL_VERSION = "74321"; // a valid long, for the serialization test
- final long TIME = 12345;
- bd = new BuildData(FINGERPRINT, INCREMENTAL_VERSION, TIME);
- Assert.assertEquals(FINGERPRINT, bd.getFingerprint());
- Assert.assertEquals(INCREMENTAL_VERSION, bd.getIncrementalVersion());
- Assert.assertTrue(bd.getTime() == TIME);
-
-// The serialization methods are package-private.
-//
-// import java.io.ByteArrayInputStream;
-// import java.io.ByteArrayOutputStream;
-// import java.io.DataInputStream;
-// import java.io.DataOutputStream;
-//
-// /*
-// * Serialization
-// */
-// ByteArrayOutputStream out = new ByteArrayOutputStream();
-// bd.write(new DataOutputStream(out));
-// Assert.assertTrue(out.size() > 0);
-//
-// /*
-// * Deserialization
-// *
-// * The current version of BuildData converts the incremental version to
-// * and from a long when serializing/deserializing. Future versions should
-// * treat it as a string.
-// */
-// BuildData bd2 =
-// new BuildData(new DataInputStream(new ByteArrayInputStream(out.toByteArray())));
-// Assert.assertEquals(bd.getFingerprint(), bd2.getFingerprint());
-// Assert.assertEquals(bd.getIncrementalVersion(), bd2.getIncrementalVersion());
-// Assert.assertTrue(bd.getTime() == bd2.getTime());
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/CharSequencesTest.java b/tests/AndroidTests/src/com/android/unit_tests/CharSequencesTest.java
deleted file mode 100644
index 092f309..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/CharSequencesTest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import com.android.internal.util.CharSequences;
-import static com.android.internal.util.CharSequences.forAsciiBytes;
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class CharSequencesTest extends TestCase {
-
- @SmallTest
- public void testCharSequences() {
- String s = "Crazy Bob";
- byte[] bytes = s.getBytes();
-
- String copy = toString(forAsciiBytes(bytes));
- assertTrue(s.equals(copy));
-
- copy = toString(forAsciiBytes(bytes, 0, s.length()));
- assertTrue(s.equals(copy));
-
- String crazy = toString(forAsciiBytes(bytes, 0, 5));
- assertTrue("Crazy".equals(crazy));
-
- String a = toString(forAsciiBytes(bytes, 0, 3).subSequence(2, 3));
- assertTrue("a".equals(a));
-
- String empty = toString(forAsciiBytes(bytes, 0, 3).subSequence(3, 3));
- assertTrue("".equals(empty));
-
- assertTrue(CharSequences.equals("bob", "bob"));
- assertFalse(CharSequences.equals("b", "bob"));
- assertFalse(CharSequences.equals("", "bob"));
- }
-
- /**
- * Converts a CharSequence to a string the slow way. Useful for testing
- * a CharSequence implementation.
- */
- static String toString(CharSequence charSequence) {
- return new StringBuilder().append(charSequence).toString();
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/ComponentTest.java b/tests/AndroidTests/src/com/android/unit_tests/ComponentTest.java
deleted file mode 100644
index 08fe742..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/ComponentTest.java
+++ /dev/null
@@ -1,738 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import com.android.unit_tests.enabled_app.DisabledActivity;
-import com.android.unit_tests.enabled_app.DisabledProvider;
-import com.android.unit_tests.enabled_app.DisabledReceiver;
-import com.android.unit_tests.enabled_app.DisabledService;
-import com.android.unit_tests.enabled_app.EnabledActivity;
-import com.android.unit_tests.enabled_app.EnabledProvider;
-import com.android.unit_tests.enabled_app.EnabledReceiver;
-import com.android.unit_tests.enabled_app.EnabledService;
-
-import android.content.ComponentName;
-import android.content.Intent;
-import android.content.pm.ActivityInfo;
-import android.content.pm.ComponentInfo;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
-import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
-import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
-import static android.content.pm.PackageManager.GET_DISABLED_COMPONENTS;
-import android.content.pm.ProviderInfo;
-import android.content.pm.ResolveInfo;
-import android.content.pm.ServiceInfo;
-import android.test.AndroidTestCase;
-
-import java.util.List;
-
-/**
- * Tests for disabling and enabling application components.
- *
- * Note: These tests are on the slow side. This is probably because most of the tests trigger the
- * package settings file to get written out by the PackageManagerService. Better, more unit-y test
- * would fix this.
- */
-
-public class ComponentTest extends AndroidTestCase {
-
- private PackageManager mPackageManager;
- private Intent mDisabledActivityIntent;
- private Intent mEnabledActivityIntent;
- private Intent mDisabledServiceIntent;
- private Intent mEnabledServiceIntent;
- private Intent mDisabledReceiverIntent;
- private Intent mEnabledReceiverIntent;
- private Intent mDisabledAppEnabledActivityIntent;
-
- private static final String ENABLED_PACKAGENAME =
- "com.android.unit_tests.enabled_app";
- private static final String DISABLED_PACKAGENAME =
- "com.android.unit_tests.disabled_app";
- private static final String DISABLED_ACTIVITY_CLASSNAME =
- DisabledActivity.class.getName();
- private static final ComponentName DISABLED_ACTIVITY_COMPONENTNAME =
- new ComponentName(ENABLED_PACKAGENAME, DISABLED_ACTIVITY_CLASSNAME);
- private static final String ENABLED_ACTIVITY_CLASSNAME =
- EnabledActivity.class.getName();
- private static final ComponentName ENABLED_ACTIVITY_COMPONENTNAME =
- new ComponentName(ENABLED_PACKAGENAME, ENABLED_ACTIVITY_CLASSNAME);
- private static final String DISABLED_SERVICE_CLASSNAME =
- DisabledService.class.getName();
- private static final ComponentName DISABLED_SERVICE_COMPONENTNAME =
- new ComponentName(ENABLED_PACKAGENAME, DISABLED_SERVICE_CLASSNAME);
- private static final String DISABLED_PROVIDER_CLASSNAME =
- DisabledProvider.class.getName();
- private static final ComponentName DISABLED_PROVIDER_COMPONENTNAME =
- new ComponentName(ENABLED_PACKAGENAME, DISABLED_PROVIDER_CLASSNAME);
- private static final String DISABLED_PROVIDER_NAME = DisabledProvider.class.getName();
- private static final String ENABLED_SERVICE_CLASSNAME =
- EnabledService.class.getName();
- private static final ComponentName ENABLED_SERVICE_COMPONENTNAME =
- new ComponentName(ENABLED_PACKAGENAME, ENABLED_SERVICE_CLASSNAME);
- private static final String DISABLED_RECEIVER_CLASSNAME =
- DisabledReceiver.class.getName();
- private static final ComponentName DISABLED_RECEIVER_COMPONENTNAME =
- new ComponentName(ENABLED_PACKAGENAME, DISABLED_RECEIVER_CLASSNAME);
- private static final String ENABLED_RECEIVER_CLASSNAME =
- EnabledReceiver.class.getName();
- private static final ComponentName ENABLED_RECEIVER_COMPONENTNAME =
- new ComponentName(ENABLED_PACKAGENAME, ENABLED_RECEIVER_CLASSNAME);
- private static final String ENABLED_PROVIDER_CLASSNAME =
- EnabledProvider.class.getName();
- private static final ComponentName ENABLED_PROVIDER_COMPONENTNAME =
- new ComponentName(ENABLED_PACKAGENAME, ENABLED_PROVIDER_CLASSNAME);
- private static final String ENABLED_PROVIDER_NAME = EnabledProvider.class.getName();
- private static final String DISABLED_APP_ENABLED_ACTIVITY_CLASSNAME =
- com.android.unit_tests.disabled_app.EnabledActivity.class.getName();
- private static final ComponentName DISABLED_APP_ENABLED_ACTIVITY_COMPONENTNAME =
- new ComponentName(DISABLED_PACKAGENAME, DISABLED_APP_ENABLED_ACTIVITY_CLASSNAME);
- private static final String TEST_CATEGORY =
- "com.android.unit_tests.enabled_app.TEST_CATEGORY";
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mPackageManager = mContext.getPackageManager();
- mDisabledActivityIntent = new Intent();
- mDisabledActivityIntent.setComponent(DISABLED_ACTIVITY_COMPONENTNAME);
- mEnabledActivityIntent = new Intent();
- mEnabledActivityIntent.setComponent(ENABLED_ACTIVITY_COMPONENTNAME);
- mDisabledServiceIntent = new Intent();
- mDisabledServiceIntent.setComponent(DISABLED_SERVICE_COMPONENTNAME);
- mEnabledServiceIntent = new Intent();
- mEnabledServiceIntent.setComponent(ENABLED_SERVICE_COMPONENTNAME);
- mDisabledReceiverIntent = new Intent("android.intent.action.ENABLED_APP_DISABLED_RECEIVER");
- mDisabledReceiverIntent.setComponent(DISABLED_RECEIVER_COMPONENTNAME);
- mEnabledReceiverIntent = new Intent("android.intent.action.ENABLED_APP_ENABLED_RECEIVER");
- mEnabledReceiverIntent.setComponent(ENABLED_RECEIVER_COMPONENTNAME);
- mDisabledAppEnabledActivityIntent = new Intent();
- mDisabledAppEnabledActivityIntent.setComponent(DISABLED_APP_ENABLED_ACTIVITY_COMPONENTNAME);
- }
-
- @SmallTest
- public void testContextNotNull() throws Exception {
- assertNotNull(mContext);
- }
-
- @MediumTest
- public void testResolveDisabledActivity() throws Exception {
- mPackageManager.setComponentEnabledSetting(DISABLED_ACTIVITY_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- final ResolveInfo info = mPackageManager.resolveActivity(mDisabledActivityIntent, 0);
- assertNull(info);
-
- final ResolveInfo info2 = mPackageManager.resolveActivity(
- mDisabledActivityIntent, GET_DISABLED_COMPONENTS);
- assertNotNull(info2);
- assertNotNull(info2.activityInfo);
- assertFalse(info2.activityInfo.enabled);
- }
-
- @MediumTest
- public void testResolveEnabledActivity() throws Exception {
- mPackageManager.setComponentEnabledSetting(ENABLED_ACTIVITY_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- final ResolveInfo info = mPackageManager.resolveActivity(mEnabledActivityIntent, 0);
- assertNotNull(info);
- assertNotNull(info);
- assertNotNull(info.activityInfo);
- assertTrue(info.activityInfo.enabled);
- }
-
- @MediumTest
- public void testQueryDisabledActivity() throws Exception {
- mPackageManager.setComponentEnabledSetting(DISABLED_ACTIVITY_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- final List<ResolveInfo> infoList =
- mPackageManager.queryIntentActivities(mDisabledActivityIntent, 0);
- assertEquals(0, infoList.size());
-
- final List<ResolveInfo> infoList2 =
- mPackageManager.queryIntentActivities(mDisabledActivityIntent,
- GET_DISABLED_COMPONENTS);
- assertEquals(1, infoList2.size());
- final ResolveInfo info = infoList2.get(0);
- assertNotNull(info);
- assertNotNull(info.activityInfo);
- assertFalse(info.activityInfo.enabled);
- }
-
- @MediumTest
- public void testQueryEnabledActivity() throws Exception {
- mPackageManager.setComponentEnabledSetting(ENABLED_ACTIVITY_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- final List<ResolveInfo> infoList =
- mPackageManager.queryIntentActivities(mEnabledActivityIntent, 0);
- assertEquals(1, infoList.size());
- final ResolveInfo info = infoList.get(0);
- assertNotNull(info);
- assertNotNull(info.activityInfo);
- assertTrue(info.activityInfo.enabled);
- }
-
- @MediumTest
- public void testGetDisabledActivityInfo() throws Exception {
- mPackageManager.setComponentEnabledSetting(DISABLED_ACTIVITY_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- try {
- mPackageManager.getActivityInfo(DISABLED_ACTIVITY_COMPONENTNAME, 0);
- fail("Attempt to get info on disabled component should fail.");
- } catch (PackageManager.NameNotFoundException e) {
- // expected
- }
-
- final ActivityInfo activityInfo =
- mPackageManager.getActivityInfo(DISABLED_ACTIVITY_COMPONENTNAME,
- GET_DISABLED_COMPONENTS);
- assertNotNull(activityInfo);
- assertFalse(activityInfo.enabled);
- }
-
- @MediumTest
- public void testGetEnabledActivityInfo() throws Exception {
- mPackageManager.setComponentEnabledSetting(ENABLED_ACTIVITY_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- ActivityInfo activityInfo =
- mPackageManager.getActivityInfo(ENABLED_ACTIVITY_COMPONENTNAME, 0);
- assertNotNull(activityInfo);
- assertTrue(activityInfo.enabled);
- }
-
- @MediumTest
- public void testEnableActivity() throws Exception {
- mPackageManager.setComponentEnabledSetting(DISABLED_ACTIVITY_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- final ResolveInfo info = mPackageManager.resolveActivity(mDisabledActivityIntent, 0);
- assertNull(info);
- mPackageManager.setComponentEnabledSetting(DISABLED_ACTIVITY_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_ENABLED,
- PackageManager.DONT_KILL_APP);
- final ResolveInfo info2 =
- mPackageManager.resolveActivity(mDisabledActivityIntent,
- 0);
- assertNotNull(info2);
- assertNotNull(info2.activityInfo);
- assertFalse(info2.activityInfo.enabled);
-
- final List<ResolveInfo> infoList =
- mPackageManager.queryIntentActivities(mDisabledActivityIntent, 0);
- assertEquals(1, infoList.size());
- }
-
- @LargeTest
- public void testDisableActivity() throws Exception {
- mPackageManager.setComponentEnabledSetting(ENABLED_ACTIVITY_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- final ResolveInfo info = mPackageManager.resolveActivity(mEnabledActivityIntent, 0);
- assertNotNull(info);
- assertNotNull(info.activityInfo);
- mPackageManager.setComponentEnabledSetting(ENABLED_ACTIVITY_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DISABLED,
- PackageManager.DONT_KILL_APP);
- final ResolveInfo info2 =
- mPackageManager.resolveActivity(mEnabledActivityIntent,
- 0);
- assertNull(info2);
-
- final ResolveInfo info3 = mPackageManager.resolveActivity(mEnabledActivityIntent,
- GET_DISABLED_COMPONENTS);
- assertNotNull(info3);
- assertNotNull(info3.activityInfo);
- assertTrue(info3.activityInfo.enabled);
-
- final List<ResolveInfo> infoList =
- mPackageManager.queryIntentActivities(mEnabledActivityIntent, 0);
- assertEquals(0, infoList.size());
- }
-
- @MediumTest
- public void testResolveDisabledService() throws Exception {
- mPackageManager.setComponentEnabledSetting(DISABLED_SERVICE_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- final ResolveInfo info = mPackageManager.resolveService(mDisabledServiceIntent, 0);
- assertNull(info);
-
- final ResolveInfo info2 = mPackageManager.resolveService(
- mDisabledServiceIntent, GET_DISABLED_COMPONENTS);
- assertNotNull(info2);
- assertNotNull(info2.serviceInfo);
- assertFalse(info2.serviceInfo.enabled);
- }
-
- @MediumTest
- public void testResolveEnabledService() throws Exception {
- mPackageManager.setComponentEnabledSetting(ENABLED_SERVICE_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- final ResolveInfo info = mPackageManager.resolveService(mEnabledServiceIntent, 0);
- assertNotNull(info);
- assertNotNull(info);
- assertNotNull(info.serviceInfo);
- assertTrue(info.serviceInfo.enabled);
- }
-
- @MediumTest
- public void testQueryDisabledService() throws Exception {
- mPackageManager.setComponentEnabledSetting(DISABLED_SERVICE_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- final List<ResolveInfo> infoList =
- mPackageManager.queryIntentServices(mDisabledServiceIntent, 0);
- assertEquals(0, infoList.size());
-
- final List<ResolveInfo> infoList2 =
- mPackageManager.queryIntentServices(mDisabledServiceIntent,
- GET_DISABLED_COMPONENTS);
- assertEquals(1, infoList2.size());
- final ResolveInfo info = infoList2.get(0);
- assertNotNull(info);
- assertNotNull(info.serviceInfo);
- assertFalse(info.serviceInfo.enabled);
- }
-
- @MediumTest
- public void testQueryEnabledService() throws Exception {
- mPackageManager.setComponentEnabledSetting(ENABLED_SERVICE_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- final List<ResolveInfo> infoList =
- mPackageManager.queryIntentServices(mEnabledServiceIntent, 0);
- assertEquals(1, infoList.size());
- final ResolveInfo info = infoList.get(0);
- assertNotNull(info);
- assertNotNull(info.serviceInfo);
- assertTrue(info.serviceInfo.enabled);
- }
-
- @MediumTest
- public void testGetDisabledServiceInfo() throws Exception {
- mPackageManager.setComponentEnabledSetting(DISABLED_SERVICE_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- try {
- mPackageManager.getServiceInfo(DISABLED_SERVICE_COMPONENTNAME, 0);
- fail("Attempt to get info on disabled component should fail.");
- } catch (PackageManager.NameNotFoundException e) {
- // expected
- }
-
- final ServiceInfo serviceInfo =
- mPackageManager.getServiceInfo(DISABLED_SERVICE_COMPONENTNAME,
- GET_DISABLED_COMPONENTS);
- assertNotNull(serviceInfo);
- assertFalse(serviceInfo.enabled);
- }
-
- @MediumTest
- public void testGetEnabledServiceInfo() throws Exception {
- mPackageManager.setComponentEnabledSetting(ENABLED_SERVICE_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- ServiceInfo serviceInfo =
- mPackageManager.getServiceInfo(ENABLED_SERVICE_COMPONENTNAME, 0);
- assertNotNull(serviceInfo);
- assertTrue(serviceInfo.enabled);
- }
-
- @MediumTest
- public void testEnableService() throws Exception {
- mPackageManager.setComponentEnabledSetting(DISABLED_SERVICE_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- final ResolveInfo info = mPackageManager.resolveService(mDisabledServiceIntent, 0);
- assertNull(info);
- mPackageManager.setComponentEnabledSetting(DISABLED_SERVICE_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_ENABLED,
- PackageManager.DONT_KILL_APP);
- final ResolveInfo info2 =
- mPackageManager.resolveService(mDisabledServiceIntent,
- 0);
- assertNotNull(info2);
- assertNotNull(info2.serviceInfo);
- assertFalse(info2.serviceInfo.enabled);
- }
-
- @LargeTest
- public void testDisableService() throws Exception {
- mPackageManager.setComponentEnabledSetting(ENABLED_SERVICE_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- final ResolveInfo info = mPackageManager.resolveService(mEnabledServiceIntent, 0);
- assertNotNull(info);
- assertNotNull(info.serviceInfo);
- mPackageManager.setComponentEnabledSetting(ENABLED_SERVICE_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DISABLED,
- PackageManager.DONT_KILL_APP);
- final ResolveInfo info2 =
- mPackageManager.resolveService(mEnabledServiceIntent,
- 0);
- assertNull(info2);
-
- final ResolveInfo info3 = mPackageManager.resolveService(mEnabledServiceIntent,
- GET_DISABLED_COMPONENTS);
- assertNotNull(info3);
- assertNotNull(info3.serviceInfo);
- assertTrue(info3.serviceInfo.enabled);
- }
-
- @MediumTest
- public void testQueryDisabledReceiver() throws Exception {
- mPackageManager.setComponentEnabledSetting(DISABLED_RECEIVER_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- final List<ResolveInfo> infoList =
- mPackageManager.queryBroadcastReceivers(mDisabledReceiverIntent, 0);
- assertEquals(0, infoList.size());
-
- final List<ResolveInfo> infoList2 =
- mPackageManager.queryBroadcastReceivers(mDisabledReceiverIntent,
- GET_DISABLED_COMPONENTS);
- assertEquals(1, infoList2.size());
- final ResolveInfo info = infoList2.get(0);
- assertNotNull(info);
- assertNotNull(info.activityInfo);
- assertFalse(info.activityInfo.enabled);
- }
-
- @MediumTest
- public void testQueryEnabledReceiver() throws Exception {
- mPackageManager.setComponentEnabledSetting(ENABLED_RECEIVER_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- final List<ResolveInfo> infoList =
- mPackageManager.queryBroadcastReceivers(mEnabledReceiverIntent, 0);
- assertEquals(1, infoList.size());
- final ResolveInfo info = infoList.get(0);
- assertNotNull(info);
- assertNotNull(info.activityInfo);
- assertTrue(info.activityInfo.enabled);
- }
-
- @MediumTest
- public void testGetDisabledReceiverInfo() throws Exception {
- mPackageManager.setComponentEnabledSetting(DISABLED_RECEIVER_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- try {
- mPackageManager.getReceiverInfo(DISABLED_RECEIVER_COMPONENTNAME, 0);
- fail("Attempt to get info on disabled component should fail.");
- } catch (PackageManager.NameNotFoundException e) {
- // expected
- }
-
- final ActivityInfo activityInfo =
- mPackageManager.getReceiverInfo(DISABLED_RECEIVER_COMPONENTNAME,
- GET_DISABLED_COMPONENTS);
- assertNotNull(activityInfo);
- assertFalse(activityInfo.enabled);
- }
-
- @MediumTest
- public void testGetEnabledReceiverInfo() throws Exception {
- mPackageManager.setComponentEnabledSetting(ENABLED_RECEIVER_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- ActivityInfo activityInfo =
- mPackageManager.getReceiverInfo(ENABLED_RECEIVER_COMPONENTNAME, 0);
- assertNotNull(activityInfo);
- assertTrue(activityInfo.enabled);
- }
-
- @MediumTest
- public void testEnableReceiver() throws Exception {
- mPackageManager.setComponentEnabledSetting(DISABLED_RECEIVER_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- try {
- mPackageManager.getReceiverInfo(DISABLED_RECEIVER_COMPONENTNAME, 0);
- fail("Attempt to get info on disabled component should fail.");
- } catch (PackageManager.NameNotFoundException e) {
- // expected
- }
-
- mPackageManager.setComponentEnabledSetting(DISABLED_RECEIVER_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_ENABLED,
- PackageManager.DONT_KILL_APP);
- ActivityInfo activityInfo =
- mPackageManager.getReceiverInfo(DISABLED_RECEIVER_COMPONENTNAME, 0);
- assertNotNull(activityInfo);
- assertFalse(activityInfo.enabled);
- }
-
- @MediumTest
- public void testDisableReceiver() throws Exception {
- mPackageManager.setComponentEnabledSetting(ENABLED_RECEIVER_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- ActivityInfo activityInfo =
- mPackageManager.getReceiverInfo(ENABLED_RECEIVER_COMPONENTNAME, 0);
- assertNotNull(activityInfo);
- assertTrue(activityInfo.enabled);
- mPackageManager.setComponentEnabledSetting(DISABLED_RECEIVER_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DISABLED,
- PackageManager.DONT_KILL_APP);
- try {
- mPackageManager.getReceiverInfo(DISABLED_RECEIVER_COMPONENTNAME, 0);
- fail("Attempt to get info on disabled component should fail.");
- } catch (PackageManager.NameNotFoundException e) {
- // expected
- }
- }
-
- @MediumTest
- public void testResolveEnabledProvider() throws Exception {
- mPackageManager.setComponentEnabledSetting(ENABLED_PROVIDER_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- ProviderInfo providerInfo =
- mPackageManager.resolveContentProvider(ENABLED_PROVIDER_NAME, 0);
- assertNotNull(providerInfo);
- assertTrue(providerInfo.enabled);
- }
-
- @MediumTest
- public void testResolveDisabledProvider() throws Exception {
- mPackageManager.setComponentEnabledSetting(DISABLED_PROVIDER_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- ProviderInfo providerInfo =
- mPackageManager.resolveContentProvider(DISABLED_PROVIDER_NAME, 0);
- assertNull(providerInfo);
- ProviderInfo providerInfo2 =
- mPackageManager.resolveContentProvider(DISABLED_PROVIDER_NAME,
- GET_DISABLED_COMPONENTS);
- assertNotNull(providerInfo2);
- assertFalse(providerInfo2.enabled);
- }
-
- @MediumTest
- public void testEnableProvider() throws Exception {
- mPackageManager.setComponentEnabledSetting(DISABLED_PROVIDER_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
- ProviderInfo providerInfo =
- mPackageManager.resolveContentProvider(DISABLED_PROVIDER_NAME, 0);
- assertNull(providerInfo);
-
- mPackageManager.setComponentEnabledSetting(DISABLED_PROVIDER_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_ENABLED,
- PackageManager.DONT_KILL_APP);
- ProviderInfo providerInfo2 =
- mPackageManager.resolveContentProvider(DISABLED_PROVIDER_NAME, 0);
- assertNotNull(providerInfo2);
- assertFalse(providerInfo2.enabled);
- }
-
- @MediumTest
- public void testDisableProvider() throws Exception {
- mPackageManager.setComponentEnabledSetting(ENABLED_PROVIDER_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
- ProviderInfo providerInfo =
- mPackageManager.resolveContentProvider(ENABLED_PROVIDER_NAME, 0);
- assertNotNull(providerInfo);
- assertTrue(providerInfo.enabled);
-
- mPackageManager.setComponentEnabledSetting(ENABLED_PROVIDER_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DISABLED,
- PackageManager.DONT_KILL_APP);
- ProviderInfo providerInfo2 =
- mPackageManager.resolveContentProvider(ENABLED_PROVIDER_NAME, 0);
- assertNull(providerInfo2);
- }
-
- @MediumTest
- public void testQueryEnabledProvider() throws Exception {
- mPackageManager.setComponentEnabledSetting(ENABLED_PROVIDER_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- String enabledProviderProcessName = getComponentProcessName(ENABLED_PROVIDER_NAME);
- PackageInfo pi = mPackageManager.getPackageInfo(ENABLED_PACKAGENAME, 0);
- List<ProviderInfo> providerInfoList =
- mPackageManager.queryContentProviders(enabledProviderProcessName,
- pi.applicationInfo.uid, 0);
- assertNotNull(providerInfoList);
- assertEquals(1, providerInfoList.size());
- assertEquals(ENABLED_PROVIDER_CLASSNAME,
- providerInfoList.get(0).name);
- }
-
- @MediumTest
- public void testQueryDisabledProvider() throws Exception {
- mPackageManager.setComponentEnabledSetting(DISABLED_PROVIDER_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- PackageInfo pi = mPackageManager.getPackageInfo(ENABLED_PACKAGENAME, 0);
-
- String disabledProviderProcessName = getComponentProcessName(DISABLED_PROVIDER_NAME);
- List<ProviderInfo> providerInfoList =
- mPackageManager.queryContentProviders(disabledProviderProcessName,
- pi.applicationInfo.uid, 0);
- assertNull(providerInfoList);
-
-
- List<ProviderInfo> providerInfoList2 =
- mPackageManager.queryContentProviders(disabledProviderProcessName,
- pi.applicationInfo.uid, GET_DISABLED_COMPONENTS);
- assertNotNull(providerInfoList2);
- assertEquals(1, providerInfoList2.size());
- assertEquals(DISABLED_PROVIDER_CLASSNAME,
- providerInfoList2.get(0).name);
- }
-
- private String getComponentProcessName(String componentNameStr) {
- ComponentInfo providerInfo =
- mPackageManager.resolveContentProvider(componentNameStr,
- GET_DISABLED_COMPONENTS);
- return providerInfo.processName;
- }
-
- public void DISABLED_testResolveEnabledActivityInDisabledApp() throws Exception {
- mPackageManager.setApplicationEnabledSetting(DISABLED_PACKAGENAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- 0);
- mPackageManager.setComponentEnabledSetting(DISABLED_APP_ENABLED_ACTIVITY_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- final ResolveInfo info =
- mPackageManager.resolveActivity(mDisabledAppEnabledActivityIntent, 0);
- assertNull(info);
-
- final ResolveInfo info2 = mPackageManager.resolveActivity(
- mDisabledAppEnabledActivityIntent, GET_DISABLED_COMPONENTS);
- assertNotNull(info2);
- assertNotNull(info2.activityInfo);
- assertTrue(info2.activityInfo.enabled);
- }
-
- public void DISABLED_testEnableApplication() throws Exception {
- mPackageManager.setApplicationEnabledSetting(DISABLED_PACKAGENAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- 0);
- mPackageManager.setComponentEnabledSetting(DISABLED_APP_ENABLED_ACTIVITY_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- final ResolveInfo info =
- mPackageManager.resolveActivity(mDisabledAppEnabledActivityIntent, 0);
- assertNull(info);
-
- mPackageManager.setApplicationEnabledSetting(DISABLED_PACKAGENAME,
- COMPONENT_ENABLED_STATE_ENABLED,
- 0);
- final ResolveInfo info2 = mPackageManager.resolveActivity(
- mDisabledAppEnabledActivityIntent, 0);
- assertNotNull(info2);
- assertNotNull(info2.activityInfo);
- assertTrue(info2.activityInfo.enabled);
-
- }
-
- public void DISABLED_testDisableApplication() throws Exception {
- mPackageManager.setApplicationEnabledSetting(ENABLED_PACKAGENAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- 0);
- mPackageManager.setComponentEnabledSetting(ENABLED_ACTIVITY_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- final ResolveInfo info = mPackageManager.resolveActivity(mEnabledActivityIntent, 0);
- assertNotNull(info);
- assertNotNull(info.activityInfo);
- assertTrue(info.activityInfo.enabled);
-
- mPackageManager.setApplicationEnabledSetting(ENABLED_PACKAGENAME,
- COMPONENT_ENABLED_STATE_DISABLED,
- 0);
- final ResolveInfo info2 = mPackageManager.resolveActivity(mEnabledActivityIntent, 0);
- assertNull(info2);
-
- // Clean up
- mPackageManager.setApplicationEnabledSetting(ENABLED_PACKAGENAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- 0);
-
- }
-
- @MediumTest
- public void testNonExplicitResolveAfterEnabling() throws Exception {
- mPackageManager.setComponentEnabledSetting(DISABLED_ACTIVITY_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_DEFAULT,
- PackageManager.DONT_KILL_APP);
-
- Intent intent = new Intent(Intent.ACTION_MAIN, null);
- intent.addCategory(TEST_CATEGORY);
-
- final List<ResolveInfo> launchables =
- mPackageManager.queryIntentActivities(intent, 0);
-
- int numItems = launchables.size();
- assertEquals(0, numItems);
-
- mPackageManager.setComponentEnabledSetting(DISABLED_ACTIVITY_COMPONENTNAME,
- COMPONENT_ENABLED_STATE_ENABLED,
- PackageManager.DONT_KILL_APP);
-
- final List<ResolveInfo> launchables2 =
- mPackageManager.queryIntentActivities(intent, 0);
-
- int numItems2 = launchables2.size();
- assertEquals(1, numItems2);
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/ContentQueryMapTest.java b/tests/AndroidTests/src/com/android/unit_tests/ContentQueryMapTest.java
deleted file mode 100644
index 241a1bf..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/ContentQueryMapTest.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.content.ContentQueryMap;
-import android.content.ContentResolver;
-import android.content.ContentValues;
-import android.database.Cursor;
-import android.os.Handler;
-import android.os.Looper;
-import android.provider.Settings;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-
-import java.util.Observable;
-import java.util.Observer;
-
-/** Test of {@link ContentQueryMap} */
-public class ContentQueryMapTest extends AndroidTestCase {
- /** Helper class to run test code in a new thread with a Looper. */
- private abstract class LooperThread extends Thread {
- public Throwable mError = null;
- public boolean mSuccess = false;
-
- abstract void go();
-
- public void run() {
- try {
- Looper.prepare();
- go();
- Looper.loop();
- } catch (Throwable e) {
- mError = e;
- }
- }
- }
-
- @MediumTest
- public void testContentQueryMap() throws Throwable {
- LooperThread thread = new LooperThread() {
- void go() {
- ContentResolver r = getContext().getContentResolver();
- Settings.System.putString(r, "test", "Value");
- Cursor cursor = r.query(
- Settings.System.CONTENT_URI,
- new String[] {
- Settings.System.NAME,
- Settings.System.VALUE,
- }, null, null, null);
-
- final ContentQueryMap cqm = new ContentQueryMap(
- cursor, Settings.System.NAME, true, null);
- // Get the current state of the CQM. This forces a requery and means that the
- // call to getValues() below won't do a requery().
- cqm.getRows();
-
- // The cache won't notice changes until the loop runs.
- Settings.System.putString(r, "test", "New Value");
- ContentValues v = cqm.getValues("test");
- String value = v.getAsString(Settings.System.VALUE);
- assertEquals("Value", value);
-
- // Use an Observer to find out when the cache does update.
- cqm.addObserver(new Observer() {
- public void update(Observable o, Object arg) {
- // Should have the new values by now.
- ContentValues v = cqm.getValues("test");
- String value = v.getAsString(Settings.System.VALUE);
- assertEquals("New Value", value);
- Looper.myLooper().quit();
- cqm.close();
- mSuccess = true;
- }
- });
-
- // Give up after a few seconds, if it doesn't.
- new Handler().postDelayed(new Runnable() {
- public void run() {
- fail("Timed out");
- }
- }, 5000);
- }
- };
-
- thread.start();
- thread.join();
- if (thread.mError != null) throw thread.mError;
- assertTrue(thread.mSuccess);
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/CreateViewTest.java b/tests/AndroidTests/src/com/android/unit_tests/CreateViewTest.java
deleted file mode 100644
index 342094d..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/CreateViewTest.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.content.Context;
-import android.test.AndroidTestCase;
-import android.test.PerformanceTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.view.View;
-import static android.view.ViewGroup.LayoutParams.FILL_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-public class CreateViewTest extends AndroidTestCase implements PerformanceTestCase {
-
- public boolean isPerformanceOnly() {
- return false;
- }
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- return 0;
- }
-
- @SmallTest
- public void testLayout1() throws Exception {
- new CreateViewTest.ViewOne(mContext);
- }
-
- @SmallTest
- public void testLayout2() throws Exception {
- LinearLayout vert = new LinearLayout(mContext);
- vert.addView(new CreateViewTest.ViewOne(mContext),
- new LinearLayout.LayoutParams(FILL_PARENT, FILL_PARENT, 0));
- }
-
- @SmallTest
- public void testLayout3() throws Exception {
- LinearLayout vert = new LinearLayout(mContext);
-
- ViewOne one = new ViewOne(mContext);
- vert.addView(one, new LinearLayout.LayoutParams(FILL_PARENT, FILL_PARENT, 0));
-
- ViewOne two = new ViewOne(mContext);
- vert.addView(two, new LinearLayout.LayoutParams(FILL_PARENT, FILL_PARENT, 0));
-
- ViewOne three = new ViewOne(mContext);
- vert.addView(three, new LinearLayout.LayoutParams(FILL_PARENT, FILL_PARENT, 0));
-
- ViewOne four = new ViewOne(mContext);
- vert.addView(four, new LinearLayout.LayoutParams(FILL_PARENT, FILL_PARENT, 0));
-
- ViewOne five = new ViewOne(mContext);
- vert.addView(five, new LinearLayout.LayoutParams(FILL_PARENT, FILL_PARENT, 0));
-
- ViewOne six = new ViewOne(mContext);
- vert.addView(six, new LinearLayout.LayoutParams(FILL_PARENT, FILL_PARENT, 0));
- }
-
- @SmallTest
- public void testLayout4() throws Exception {
- TextView text = new TextView(mContext);
- text.setText("S");
- }
-
- @SmallTest
- public void testLayout5() throws Exception {
- TextView text = new TextView(mContext);
- text.setText("S");
-
- LinearLayout vert = new LinearLayout(mContext);
- vert.addView(text, new LinearLayout.LayoutParams(FILL_PARENT, WRAP_CONTENT, 0));
- }
-
- @SmallTest
- public void testLayout6() throws Exception {
- LinearLayout vert = new LinearLayout(mContext);
-
- TextView one = new TextView(mContext);
- one.setText("S");
- vert.addView(one, new LinearLayout.LayoutParams(FILL_PARENT, WRAP_CONTENT, 0));
-
- TextView two = new TextView(mContext);
- two.setText("M");
- vert.addView(two, new LinearLayout.LayoutParams(FILL_PARENT, WRAP_CONTENT, 0));
-
- TextView three = new TextView(mContext);
- three.setText("T");
- vert.addView(three, new LinearLayout.LayoutParams(FILL_PARENT, WRAP_CONTENT, 0));
-
- TextView four = new TextView(mContext);
- four.setText("W");
- vert.addView(four, new LinearLayout.LayoutParams(FILL_PARENT, WRAP_CONTENT, 0));
-
- TextView five = new TextView(mContext);
- five.setText("H");
- vert.addView(five, new LinearLayout.LayoutParams(FILL_PARENT, WRAP_CONTENT, 0));
-
- TextView six = new TextView(mContext);
- six.setText("F");
- vert.addView(six, new LinearLayout.LayoutParams(FILL_PARENT, WRAP_CONTENT, 0));
- }
-
- public static class ViewOne extends View {
- public ViewOne(Context context) {
- super(context);
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/CursorWindowTest.java b/tests/AndroidTests/src/com/android/unit_tests/CursorWindowTest.java
deleted file mode 100644
index d9068c8..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/CursorWindowTest.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.database.AbstractCursor;
-import android.test.suitebuilder.annotation.SmallTest;
-import com.android.internal.database.ArrayListCursor;
-import android.database.CursorWindow;
-import android.test.PerformanceTestCase;
-
-import com.google.android.collect.Lists;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Random;
-
-import junit.framework.TestCase;
-
-public class CursorWindowTest extends TestCase implements PerformanceTestCase {
- public boolean isPerformanceOnly() {
- return false;
- }
-
- // These test can only be run once.
- public int startPerformance(Intermediates intermediates) {
- return 1;
- }
-
- @SmallTest
- public void testWriteCursorToWindow() throws Exception {
- // create cursor
- String[] colNames = new String[]{"name", "number", "profit"};
- int colsize = colNames.length;
- ArrayList<ArrayList> list = createTestList(10, colsize);
- AbstractCursor cursor = new ArrayListCursor(colNames, (ArrayList<ArrayList>) list);
-
- // fill window
- CursorWindow window = new CursorWindow(false);
- cursor.fillWindow(0, window);
-
- // read from cursor window
- for (int i = 0; i < list.size(); i++) {
- ArrayList<Integer> col = list.get(i);
- for (int j = 0; j < colsize; j++) {
- String s = window.getString(i, j);
- int r2 = col.get(j);
- int r1 = Integer.parseInt(s);
- assertEquals(r2, r1);
- }
- }
-
- // test cursor window handle startpos != 0
- window.clear();
- cursor.fillWindow(1, window);
- // read from cursor from window
- for (int i = 1; i < list.size(); i++) {
- ArrayList<Integer> col = list.get(i);
- for (int j = 0; j < colsize; j++) {
- String s = window.getString(i, j);
- int r2 = col.get(j);
- int r1 = Integer.parseInt(s);
- assertEquals(r2, r1);
- }
- }
-
- // Clear the window and make sure it's empty
- window.clear();
- assertEquals(0, window.getNumRows());
- }
-
- @SmallTest
- public void testValuesLocalWindow() {
- doTestValues(new CursorWindow(true));
- }
-
- @SmallTest
- public void testValuesRemoteWindow() {
- doTestValues(new CursorWindow(false));
- }
-
- private void doTestValues(CursorWindow window) {
- assertTrue(window.setNumColumns(7));
- assertTrue(window.allocRow());
- double db1 = 1.26;
- assertTrue(window.putDouble(db1, 0, 0));
- double db2 = window.getDouble(0, 0);
- assertEquals(db1, db2);
-
- long int1 = Long.MAX_VALUE;
- assertTrue(window.putLong(int1, 0, 1));
- long int2 = window.getLong(0, 1);
- assertEquals(int1, int2);
-
- assertTrue(window.putString("1198032740000", 0, 3));
- assertEquals("1198032740000", window.getString(0, 3));
- assertEquals(1198032740000L, window.getLong(0, 3));
-
- assertTrue(window.putString(Long.toString(1198032740000L), 0, 3));
- assertEquals(Long.toString(1198032740000L), window.getString(0, 3));
- assertEquals(1198032740000L, window.getLong(0, 3));
-
- assertTrue(window.putString(Double.toString(42.0), 0, 4));
- assertEquals(Double.toString(42.0), window.getString(0, 4));
- assertEquals(42.0, window.getDouble(0, 4));
-
- // put blob
- byte[] blob = new byte[1000];
- byte value = 99;
- Arrays.fill(blob, value);
- assertTrue(window.putBlob(blob, 0, 6));
- assertTrue(Arrays.equals(blob, window.getBlob(0, 6)));
- }
-
- @SmallTest
- public void testNull() {
- CursorWindow window = getOneByOneWindow();
-
- // Put in a null value and read it back as various types
- assertTrue(window.putNull(0, 0));
- assertNull(window.getString(0, 0));
- assertEquals(0, window.getLong(0, 0));
- assertEquals(0.0, window.getDouble(0, 0));
- assertNull(window.getBlob(0, 0));
- }
-
- @SmallTest
- public void testEmptyString() {
- CursorWindow window = getOneByOneWindow();
-
- // put size 0 string and read it back as various types
- assertTrue(window.putString("", 0, 0));
- assertEquals("", window.getString(0, 0));
- assertEquals(0, window.getLong(0, 0));
- assertEquals(0.0, window.getDouble(0, 0));
- }
-
- private CursorWindow getOneByOneWindow() {
- CursorWindow window = new CursorWindow(false);
- assertTrue(window.setNumColumns(1));
- assertTrue(window.allocRow());
- return window;
- }
-
- private static ArrayList<ArrayList> createTestList(int rows, int cols) {
- ArrayList<ArrayList> list = Lists.newArrayList();
- Random generator = new Random();
-
- for (int i = 0; i < rows; i++) {
- ArrayList<Integer> col = Lists.newArrayList();
- list.add(col);
- for (int j = 0; j < cols; j++) {
- // generate random number
- Integer r = generator.nextInt();
- col.add(r);
- }
- }
- return list;
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/DatabaseCursorTest.java b/tests/AndroidTests/src/com/android/unit_tests/DatabaseCursorTest.java
deleted file mode 100644
index 5df499d..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/DatabaseCursorTest.java
+++ /dev/null
@@ -1,626 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.content.ContentValues;
-import android.database.Cursor;
-import android.database.CursorIndexOutOfBoundsException;
-import android.database.DataSetObserver;
-import android.database.DatabaseUtils;
-import android.database.sqlite.SQLiteCursor;
-import android.database.sqlite.SQLiteCursorDriver;
-import android.database.sqlite.SQLiteDatabase;
-import android.database.sqlite.SQLiteQuery;
-import android.database.sqlite.SQLiteStatement;
-import android.os.Looper;
-import android.test.PerformanceTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.test.suitebuilder.annotation.Suppress;
-import android.util.Log;
-
-import java.io.File;
-import java.util.Arrays;
-import java.util.Random;
-
-import junit.framework.TestCase;
-
-public class DatabaseCursorTest extends TestCase implements PerformanceTestCase {
-
- private static final String sString1 = "this is a test";
- private static final String sString2 = "and yet another test";
- private static final String sString3 = "this string is a little longer, but still a test";
-
- private static final int CURRENT_DATABASE_VERSION = 42;
- private SQLiteDatabase mDatabase;
- private File mDatabaseFile;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mDatabaseFile = new File("/sqlite_stmt_journals", "database_test.db");
- if (mDatabaseFile.exists()) {
- mDatabaseFile.delete();
- }
- mDatabase = SQLiteDatabase.openOrCreateDatabase(mDatabaseFile.getPath(), null);
- assertNotNull(mDatabase);
- mDatabase.setVersion(CURRENT_DATABASE_VERSION);
- }
-
- @Override
- protected void tearDown() throws Exception {
- mDatabase.close();
- mDatabaseFile.delete();
- super.tearDown();
- }
-
- public boolean isPerformanceOnly() {
- return false;
- }
-
- // These test can only be run once.
- public int startPerformance(Intermediates intermediates) {
- return 1;
- }
-
- private void populateDefaultTable() {
- mDatabase.execSQL("CREATE TABLE test (_id INTEGER PRIMARY KEY, data TEXT);");
-
- mDatabase.execSQL("INSERT INTO test (data) VALUES ('" + sString1 + "');");
- mDatabase.execSQL("INSERT INTO test (data) VALUES ('" + sString2 + "');");
- mDatabase.execSQL("INSERT INTO test (data) VALUES ('" + sString3 + "');");
- }
-
- @MediumTest
- public void testCursorUpdate() {
- mDatabase.execSQL(
- "CREATE TABLE test (_id INTEGER PRIMARY KEY, d INTEGER, s INTEGER);");
- for(int i = 0; i < 20; i++) {
- mDatabase.execSQL("INSERT INTO test (d, s) VALUES (" + i +
- "," + i%2 + ");");
- }
-
- Cursor c = mDatabase.query("test", null, "s = 0", null, null, null, null);
- int dCol = c.getColumnIndexOrThrow("d");
- int sCol = c.getColumnIndexOrThrow("s");
-
- int count = 0;
- while (c.moveToNext()) {
- assertTrue(c.updateInt(dCol, 3));
- count++;
- }
- assertEquals(10, count);
-
- assertTrue(c.commitUpdates());
-
- assertTrue(c.requery());
-
- count = 0;
- while (c.moveToNext()) {
- assertEquals(3, c.getInt(dCol));
- count++;
- }
-
- assertEquals(10, count);
- assertTrue(c.moveToFirst());
- assertTrue(c.deleteRow());
- assertEquals(9, c.getCount());
- c.close();
- }
-
- @MediumTest
- public void testBlob() throws Exception {
- // create table
- mDatabase.execSQL(
- "CREATE TABLE test (_id INTEGER PRIMARY KEY, s TEXT, d REAL, l INTEGER, b BLOB);");
- // insert blob
- Object[] args = new Object[4];
-
- byte[] blob = new byte[1000];
- byte value = 99;
- Arrays.fill(blob, value);
- args[3] = blob;
-
- String s = new String("text");
- args[0] = s;
- Double d = 99.9;
- args[1] = d;
- Long l = (long)1000;
- args[2] = l;
-
- String sql = "INSERT INTO test (s, d, l, b) VALUES (?,?,?,?)";
- mDatabase.execSQL(sql, args);
- // use cursor to access blob
- Cursor c = mDatabase.query("test", null, null, null, null, null, null);
- c.moveToNext();
- ContentValues cv = new ContentValues();
- DatabaseUtils.cursorRowToContentValues(c, cv);
-
- int bCol = c.getColumnIndexOrThrow("b");
- int sCol = c.getColumnIndexOrThrow("s");
- int dCol = c.getColumnIndexOrThrow("d");
- int lCol = c.getColumnIndexOrThrow("l");
- byte[] cBlob = c.getBlob(bCol);
- assertTrue(Arrays.equals(blob, cBlob));
- assertEquals(s, c.getString(sCol));
- assertEquals((double)d, c.getDouble(dCol));
- assertEquals((long)l, c.getLong(lCol));
-
- // new byte[]
- byte[] newblob = new byte[1000];
- value = 98;
- Arrays.fill(blob, value);
-
- c.updateBlob(bCol, newblob);
- cBlob = c.getBlob(bCol);
- assertTrue(Arrays.equals(newblob, cBlob));
-
- // commit
- assertTrue(c.commitUpdates());
- assertTrue(c.requery());
- c.moveToNext();
- cBlob = c.getBlob(bCol);
- assertTrue(Arrays.equals(newblob, cBlob));
- c.close();
- }
-
- @MediumTest
- public void testRealColumns() throws Exception {
- mDatabase.execSQL("CREATE TABLE test (_id INTEGER PRIMARY KEY, data REAL);");
- ContentValues values = new ContentValues();
- values.put("data", 42.11);
- long id = mDatabase.insert("test", "data", values);
- assertTrue(id > 0);
- Cursor c = mDatabase.rawQuery("SELECT data FROM test", null);
- assertNotNull(c);
- assertTrue(c.moveToFirst());
- assertEquals(42.11, c.getDouble(0));
- c.close();
- }
-
- @MediumTest
- public void testCursor1() throws Exception {
- populateDefaultTable();
-
- Cursor c = mDatabase.query("test", null, null, null, null, null, null);
-
- int dataColumn = c.getColumnIndexOrThrow("data");
-
- // The cursor should ignore text before the last period when looking for a column. (This
- // is a temporary hack in all implementations of getColumnIndex.)
- int dataColumn2 = c.getColumnIndexOrThrow("junk.data");
- assertEquals(dataColumn, dataColumn2);
-
- assertSame(3, c.getCount());
-
- assertTrue(c.isBeforeFirst());
-
- try {
- c.getInt(0);
- fail("CursorIndexOutOfBoundsException expected");
- } catch (CursorIndexOutOfBoundsException ex) {
- // expected
- }
-
- c.moveToNext();
- assertEquals(1, c.getInt(0));
-
- String s = c.getString(dataColumn);
- assertEquals(sString1, s);
-
- c.moveToNext();
- s = c.getString(dataColumn);
- assertEquals(sString2, s);
-
- c.moveToNext();
- s = c.getString(dataColumn);
- assertEquals(sString3, s);
-
- c.moveToPosition(-1);
- c.moveToNext();
- s = c.getString(dataColumn);
- assertEquals(sString1, s);
-
- c.moveToPosition(2);
- s = c.getString(dataColumn);
- assertEquals(sString3, s);
-
- int i;
-
- for (c.moveToFirst(), i = 0; !c.isAfterLast(); c.moveToNext(), i++) {
- c.getInt(0);
- }
-
- assertEquals(3, i);
-
- try {
- c.getInt(0);
- fail("CursorIndexOutOfBoundsException expected");
- } catch (CursorIndexOutOfBoundsException ex) {
- // expected
- }
- c.close();
- }
-
- @MediumTest
- public void testCursor2() throws Exception {
- populateDefaultTable();
-
- Cursor c = mDatabase.query("test", null, "_id > 1000", null, null, null, null);
- assertEquals(0, c.getCount());
- assertTrue(c.isBeforeFirst());
-
- try {
- c.getInt(0);
- fail("CursorIndexOutOfBoundsException expected");
- } catch (CursorIndexOutOfBoundsException ex) {
- // expected
- }
-
- int i;
- for (c.moveToFirst(), i = 0; !c.isAfterLast(); c.moveToNext(), i++) {
- c.getInt(0);
- }
- assertEquals(0, i);
- try {
- c.getInt(0);
- fail("CursorIndexOutOfBoundsException expected");
- } catch (CursorIndexOutOfBoundsException ex) {
- // expected
- }
- c.close();
- }
-
- @MediumTest
- public void testLargeField() throws Exception {
- mDatabase.execSQL("CREATE TABLE test (_id INTEGER PRIMARY KEY, data TEXT);");
-
- StringBuilder sql = new StringBuilder(2100);
- sql.append("INSERT INTO test (data) VALUES ('");
- Random random = new Random(System.currentTimeMillis());
- StringBuilder randomString = new StringBuilder(1979);
- for (int i = 0; i < 1979; i++) {
- randomString.append((random.nextInt() & 0xf) % 10);
- }
- sql.append(randomString);
- sql.append("');");
- mDatabase.execSQL(sql.toString());
-
- Cursor c = mDatabase.query("test", null, null, null, null, null, null);
- assertNotNull(c);
- assertEquals(1, c.getCount());
-
- assertTrue(c.moveToFirst());
- assertEquals(0, c.getPosition());
- String largeString = c.getString(c.getColumnIndexOrThrow("data"));
- assertNotNull(largeString);
- assertEquals(randomString.toString(), largeString);
- c.close();
- }
-
- class TestObserver extends DataSetObserver {
- int total;
- SQLiteCursor c;
- boolean quit = false;
- public TestObserver(int total_, SQLiteCursor cursor) {
- c = cursor;
- total = total_;
- }
-
- @Override
- public void onChanged() {
- int count = c.getCount();
- if (total == count) {
- int i = 0;
- while (c.moveToNext()) {
- assertEquals(i, c.getInt(1));
- i++;
- }
- assertEquals(count, i);
- quit = true;
- Looper.myLooper().quit();
- }
- }
-
- @Override
- public void onInvalidated() {
- }
- }
-
- //@Large
- @Suppress
- public void testLoadingThreadDelayRegisterData() throws Exception {
- mDatabase.execSQL("CREATE TABLE test (_id INTEGER PRIMARY KEY, data INT);");
-
- final int count = 505;
- String sql = "INSERT INTO test (data) VALUES (?);";
- SQLiteStatement s = mDatabase.compileStatement(sql);
- for (int i = 0; i < count; i++) {
- s.bindLong(1, i);
- s.execute();
- }
-
- int maxRead = 500;
- int initialRead = 5;
- SQLiteCursor c = (SQLiteCursor)mDatabase.rawQuery("select * from test;",
- null, initialRead, maxRead);
-
- TestObserver observer = new TestObserver(count, c);
- c.getCount();
- c.registerDataSetObserver(observer);
- if (!observer.quit) {
- Looper.loop();
- }
- c.close();
- }
-
- @LargeTest
- public void testLoadingThread() throws Exception {
- mDatabase.execSQL("CREATE TABLE test (_id INTEGER PRIMARY KEY, data INT);");
-
- final int count = 50000;
- String sql = "INSERT INTO test (data) VALUES (?);";
- SQLiteStatement s = mDatabase.compileStatement(sql);
- for (int i = 0; i < count; i++) {
- s.bindLong(1, i);
- s.execute();
- }
-
- int maxRead = 1000;
- int initialRead = 5;
- SQLiteCursor c = (SQLiteCursor)mDatabase.rawQuery("select * from test;",
- null, initialRead, maxRead);
-
- TestObserver observer = new TestObserver(count, c);
- c.registerDataSetObserver(observer);
- c.getCount();
-
- Looper.loop();
- c.close();
- }
-
- @LargeTest
- public void testLoadingThreadClose() throws Exception {
- mDatabase.execSQL("CREATE TABLE test (_id INTEGER PRIMARY KEY, data INT);");
-
- final int count = 1000;
- String sql = "INSERT INTO test (data) VALUES (?);";
- SQLiteStatement s = mDatabase.compileStatement(sql);
- for (int i = 0; i < count; i++) {
- s.bindLong(1, i);
- s.execute();
- }
-
- int maxRead = 11;
- int initialRead = 5;
- SQLiteCursor c = (SQLiteCursor)mDatabase.rawQuery("select * from test;",
- null, initialRead, maxRead);
-
- TestObserver observer = new TestObserver(count, c);
- c.registerDataSetObserver(observer);
- c.getCount();
- c.close();
- }
-
- @LargeTest
- public void testLoadingThreadDeactivate() throws Exception {
- mDatabase.execSQL("CREATE TABLE test (_id INTEGER PRIMARY KEY, data INT);");
-
- final int count = 1000;
- String sql = "INSERT INTO test (data) VALUES (?);";
- SQLiteStatement s = mDatabase.compileStatement(sql);
- for (int i = 0; i < count; i++) {
- s.bindLong(1, i);
- s.execute();
- }
-
- int maxRead = 11;
- int initialRead = 5;
- SQLiteCursor c = (SQLiteCursor)mDatabase.rawQuery("select * from test;",
- null, initialRead, maxRead);
-
- TestObserver observer = new TestObserver(count, c);
- c.registerDataSetObserver(observer);
- c.getCount();
- c.deactivate();
- c.close();
- }
-
- @LargeTest
- public void testManyRowsLong() throws Exception {
- mDatabase.execSQL("CREATE TABLE test (_id INTEGER PRIMARY KEY, data INT);");
-
- final int count = 36799;
- for (int i = 0; i < count; i++) {
- mDatabase.execSQL("INSERT INTO test (data) VALUES (" + i + ");");
- }
-
- Cursor c = mDatabase.query("test", new String[]{"data"}, null, null, null, null, null);
- assertNotNull(c);
-
- int i = 0;
- while (c.moveToNext()) {
- assertEquals(i, c.getInt(0));
- i++;
- }
- assertEquals(count, i);
- assertEquals(count, c.getCount());
-
- Log.d("testManyRows", "count " + Integer.toString(i));
- c.close();
- }
-
- @LargeTest
- public void testManyRowsTxt() throws Exception {
- mDatabase.execSQL("CREATE TABLE test (_id INTEGER PRIMARY KEY, data TEXT);");
- StringBuilder sql = new StringBuilder(2100);
- sql.append("INSERT INTO test (data) VALUES ('");
- Random random = new Random(System.currentTimeMillis());
- StringBuilder randomString = new StringBuilder(1979);
- for (int i = 0; i < 1979; i++) {
- randomString.append((random.nextInt() & 0xf) % 10);
- }
- sql.append(randomString);
- sql.append("');");
-
- // if cursor window size changed, adjust this value too
- final int count = 600; // more than two fillWindow needed
- for (int i = 0; i < count; i++) {
- mDatabase.execSQL(sql.toString());
- }
-
- Cursor c = mDatabase.query("test", new String[]{"data"}, null, null, null, null, null);
- assertNotNull(c);
-
- int i = 0;
- while (c.moveToNext()) {
- assertEquals(randomString.toString(), c.getString(0));
- i++;
- }
- assertEquals(count, i);
- assertEquals(count, c.getCount());
- c.close();
- }
-
- @LargeTest
- public void testManyRowsTxtLong() throws Exception {
- mDatabase.execSQL("CREATE TABLE test (_id INTEGER PRIMARY KEY, txt TEXT, data INT);");
-
- Random random = new Random(System.currentTimeMillis());
- StringBuilder randomString = new StringBuilder(1979);
- for (int i = 0; i < 1979; i++) {
- randomString.append((random.nextInt() & 0xf) % 10);
- }
-
- // if cursor window size changed, adjust this value too
- final int count = 600;
- for (int i = 0; i < count; i++) {
- StringBuilder sql = new StringBuilder(2100);
- sql.append("INSERT INTO test (txt, data) VALUES ('");
- sql.append(randomString);
- sql.append("','");
- sql.append(i);
- sql.append("');");
- mDatabase.execSQL(sql.toString());
- }
-
- Cursor c = mDatabase.query("test", new String[]{"txt", "data"}, null, null, null, null, null);
- assertNotNull(c);
-
- int i = 0;
- while (c.moveToNext()) {
- assertEquals(randomString.toString(), c.getString(0));
- assertEquals(i, c.getInt(1));
- i++;
- }
- assertEquals(count, i);
- assertEquals(count, c.getCount());
- c.close();
- }
-
- @MediumTest
- public void testRequery() throws Exception {
- populateDefaultTable();
-
- Cursor c = mDatabase.rawQuery("SELECT * FROM test", null);
- assertNotNull(c);
- assertEquals(3, c.getCount());
- c.deactivate();
- c.requery();
- assertEquals(3, c.getCount());
- c.close();
- }
-
- @MediumTest
- public void testRequeryWithSelection() throws Exception {
- populateDefaultTable();
-
- Cursor c = mDatabase.rawQuery("SELECT data FROM test WHERE data = '" + sString1 + "'",
- null);
- assertNotNull(c);
- assertEquals(1, c.getCount());
- assertTrue(c.moveToFirst());
- assertEquals(sString1, c.getString(0));
- c.deactivate();
- c.requery();
- assertEquals(1, c.getCount());
- assertTrue(c.moveToFirst());
- assertEquals(sString1, c.getString(0));
- c.close();
- }
-
- @MediumTest
- public void testRequeryWithSelectionArgs() throws Exception {
- populateDefaultTable();
-
- Cursor c = mDatabase.rawQuery("SELECT data FROM test WHERE data = ?",
- new String[]{sString1});
- assertNotNull(c);
- assertEquals(1, c.getCount());
- assertTrue(c.moveToFirst());
- assertEquals(sString1, c.getString(0));
- c.deactivate();
- c.requery();
- assertEquals(1, c.getCount());
- assertTrue(c.moveToFirst());
- assertEquals(sString1, c.getString(0));
- c.close();
- }
-
- @MediumTest
- public void testRequeryWithAlteredSelectionArgs() throws Exception {
- /**
- * Test the ability of a subclass of SQLiteCursor to change its query arguments.
- */
- populateDefaultTable();
-
- SQLiteDatabase.CursorFactory factory = new SQLiteDatabase.CursorFactory() {
- public Cursor newCursor(
- SQLiteDatabase db, SQLiteCursorDriver masterQuery, String editTable,
- SQLiteQuery query) {
- return new SQLiteCursor(db, masterQuery, editTable, query) {
- @Override
- public boolean requery() {
- setSelectionArguments(new String[]{"2"});
- return super.requery();
- }
- };
- }
- };
- Cursor c = mDatabase.rawQueryWithFactory(
- factory, "SELECT data FROM test WHERE _id <= ?", new String[]{"1"},
- null);
- assertNotNull(c);
- assertEquals(1, c.getCount());
- assertTrue(c.moveToFirst());
- assertEquals(sString1, c.getString(0));
-
- // Our hacked requery() changes the query arguments in the cursor.
- c.requery();
-
- assertEquals(2, c.getCount());
- assertTrue(c.moveToFirst());
- assertEquals(sString1, c.getString(0));
- assertTrue(c.moveToNext());
- assertEquals(sString2, c.getString(0));
-
- // Test that setting query args on a deactivated cursor also works.
- c.deactivate();
- c.requery();
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/DatabaseGeneralTest.java b/tests/AndroidTests/src/com/android/unit_tests/DatabaseGeneralTest.java
deleted file mode 100644
index b004c93..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/DatabaseGeneralTest.java
+++ /dev/null
@@ -1,871 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.content.ContentValues;
-import android.database.ContentObserver;
-import android.database.Cursor;
-import android.database.DatabaseUtils;
-import android.database.CharArrayBuffer;
-import android.database.sqlite.SQLiteDatabase;
-import android.database.sqlite.SQLiteStatement;
-import android.os.Handler;
-import android.os.Parcel;
-import android.test.PerformanceTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.util.Log;
-
-import java.io.File;
-import java.io.UnsupportedEncodingException;
-import java.text.Collator;
-import java.util.Arrays;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import static android.database.DatabaseUtils.InsertHelper.TABLE_INFO_PRAGMA_COLUMNNAME_INDEX;
-import static android.database.DatabaseUtils.InsertHelper.TABLE_INFO_PRAGMA_DEFAULT_INDEX;
-
-public class DatabaseGeneralTest extends TestCase implements PerformanceTestCase {
-
- private static final String sString1 = "this is a test";
- private static final String sString2 = "and yet another test";
- private static final String sString3 = "this string is a little longer, but still a test";
- private static final String PHONE_NUMBER = "16175551212";
-
- private static final int CURRENT_DATABASE_VERSION = 42;
- private SQLiteDatabase mDatabase;
- private File mDatabaseFile;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mDatabaseFile = new File("/sqlite_stmt_journals", "database_test.db");
- if (mDatabaseFile.exists()) {
- mDatabaseFile.delete();
- }
- mDatabase = SQLiteDatabase.openOrCreateDatabase(mDatabaseFile.getPath(), null);
- assertNotNull(mDatabase);
- mDatabase.setVersion(CURRENT_DATABASE_VERSION);
- }
-
- @Override
- protected void tearDown() throws Exception {
- mDatabase.close();
- mDatabaseFile.delete();
- super.tearDown();
- }
-
- public boolean isPerformanceOnly() {
- return false;
- }
-
- // These test can only be run once.
- public int startPerformance(Intermediates intermediates) {
- return 1;
- }
-
- private void populateDefaultTable() {
- mDatabase.execSQL("CREATE TABLE test (_id INTEGER PRIMARY KEY, data TEXT);");
-
- mDatabase.execSQL("INSERT INTO test (data) VALUES ('" + sString1 + "');");
- mDatabase.execSQL("INSERT INTO test (data) VALUES ('" + sString2 + "');");
- mDatabase.execSQL("INSERT INTO test (data) VALUES ('" + sString3 + "');");
- }
-
- @MediumTest
- public void testVersion() throws Exception {
- assertEquals(CURRENT_DATABASE_VERSION, mDatabase.getVersion());
- mDatabase.setVersion(11);
- assertEquals(11, mDatabase.getVersion());
- }
-
- @MediumTest
- public void testUpdate() throws Exception {
- populateDefaultTable();
-
- ContentValues values = new ContentValues(1);
- values.put("data", "this is an updated test");
- assertEquals(1, mDatabase.update("test", values, "_id=1", null));
- Cursor c = mDatabase.query("test", null, "_id=1", null, null, null, null);
- assertNotNull(c);
- assertEquals(1, c.getCount());
- c.moveToFirst();
- String value = c.getString(c.getColumnIndexOrThrow("data"));
- assertEquals("this is an updated test", value);
- }
-
- @MediumTest
- public void testPhoneNumbersEqual() throws Exception {
- mDatabase.execSQL("CREATE TABLE phones (num TEXT);");
- mDatabase.execSQL("INSERT INTO phones (num) VALUES ('911');");
- mDatabase.execSQL("INSERT INTO phones (num) VALUES ('5555');");
- mDatabase.execSQL("INSERT INTO phones (num) VALUES ('+" + PHONE_NUMBER + "');");
-
- String number;
- Cursor c;
-
- c = mDatabase.query("phones", null,
- "PHONE_NUMBERS_EQUAL(num, '504-555-7683')", null, null, null, null);
- assertTrue(c == null || c.getCount() == 0);
- c.close();
-
- c = mDatabase.query("phones", null,
- "PHONE_NUMBERS_EQUAL(num, '911')", null, null, null, null);
- assertNotNull(c);
- assertEquals(1, c.getCount());
- c.moveToFirst();
- number = c.getString(c.getColumnIndexOrThrow("num"));
- assertEquals("911", number);
- c.close();
-
- c = mDatabase.query("phones", null,
- "PHONE_NUMBERS_EQUAL(num, '5555')", null, null, null, null);
- assertNotNull(c);
- assertEquals(1, c.getCount());
- c.moveToFirst();
- number = c.getString(c.getColumnIndexOrThrow("num"));
- assertEquals("5555", number);
- c.close();
-
- c = mDatabase.query("phones", null,
- "PHONE_NUMBERS_EQUAL(num, '180055555555')", null, null, null, null);
- assertTrue(c == null || c.getCount() == 0);
- c.close();
-
- c = mDatabase.query("phones", null,
- "PHONE_NUMBERS_EQUAL(num, '+" + PHONE_NUMBER + "')", null, null, null, null);
- assertNotNull(c);
- assertEquals(1, c.getCount());
- c.moveToFirst();
- number = c.getString(c.getColumnIndexOrThrow("num"));
- assertEquals("+" + PHONE_NUMBER, number);
- c.close();
-
- c = mDatabase.query("phones", null,
- "PHONE_NUMBERS_EQUAL(num, '+1 (617).555-1212')", null, null, null, null);
- assertNotNull(c);
- assertEquals(1, c.getCount());
- c.moveToFirst();
- number = c.getString(c.getColumnIndexOrThrow("num"));
- assertEquals("+" + PHONE_NUMBER, number);
- c.close();
-
- c = mDatabase.query("phones", null,
- "PHONE_NUMBERS_EQUAL(num, '+1 (617).555-1212p1234')", null, null, null, null);
- assertNotNull(c);
- assertEquals(1, c.getCount());
- c.moveToFirst();
- number = c.getString(c.getColumnIndexOrThrow("num"));
- assertEquals("+" + PHONE_NUMBER, number);
- c.close();
-
- c = mDatabase.query("phones", null,
- "PHONE_NUMBERS_EQUAL(num, '" + PHONE_NUMBER + "')", null, null, null, null);
- assertNotNull(c);
- assertEquals(1, c.getCount());
- c.moveToFirst();
- number = c.getString(c.getColumnIndexOrThrow("num"));
- assertEquals("+" + PHONE_NUMBER, number);
- c.close();
-
- c = mDatabase.query("phones", null,
- "PHONE_NUMBERS_EQUAL(num, '5551212')", null, null, null, null);
- assertNotNull(c);
- assertEquals(1, c.getCount());
- c.moveToFirst();
- number = c.getString(c.getColumnIndexOrThrow("num"));
- assertEquals("+" + PHONE_NUMBER, number);
- c.close();
-
- c = mDatabase.query("phones", null,
- "PHONE_NUMBERS_EQUAL(num, '011" + PHONE_NUMBER + "')", null, null, null, null);
- assertNotNull(c);
- assertEquals(1, c.getCount());
- c.moveToFirst();
- number = c.getString(c.getColumnIndexOrThrow("num"));
- assertEquals("+" + PHONE_NUMBER, number);
- c.close();
-
- c = mDatabase.query("phones", null,
- "PHONE_NUMBERS_EQUAL(num, '00" + PHONE_NUMBER + "')", null, null, null, null);
- assertNotNull(c);
- assertEquals(1, c.getCount());
- c.moveToFirst();
- number = c.getString(c.getColumnIndexOrThrow("num"));
- assertEquals("+" + PHONE_NUMBER, number);
- c.close();
- }
-
- /**
- * Tests international matching issues for the PHONE_NUMBERS_EQUAL function.
- *
- * @throws Exception
- */
- public void testPhoneNumbersEqualInternationl() throws Exception {
- Cursor c;
- String[] phoneNumbers = new String[2];
-
- // Russian trunk digit
- phoneNumbers[0] = "+79161234567"; // globablly dialable number
- phoneNumbers[1] = "89161234567"; // in-country dialable number
- c = mDatabase.rawQuery(
- "SELECT CASE WHEN PHONE_NUMBERS_EQUAL(?, ?) THEN 'equal' ELSE 'not equal' END",
- phoneNumbers);
- assertTrue(c.moveToFirst());
- assertEquals("equal", c.getString(0));
- c.close();
-
- // French trunk digit
- phoneNumbers[0] = "+33123456789"; // globablly dialable number
- phoneNumbers[1] = "0123456789"; // in-country dialable number
- c = mDatabase.rawQuery(
- "SELECT CASE WHEN PHONE_NUMBERS_EQUAL(?, ?) THEN 'equal' ELSE 'not equal' END",
- phoneNumbers);
- assertTrue(c.moveToFirst());
- assertEquals("equal", c.getString(0));
- c.close();
-
-
- // Trunk digit for city codes in the Netherlands
- phoneNumbers[0] = "+31771234567"; // globablly dialable number
- phoneNumbers[1] = "0771234567"; // in-country dialable number
- c = mDatabase.rawQuery(
- "SELECT CASE WHEN PHONE_NUMBERS_EQUAL(?, ?) THEN 'equal' ELSE 'not equal' END",
- phoneNumbers);
- assertTrue(c.moveToFirst());
- assertEquals("equal", c.getString(0));
- c.close();
-
- // Test broken caller ID seen on call from Thailand to the US
- phoneNumbers[0] = "+66811234567"; // in address book
- phoneNumbers[1] = "166811234567"; // came in from the network
- c = mDatabase.rawQuery(
- "SELECT CASE WHEN PHONE_NUMBERS_EQUAL(?, ?) THEN 'equal' ELSE 'not equal' END",
- phoneNumbers);
- assertTrue(c.moveToFirst());
- assertEquals("equal", c.getString(0));
- c.close();
-
- // Test the same in-country number with different country codes
- phoneNumbers[0] = "+33123456789";
- phoneNumbers[1] = "+1123456789";
- c = mDatabase.rawQuery(
- "SELECT CASE WHEN PHONE_NUMBERS_EQUAL(?, ?) THEN 'equal' ELSE 'not equal' END",
- phoneNumbers);
- assertTrue(c.moveToFirst());
- assertEquals("not equal", c.getString(0));
- c.close();
-
- // Test one number with country code and the other without
- phoneNumbers[0] = "5125551212";
- phoneNumbers[1] = "+15125551212";
- c = mDatabase.rawQuery(
- "SELECT CASE WHEN PHONE_NUMBERS_EQUAL(?, ?) THEN 'equal' ELSE 'not equal' END",
- phoneNumbers);
- assertTrue(c.moveToFirst());
- assertEquals("equal", c.getString(0));
- c.close();
-
- // Test two NANP numbers that only differ in the area code
- phoneNumbers[0] = "5125551212";
- phoneNumbers[1] = "6505551212";
- c = mDatabase.rawQuery(
- "SELECT CASE WHEN PHONE_NUMBERS_EQUAL(?, ?) THEN 'equal' ELSE 'not equal' END",
- phoneNumbers);
- assertTrue(c.moveToFirst());
- assertEquals("not equal", c.getString(0));
- c.close();
- }
-
- @MediumTest
- public void testCopyString() throws Exception {
- mDatabase.execSQL("CREATE TABLE guess (numi INTEGER, numf FLOAT, str TEXT);");
- mDatabase.execSQL(
- "INSERT INTO guess (numi,numf,str) VALUES (0,0.0,'ZoomZoomZoomZoom');");
- mDatabase.execSQL("INSERT INTO guess (numi,numf,str) VALUES (2000000000,3.1415926535,'');");
- String chinese = "\u4eac\u4ec5 \u5c3d\u5f84\u60ca";
- String[] arr = new String[1];
- arr[0] = chinese;
- mDatabase.execSQL("INSERT INTO guess (numi,numf,str) VALUES (-32768,-1.0,?)", arr);
-
- Cursor c;
-
- c = mDatabase.rawQuery("SELECT * FROM guess", null);
-
- c.moveToFirst();
-
- CharArrayBuffer buf = new CharArrayBuffer(14);
-
- String compareTo = c.getString(c.getColumnIndexOrThrow("numi"));
- int numiIdx = c.getColumnIndexOrThrow("numi");
- int numfIdx = c.getColumnIndexOrThrow("numf");
- int strIdx = c.getColumnIndexOrThrow("str");
-
- c.copyStringToBuffer(numiIdx, buf);
- assertEquals(1, buf.sizeCopied);
- assertEquals(compareTo, new String(buf.data, 0, buf.sizeCopied));
-
- c.copyStringToBuffer(strIdx, buf);
- assertEquals("ZoomZoomZoomZoom", new String(buf.data, 0, buf.sizeCopied));
-
- c.moveToNext();
- compareTo = c.getString(numfIdx);
-
- c.copyStringToBuffer(numfIdx, buf);
- assertEquals(compareTo, new String(buf.data, 0, buf.sizeCopied));
- c.copyStringToBuffer(strIdx, buf);
- assertEquals(0, buf.sizeCopied);
-
- c.moveToNext();
- c.copyStringToBuffer(numfIdx, buf);
- assertEquals(-1.0, Double.valueOf(
- new String(buf.data, 0, buf.sizeCopied)).doubleValue());
-
- c.copyStringToBuffer(strIdx, buf);
- compareTo = c.getString(strIdx);
- assertEquals(chinese, compareTo);
-
- assertEquals(chinese, new String(buf.data, 0, buf.sizeCopied));
- c.close();
- }
-
- @MediumTest
- public void testSchemaChange1() throws Exception {
- SQLiteDatabase db1 = mDatabase;
- Cursor cursor;
-
- db1.execSQL("CREATE TABLE db1 (_id INTEGER PRIMARY KEY, data TEXT);");
-
- cursor = db1.query("db1", null, null, null, null, null, null);
- assertNotNull("Cursor is null", cursor);
-
- db1.execSQL("CREATE TABLE db2 (_id INTEGER PRIMARY KEY, data TEXT);");
-
- assertEquals(0, cursor.getCount());
- cursor.deactivate();
- }
-
- @MediumTest
- public void testSchemaChange2() throws Exception {
- SQLiteDatabase db1 = mDatabase;
- SQLiteDatabase db2 = SQLiteDatabase.openOrCreateDatabase(mDatabaseFile, null);
- Cursor cursor;
-
- db1.execSQL("CREATE TABLE db1 (_id INTEGER PRIMARY KEY, data TEXT);");
-
- cursor = db1.query("db1", null, null, null, null, null, null);
- assertNotNull("Cursor is null", cursor);
- assertEquals(0, cursor.getCount());
- cursor.deactivate();
- // this cause exception because we're still using sqlite_prepate16 and not
- // sqlite_prepare16_v2. The v2 variant added the ability to check the
- // schema version and handle the case when the schema has changed
- // Marco Nelissen claim it was 2x slower to compile SQL statements so
- // I reverted back to the v1 variant.
- /* db2.execSQL("CREATE TABLE db2 (_id INTEGER PRIMARY KEY, data TEXT);");
-
- cursor = db1.query("db1", null, null, null, null, null, null);
- assertNotNull("Cursor is null", cursor);
- assertEquals(0, cursor.count());
- cursor.deactivate();
- */
- }
-
- @MediumTest
- public void testSchemaChange3() throws Exception {
- SQLiteDatabase db1 = mDatabase;
- SQLiteDatabase db2 = SQLiteDatabase.openOrCreateDatabase(mDatabaseFile, null);
- Cursor cursor;
-
-
- db1.execSQL("CREATE TABLE db1 (_id INTEGER PRIMARY KEY, data TEXT);");
- db1.execSQL("INSERT INTO db1 (data) VALUES ('test');");
-
- cursor = db1.query("db1", null, null, null, null, null, null);
- // this cause exception because we're still using sqlite_prepate16 and not
- // sqlite_prepare16_v2. The v2 variant added the ability to check the
- // schema version and handle the case when the schema has changed
- // Marco Nelissen claim it was 2x slower to compile SQL statements so
- // I reverted back to the v1 variant.
- /* db2.execSQL("CREATE TABLE db2 (_id INTEGER PRIMARY KEY, data TEXT);");
-
- assertNotNull("Cursor is null", cursor);
- assertEquals(1, cursor.count());
- assertTrue(cursor.first());
- assertEquals("test", cursor.getString(cursor.getColumnIndexOrThrow("data")));
- cursor.deactivate();
- */
- }
-
- private class ChangeObserver extends ContentObserver {
- private int mCursorNotificationCount = 0;
- private int mNotificationCount = 0;
-
- public int getCursorNotificationCount() {
- return mCursorNotificationCount;
- }
-
- public int getNotificationCount() {
- return mNotificationCount;
- }
-
- public ChangeObserver(boolean cursor) {
- super(new Handler());
- mCursor = cursor;
- }
-
- @Override
- public boolean deliverSelfNotifications() {
- return true;
- }
-
- @Override
- public void onChange(boolean selfChange) {
- if (mCursor) {
- mCursorNotificationCount++;
- } else {
- mNotificationCount++;
- }
- }
-
- boolean mCursor;
- }
-
- @MediumTest
- public void testNotificationTest1() throws Exception {
- /*
- Cursor c = mContentResolver.query(Notes.CONTENT_URI,
- new String[] {Notes._ID, Notes.NOTE},
- null, null);
- c.registerContentObserver(new MyContentObserver(true));
- int count = c.count();
-
- MyContentObserver observer = new MyContentObserver(false);
- mContentResolver.registerContentObserver(Notes.CONTENT_URI, true, observer);
-
- Uri uri;
-
- HashMap<String, String> values = new HashMap<String, String>();
- values.put(Notes.NOTE, "test note1");
- uri = mContentResolver.insert(Notes.CONTENT_URI, values);
- assertEquals(1, mCursorNotificationCount);
- assertEquals(1, mNotificationCount);
-
- c.requery();
- assertEquals(count + 1, c.count());
- c.first();
- assertEquals("test note1", c.getString(c.getColumnIndex(Notes.NOTE)));
- c.updateString(c.getColumnIndex(Notes.NOTE), "test note2");
- c.commitUpdates();
-
- assertEquals(2, mCursorNotificationCount);
- assertEquals(2, mNotificationCount);
-
- mContentResolver.delete(uri, null);
-
- assertEquals(3, mCursorNotificationCount);
- assertEquals(3, mNotificationCount);
-
- mContentResolver.unregisterContentObserver(observer);
- */
- }
-
- @MediumTest
- public void testSelectionArgs() throws Exception {
- mDatabase.execSQL("CREATE TABLE test (_id INTEGER PRIMARY KEY, data TEXT);");
- ContentValues values = new ContentValues(1);
- values.put("data", "don't forget to handled 's");
- mDatabase.insert("test", "data", values);
- values.clear();
- values.put("data", "no apostrophes here");
- mDatabase.insert("test", "data", values);
- Cursor c = mDatabase.query(
- "test", null, "data GLOB ?", new String[]{"*'*"}, null, null, null);
- assertEquals(1, c.getCount());
- assertTrue(c.moveToFirst());
- assertEquals("don't forget to handled 's", c.getString(1));
- c.deactivate();
-
- // make sure code should checking null string properly so that
- // it won't crash
- try {
- mDatabase.query("test", new String[]{"_id"},
- "_id=?", new String[]{null}, null, null, null);
- fail("expected exception not thrown");
- } catch (IllegalArgumentException e) {
- // expected
- }
- }
-
- @MediumTest
- public void testTokenize() throws Exception {
- Cursor c;
- mDatabase.execSQL("CREATE TABLE tokens (" +
- "token TEXT COLLATE unicode," +
- "source INTEGER " +
- ");");
- String[] cols = new String[]{"token", "source"};
-
- Assert.assertEquals(0, DatabaseUtils.longForQuery(mDatabase,
- "SELECT _TOKENIZE(NULL, NULL, NULL, NULL)", null));
- Assert.assertEquals(0, DatabaseUtils.longForQuery(mDatabase,
- "SELECT _TOKENIZE('tokens', NULL, NULL, NULL)", null));
- Assert.assertEquals(0, DatabaseUtils.longForQuery(mDatabase,
- "SELECT _TOKENIZE('tokens', 10, NULL, NULL)", null));
- Assert.assertEquals(0, DatabaseUtils.longForQuery(mDatabase,
- "SELECT _TOKENIZE('tokens', 10, 'some string', NULL)", null));
-
- Assert.assertEquals(3, DatabaseUtils.longForQuery(mDatabase,
- "SELECT _TOKENIZE('tokens', 1, 'some string ok', ' ')", null));
-
- // test Chinese
- String chinese = new String("\u4eac\u4ec5 \u5c3d\u5f84\u60ca");
- Assert.assertEquals(2, DatabaseUtils.longForQuery(mDatabase,
- "SELECT _TOKENIZE('tokens', 1,'" + chinese + "', ' ')", null));
-
- String icustr = new String("Fr\u00e9d\u00e9ric Hj\u00f8nnev\u00e5g");
-
- Assert.assertEquals(2, DatabaseUtils.longForQuery(mDatabase,
- "SELECT _TOKENIZE('tokens', 1, '" + icustr + "', ' ')", null));
-
- Assert.assertEquals(7, DatabaseUtils.longForQuery(mDatabase,
- "SELECT count(*) from tokens;", null));
-
- String key = DatabaseUtils.getHexCollationKey("Frederic Hjonneva");
- Assert.assertEquals(1, DatabaseUtils.longForQuery(mDatabase,
- "SELECT count(*) from tokens where token GLOB '" + key + "*'", null));
- key = DatabaseUtils.getHexCollationKey("Hjonneva");
- Assert.assertEquals(1, DatabaseUtils.longForQuery(mDatabase,
- "SELECT count(*) from tokens where token GLOB '" + key + "*'", null));
-
- key = DatabaseUtils.getHexCollationKey("some string ok");
- Assert.assertEquals(1, DatabaseUtils.longForQuery(mDatabase,
- "SELECT count(*) from tokens where token GLOB '" + key + "*'", null));
- key = DatabaseUtils.getHexCollationKey("string");
- Assert.assertEquals(1, DatabaseUtils.longForQuery(mDatabase,
- "SELECT count(*) from tokens where token GLOB '" + key + "*'", null));
- key = DatabaseUtils.getHexCollationKey("ok");
- Assert.assertEquals(1, DatabaseUtils.longForQuery(mDatabase,
- "SELECT count(*) from tokens where token GLOB '" + key + "*'", null));
-
- key = DatabaseUtils.getHexCollationKey(chinese);
- String[] a = new String[1];
- a[0] = key;
- Assert.assertEquals(1, DatabaseUtils.longForQuery(mDatabase,
- "SELECT count(*) from tokens where token= ?", a));
- a[0] += "*";
- Assert.assertEquals(1, DatabaseUtils.longForQuery(mDatabase,
- "SELECT count(*) from tokens where token GLOB ?", a));
-
- Assert.assertEquals(1, DatabaseUtils.longForQuery(mDatabase,
- "SELECT count(*) from tokens where token= '" + key + "'", null));
-
- Assert.assertEquals(1, DatabaseUtils.longForQuery(mDatabase,
- "SELECT count(*) from tokens where token GLOB '" + key + "*'", null));
-
- key = DatabaseUtils.getHexCollationKey("\u4eac\u4ec5");
- Assert.assertEquals(1, DatabaseUtils.longForQuery(mDatabase,
- "SELECT count(*) from tokens where token GLOB '" + key + "*'", null));
-
-
- Assert.assertEquals(0, DatabaseUtils.longForQuery(mDatabase,
- "SELECT count(*) from tokens where token GLOB 'ab*'", null));
- }
-
- @MediumTest
- public void testTransactions() throws Exception {
- mDatabase.execSQL("CREATE TABLE test (num INTEGER);");
- mDatabase.execSQL("INSERT INTO test (num) VALUES (0)");
-
- // Make sure that things work outside an explicit transaction.
- setNum(1);
- checkNum(1);
-
- // Test a single-level transaction.
- setNum(0);
- mDatabase.beginTransaction();
- setNum(1);
- mDatabase.setTransactionSuccessful();
- mDatabase.endTransaction();
- checkNum(1);
- Assert.assertFalse(mDatabase.isDbLockedByCurrentThread());
-
- // Test a rolled-back transaction.
- setNum(0);
- mDatabase.beginTransaction();
- setNum(1);
- mDatabase.endTransaction();
- checkNum(0);
- Assert.assertFalse(mDatabase.isDbLockedByCurrentThread());
-
- // We should get an error if we end a non-existent transaction.
- assertThrowsIllegalState(new Runnable() { public void run() {
- mDatabase.endTransaction();
- }});
-
- // We should get an error if a set a non-existent transaction as clean.
- assertThrowsIllegalState(new Runnable() { public void run() {
- mDatabase.setTransactionSuccessful();
- }});
-
- mDatabase.beginTransaction();
- mDatabase.setTransactionSuccessful();
- // We should get an error if we mark a transaction as clean twice.
- assertThrowsIllegalState(new Runnable() { public void run() {
- mDatabase.setTransactionSuccessful();
- }});
- // We should get an error if we begin a transaction after marking the parent as clean.
- assertThrowsIllegalState(new Runnable() { public void run() {
- mDatabase.beginTransaction();
- }});
- mDatabase.endTransaction();
- Assert.assertFalse(mDatabase.isDbLockedByCurrentThread());
-
- // Test a two-level transaction.
- setNum(0);
- mDatabase.beginTransaction();
- mDatabase.beginTransaction();
- setNum(1);
- mDatabase.setTransactionSuccessful();
- mDatabase.endTransaction();
- mDatabase.setTransactionSuccessful();
- mDatabase.endTransaction();
- checkNum(1);
- Assert.assertFalse(mDatabase.isDbLockedByCurrentThread());
-
- // Test rolling back an inner transaction.
- setNum(0);
- mDatabase.beginTransaction();
- mDatabase.beginTransaction();
- setNum(1);
- mDatabase.endTransaction();
- mDatabase.setTransactionSuccessful();
- mDatabase.endTransaction();
- checkNum(0);
- Assert.assertFalse(mDatabase.isDbLockedByCurrentThread());
-
- // Test rolling back an outer transaction.
- setNum(0);
- mDatabase.beginTransaction();
- mDatabase.beginTransaction();
- setNum(1);
- mDatabase.setTransactionSuccessful();
- mDatabase.endTransaction();
- mDatabase.endTransaction();
- checkNum(0);
- Assert.assertFalse(mDatabase.isDbLockedByCurrentThread());
- }
-
- private void setNum(int num) {
- mDatabase.execSQL("UPDATE test SET num = " + num);
- }
-
- private void checkNum(int num) {
- Assert.assertEquals(
- num, DatabaseUtils.longForQuery(mDatabase, "SELECT num FROM test", null));
- }
-
- private void assertThrowsIllegalState(Runnable r) {
- boolean ok = false;
- try {
- r.run();
- } catch (IllegalStateException e) {
- ok = true;
- }
- Assert.assertTrue(ok);
- }
-
- // Disable these until we can explicitly mark them as stress tests
- public void xxtestMem1() throws Exception {
- populateDefaultTable();
-
- for (int i = 0; i < 50000; i++) {
- Cursor cursor = mDatabase.query("test", null, null, null, null, null, null);
- cursor.moveToFirst();
- cursor.close();
-// Log.i("~~~~", "Finished round " + i);
- }
- }
-
- // Disable these until we can explicitly mark them as stress tests
- public void xxtestMem2() throws Exception {
- populateDefaultTable();
-
- for (int i = 0; i < 50000; i++) {
- Cursor cursor = mDatabase.query("test", null, null, null, null, null, null);
- cursor.close();
-// Log.i("~~~~", "Finished round " + i);
- }
- }
-
- // Disable these until we can explicitly mark them as stress tests
- public void xxtestMem3() throws Exception {
- populateDefaultTable();
-
- for (int i = 0; i < 50000; i++) {
- Cursor cursor = mDatabase.query("test", null, null, null, null, null, null);
- cursor.deactivate();
-// Log.i("~~~~", "Finished round " + i);
- }
- }
-
- @MediumTest
- public void testContentValues() throws Exception {
- ContentValues values = new ContentValues();
- values.put("string", "value");
- assertEquals("value", values.getAsString("string"));
- byte[] bytes = new byte[42];
- Arrays.fill(bytes, (byte) 0x28);
- values.put("byteArray", bytes);
- assertTrue(Arrays.equals(bytes, values.getAsByteArray("byteArray")));
-
- // Write the ContentValues to a Parcel and then read them out
- Parcel p = Parcel.obtain();
- values.writeToParcel(p, 0);
- p.setDataPosition(0);
- values = ContentValues.CREATOR.createFromParcel(p);
-
- // Read the values out again and make sure they're the same
- assertTrue(Arrays.equals(bytes, values.getAsByteArray("byteArray")));
- assertEquals("value", values.get("string"));
- }
-
- @MediumTest
- public void testTableInfoPragma() throws Exception {
- mDatabase.execSQL("CREATE TABLE pragma_test (" +
- "i INTEGER DEFAULT 1234, " +
- "j INTEGER, " +
- "s TEXT DEFAULT 'hello', " +
- "t TEXT, " +
- "'select' TEXT DEFAULT \"hello\")");
- try {
- Cursor cur = mDatabase.rawQuery("PRAGMA table_info(pragma_test)", null);
- Assert.assertEquals(5, cur.getCount());
-
- Assert.assertTrue(cur.moveToNext());
- Assert.assertEquals("i",
- cur.getString(TABLE_INFO_PRAGMA_COLUMNNAME_INDEX));
- Assert.assertEquals("1234",
- cur.getString(TABLE_INFO_PRAGMA_DEFAULT_INDEX));
-
- Assert.assertTrue(cur.moveToNext());
- Assert.assertEquals("j",
- cur.getString(TABLE_INFO_PRAGMA_COLUMNNAME_INDEX));
- Assert.assertNull(cur.getString(TABLE_INFO_PRAGMA_DEFAULT_INDEX));
-
- Assert.assertTrue(cur.moveToNext());
- Assert.assertEquals("s",
- cur.getString(TABLE_INFO_PRAGMA_COLUMNNAME_INDEX));
- Assert.assertEquals("'hello'",
- cur.getString(TABLE_INFO_PRAGMA_DEFAULT_INDEX));
-
- Assert.assertTrue(cur.moveToNext());
- Assert.assertEquals("t",
- cur.getString(TABLE_INFO_PRAGMA_COLUMNNAME_INDEX));
- Assert.assertNull(cur.getString(TABLE_INFO_PRAGMA_DEFAULT_INDEX));
-
- Assert.assertTrue(cur.moveToNext());
- Assert.assertEquals("select",
- cur.getString(TABLE_INFO_PRAGMA_COLUMNNAME_INDEX));
- Assert.assertEquals("\"hello\"",
- cur.getString(TABLE_INFO_PRAGMA_DEFAULT_INDEX));
-
- cur.close();
- } catch (Throwable t) {
- throw new RuntimeException(
- "If you see this test fail, it's likely that something about " +
- "sqlite's PRAGMA table_info(...) command has changed.", t);
- }
- }
-
- @MediumTest
- public void testInsertHelper() throws Exception {
- Cursor cur;
- ContentValues cv;
- long row;
-
- mDatabase.execSQL("CREATE TABLE insert_test (" +
- "_id INTEGER PRIMARY KEY, " +
- "s TEXT NOT NULL UNIQUE, " +
- "t TEXT NOT NULL DEFAULT 'hello world', " +
- "i INTEGER, " +
- "j INTEGER NOT NULL DEFAULT 1234, " +
- "'select' TEXT)");
-
- DatabaseUtils.InsertHelper ih =
- new DatabaseUtils.InsertHelper(mDatabase, "insert_test");
-
- cv = new ContentValues();
- cv.put("s", "one");
- row = ih.insert(cv);
- cur = mDatabase.rawQuery("SELECT * FROM insert_test WHERE _id == " + row, null);
- Assert.assertTrue(cur.moveToFirst());
- Assert.assertEquals("one", cur.getString(1));
- Assert.assertEquals("hello world", cur.getString(2));
- Assert.assertNull(cur.getString(3));
- Assert.assertEquals(1234, cur.getLong(4));
- Assert.assertNull(cur.getString(5));
-
- cv = new ContentValues();
- cv.put("s", "two");
- cv.put("t", "goodbye world");
- row = ih.insert(cv);
- cur = mDatabase.rawQuery("SELECT * FROM insert_test WHERE _id == " + row, null);
- Assert.assertTrue(cur.moveToFirst());
- Assert.assertEquals("two", cur.getString(1));
- Assert.assertEquals("goodbye world", cur.getString(2));
- Assert.assertNull(cur.getString(3));
- Assert.assertEquals(1234, cur.getLong(4));
- Assert.assertNull(cur.getString(5));
-
- cv = new ContentValues();
- cv.put("t", "goodbye world");
- row = ih.insert(cv);
- Assert.assertEquals(-1, row);
-
- cv = new ContentValues();
- cv.put("s", "three");
- cv.put("i", 2345);
- cv.put("j", 3456);
- cv.put("select", "tricky");
- row = ih.insert(cv);
- cur = mDatabase.rawQuery("SELECT * FROM insert_test WHERE _id == " + row, null);
- Assert.assertTrue(cur.moveToFirst());
- Assert.assertEquals("three", cur.getString(1));
- Assert.assertEquals("hello world", cur.getString(2));
- Assert.assertEquals(2345, cur.getLong(3));
- Assert.assertEquals(3456, cur.getLong(4));
- Assert.assertEquals("tricky", cur.getString(5));
-
- cv = new ContentValues();
- cv.put("s", "three");
- cv.put("i", 6789);
- row = ih.insert(cv);
- Assert.assertEquals(-1, row);
- row = ih.replace(cv);
- cur = mDatabase.rawQuery("SELECT * FROM insert_test WHERE _id == " + row, null);
- Assert.assertTrue(cur.moveToFirst());
- Assert.assertEquals("three", cur.getString(1));
- Assert.assertEquals("hello world", cur.getString(2));
- Assert.assertEquals(6789, cur.getLong(3));
-
- ih.close();
- }
-
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/DatabaseLocaleTest.java b/tests/AndroidTests/src/com/android/unit_tests/DatabaseLocaleTest.java
deleted file mode 100644
index 0560c21..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/DatabaseLocaleTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.database.sqlite.SQLiteDatabase;
-import android.database.Cursor;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.util.Log;
-import android.test.MoreAsserts;
-
-import java.util.ArrayList;
-import java.util.Locale;
-
-import junit.framework.TestCase;
-
-public class DatabaseLocaleTest extends TestCase {
-
- private SQLiteDatabase mDatabase;
-
- private static final String[] STRINGS = {
- "c\u00f4t\u00e9",
- "cote",
- "c\u00f4te",
- "cot\u00e9",
- "boy",
- "dog",
- "COTE",
- };
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mDatabase = SQLiteDatabase.create(null);
- mDatabase.execSQL("CREATE TABLE test (data TEXT COLLATE LOCALIZED);");
- for (String s : STRINGS) {
- mDatabase.execSQL("INSERT INTO test VALUES('" + s + "');");
- }
- }
-
- @Override
- protected void tearDown() throws Exception {
- mDatabase.close();
- super.tearDown();
- }
-
- private String[] query(String sql) {
- Log.i("LocaleTest", "Querying: " + sql);
- Cursor c = mDatabase.rawQuery(sql, null);
- assertNotNull(c);
- ArrayList<String> items = new ArrayList<String>();
- while (c.moveToNext()) {
- items.add(c.getString(0));
- Log.i("LocaleTest", "...." + c.getString(0));
- }
- String[] result = items.toArray(new String[items.size()]);
- assertEquals(STRINGS.length, result.length);
- c.close();
- return result;
- }
-
- @MediumTest
- public void testLocaleInsertOrder() throws Exception {
- String[] results = query("SELECT data FROM test");
- MoreAsserts.assertEquals(STRINGS, results);
- }
-
- @MediumTest
- public void testLocaleenUS() throws Exception {
- Log.i("LocaleTest", "about to call setLocale en_US");
- mDatabase.setLocale(new Locale("en", "US"));
- String[] results;
- results = query("SELECT data FROM test ORDER BY data COLLATE LOCALIZED ASC");
-
- // The database code currently uses PRIMARY collation strength,
- // meaning that all versions of a character compare equal (regardless
- // of case or accents), leaving the "cote" flavors in database order.
- MoreAsserts.assertEquals(results, new String[] {
- STRINGS[4], // "boy"
- STRINGS[0], // sundry forms of "cote"
- STRINGS[1],
- STRINGS[2],
- STRINGS[3],
- STRINGS[6], // "COTE"
- STRINGS[5], // "dog"
- });
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/DatabasePerformanceTests.java b/tests/AndroidTests/src/com/android/unit_tests/DatabasePerformanceTests.java
deleted file mode 100644
index 68ce5e1..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/DatabasePerformanceTests.java
+++ /dev/null
@@ -1,1353 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import junit.framework.Assert;
-
-import android.content.ContentValues;
-import android.content.Context;
-import android.database.Cursor;
-import android.database.sqlite.SQLiteDatabase;
-import android.provider.Contacts;
-import android.provider.Contacts.People;
-import android.test.PerformanceTestCase;
-import android.test.TestCase;
-
-import java.io.File;
-import java.util.Random;
-
-/**
- * Database Performance Tests
- *
- */
-
-public class DatabasePerformanceTests {
-
- public static String[] children() {
- return new String[] {
- ContactReadingTest1.class.getName(),
- Perf1Test.class.getName(),
- Perf2Test.class.getName(),
- Perf3Test.class.getName(),
- Perf4Test.class.getName(),
- Perf5Test.class.getName(),
- Perf6Test.class.getName(),
- Perf7Test.class.getName(),
- Perf8Test.class.getName(),
- Perf9Test.class.getName(),
- Perf10Test.class.getName(),
- Perf11Test.class.getName(),
- Perf12Test.class.getName(),
- Perf13Test.class.getName(),
- Perf14Test.class.getName(),
- Perf15Test.class.getName(),
- Perf16Test.class.getName(),
- Perf17Test.class.getName(),
- Perf18Test.class.getName(),
- Perf19Test.class.getName(),
- Perf20Test.class.getName(),
- Perf21Test.class.getName(),
- Perf22Test.class.getName(),
- Perf23Test.class.getName(),
- Perf24Test.class.getName(),
- Perf25Test.class.getName(),
- Perf26Test.class.getName(),
- Perf27Test.class.getName(),
- Perf28Test.class.getName(),
- Perf29Test.class.getName(),
- Perf30Test.class.getName(),
- Perf31Test.class.getName(),
- };
- }
-
- public static abstract class PerformanceBase implements TestCase,
- PerformanceTestCase {
- protected static final int CURRENT_DATABASE_VERSION = 42;
- protected SQLiteDatabase mDatabase;
- protected File mDatabaseFile;
- protected Context mContext;
-
- public void setUp(Context c) {
- mContext = c;
- mDatabaseFile = new File("/tmp", "perf_database_test.db");
- if (mDatabaseFile.exists()) {
- mDatabaseFile.delete();
- }
- mDatabase = SQLiteDatabase.openOrCreateDatabase(mDatabaseFile.getPath(), null);
- Assert.assertTrue(mDatabase != null);
- mDatabase.setVersion(CURRENT_DATABASE_VERSION);
- }
-
- public void tearDown() {
- mDatabase.close();
- mDatabaseFile.delete();
- }
-
- public boolean isPerformanceOnly() {
- return true;
- }
-
- // These test can only be run once.
- public int startPerformance(Intermediates intermediates) {
- return 0;
- }
-
- public void run() {
- }
-
- public String numberName(int number) {
- String result = "";
-
- if (number >= 1000) {
- result += numberName((number / 1000)) + " thousand";
- number = (number % 1000);
-
- if (number > 0) result += " ";
- }
-
- if (number >= 100) {
- result += ONES[(number / 100)] + " hundred";
- number = (number % 100);
-
- if (number > 0) result += " ";
- }
-
- if (number >= 20) {
- result += TENS[(number / 10)];
- number = (number % 10);
-
- if (number > 0) result += " ";
- }
-
- if (number > 0) {
- result += ONES[number];
- }
-
- return result;
- }
- }
-
- /**
- * Test reading all contact data.
- */
- public static class ContactReadingTest1 implements TestCase, PerformanceTestCase {
- private static final String[] PEOPLE_PROJECTION = new String[] {
- Contacts.People._ID, // 0
- Contacts.People.PRIMARY_PHONE_ID, // 1
- Contacts.People.TYPE, // 2
- Contacts.People.NUMBER, // 3
- Contacts.People.LABEL, // 4
- Contacts.People.NAME, // 5
- Contacts.People.PRESENCE_STATUS, // 6
- };
-
- private Cursor mCursor;
-
- public void setUp(Context c) {
- mCursor = c.getContentResolver().query(People.CONTENT_URI, PEOPLE_PROJECTION, null,
- null, People.DEFAULT_SORT_ORDER);
- }
-
- public void tearDown() {
- mCursor.close();
- }
-
- public boolean isPerformanceOnly() {
- return true;
- }
-
- public int startPerformance(Intermediates intermediates) {
- // This test can only be run once.
- return 0;
- }
-
- public void run() {
- while (mCursor.moveToNext()) {
- // Read out all of the data
- mCursor.getLong(0);
- mCursor.getLong(1);
- mCursor.getLong(2);
- mCursor.getString(3);
- mCursor.getString(4);
- mCursor.getString(5);
- mCursor.getLong(6);
- }
- }
- }
-
- /**
- * Test 1000 inserts
- */
-
- public static class Perf1Test extends PerformanceBase {
- private static final int SIZE = 1000;
-
- private String[] statements = new String[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- statements[i] =
- "INSERT INTO t1 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')";
- }
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))");
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase.execSQL(statements[i]);
- }
- }
- }
-
- /**
- * Test 1000 inserts into and indexed table
- */
-
- public static class Perf2Test extends PerformanceBase {
- private static final int SIZE = 1000;
-
- private String[] statements = new String[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- statements[i] =
- "INSERT INTO t1 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')";
- }
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))");
- mDatabase.execSQL("CREATE INDEX i1c ON t1(c)");
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase.execSQL(statements[i]);
- }
- }
- }
-
- /**
- * 100 SELECTs without an index
- */
-
- public static class Perf3Test extends PerformanceBase {
- private static final int SIZE = 100;
- private static final String[] COLUMNS = {"count(*)", "avg(b)"};
-
- private String[] where = new String[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
-
- for (int i = 0; i < SIZE; i++) {
- int lower = i * 100;
- int upper = (i + 10) * 100;
- where[i] = "b >= " + lower + " AND b < " + upper;
- }
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase
- .query("t1", COLUMNS, where[i], null, null, null, null);
- }
- }
- }
-
- /**
- * 100 SELECTs on a string comparison
- */
-
- public static class Perf4Test extends PerformanceBase {
- private static final int SIZE = 100;
- private static final String[] COLUMNS = {"count(*)", "avg(b)"};
-
- private String[] where = new String[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
-
- for (int i = 0; i < SIZE; i++) {
- where[i] = "c LIKE '" + numberName(i) + "'";
- }
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase
- .query("t1", COLUMNS, where[i], null, null, null, null);
- }
- }
- }
-
- /**
- * 100 SELECTs with an index
- */
-
- public static class Perf5Test extends PerformanceBase {
- private static final int SIZE = 100;
- private static final String[] COLUMNS = {"count(*)", "avg(b)"};
-
- private String[] where = new String[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))");
- mDatabase.execSQL("CREATE INDEX i1b ON t1(b)");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
-
- for (int i = 0; i < SIZE; i++) {
- int lower = i * 100;
- int upper = (i + 10) * 100;
- where[i] = "b >= " + lower + " AND b < " + upper;
- }
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase
- .query("t1", COLUMNS, where[i], null, null, null, null);
- }
- }
- }
-
- /**
- * INNER JOIN without an index
- */
-
- public static class Perf6Test extends PerformanceBase {
- private static final int SIZE = 100;
- private static final String[] COLUMNS = {"t1.a"};
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))");
- mDatabase
- .execSQL("CREATE TABLE t2(a INTEGER, b INTEGER, c VARCHAR(100))");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t2 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
- }
-
- @Override
- public void run() {
- mDatabase.query("t1 INNER JOIN t2 ON t1.b = t2.b", COLUMNS, null,
- null, null, null, null);
- }
- }
-
- /**
- * INNER JOIN without an index on one side
- */
-
- public static class Perf7Test extends PerformanceBase {
- private static final int SIZE = 100;
- private static final String[] COLUMNS = {"t1.a"};
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))");
- mDatabase
- .execSQL("CREATE TABLE t2(a INTEGER, b INTEGER, c VARCHAR(100))");
-
- mDatabase.execSQL("CREATE INDEX i1b ON t1(b)");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t2 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
- }
-
- @Override
- public void run() {
- mDatabase.query("t1 INNER JOIN t2 ON t1.b = t2.b", COLUMNS, null,
- null, null, null, null);
- }
- }
-
- /**
- * INNER JOIN without an index on one side
- */
-
- public static class Perf8Test extends PerformanceBase {
- private static final int SIZE = 100;
- private static final String[] COLUMNS = {"t1.a"};
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))");
- mDatabase
- .execSQL("CREATE TABLE t2(a INTEGER, b INTEGER, c VARCHAR(100))");
-
- mDatabase.execSQL("CREATE INDEX i1b ON t1(b)");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t2 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
- }
-
- @Override
- public void run() {
- mDatabase.query("t1 INNER JOIN t2 ON t1.c = t2.c", COLUMNS, null,
- null, null, null, null);
- }
- }
-
- /**
- * 100 SELECTs with subqueries. Subquery is using an index
- */
-
- public static class Perf9Test extends PerformanceBase {
- private static final int SIZE = 100;
- private static final String[] COLUMNS = {"t1.a"};
-
- private String[] where = new String[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))");
- mDatabase
- .execSQL("CREATE TABLE t2(a INTEGER, b INTEGER, c VARCHAR(100))");
-
- mDatabase.execSQL("CREATE INDEX i2b ON t2(b)");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t2 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
-
- for (int i = 0; i < SIZE; i++) {
- int lower = i * 100;
- int upper = (i + 10) * 100;
- where[i] =
- "t1.b IN (SELECT t2.b FROM t2 WHERE t2.b >= " + lower
- + " AND t2.b < " + upper + ")";
- }
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase
- .query("t1", COLUMNS, where[i], null, null, null, null);
- }
- }
- }
-
- /**
- * 100 SELECTs on string comparison with Index
- */
-
- public static class Perf10Test extends PerformanceBase {
- private static final int SIZE = 100;
- private static final String[] COLUMNS = {"count(*)", "avg(b)"};
-
- private String[] where = new String[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))");
- mDatabase.execSQL("CREATE INDEX i3c ON t1(c)");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
-
- for (int i = 0; i < SIZE; i++) {
- where[i] = "c LIKE '" + numberName(i) + "'";
- }
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase
- .query("t1", COLUMNS, where[i], null, null, null, null);
- }
- }
- }
-
- /**
- * 100 SELECTs on integer
- */
-
- public static class Perf11Test extends PerformanceBase {
- private static final int SIZE = 100;
- private static final String[] COLUMNS = {"b"};
-
- private String[] where = new String[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
-
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase.query("t1", COLUMNS, null, null, null, null, null);
- }
- }
- }
-
- /**
- * 100 SELECTs on String
- */
-
- public static class Perf12Test extends PerformanceBase {
- private static final int SIZE = 100;
- private static final String[] COLUMNS = {"c"};
-
- private String[] where = new String[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
-
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase.query("t1", COLUMNS, null, null, null, null, null);
- }
- }
- }
-
- /**
- * 100 SELECTs on integer with index
- */
-
- public static class Perf13Test extends PerformanceBase {
- private static final int SIZE = 100;
- private static final String[] COLUMNS = {"b"};
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))");
- mDatabase.execSQL("CREATE INDEX i1b on t1(b)");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
-
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase.query("t1", COLUMNS, null, null, null, null, null);
- }
- }
- }
-
- /**
- * 100 SELECTs on String with index
- */
-
- public static class Perf14Test extends PerformanceBase {
- private static final int SIZE = 100;
- private static final String[] COLUMNS = {"c"};
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))");
- mDatabase.execSQL("CREATE INDEX i1c ON t1(c)");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
-
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase.query("t1", COLUMNS, null, null, null, null, null);
- }
- }
- }
-
- /**
- * 100 SELECTs on String with starts with
- */
-
- public static class Perf15Test extends PerformanceBase {
- private static final int SIZE = 100;
- private static final String[] COLUMNS = {"c"};
- private String[] where = new String[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))");
- mDatabase.execSQL("CREATE INDEX i1c ON t1(c)");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- where[i] = "c LIKE '" + numberName(r).substring(0, 1) + "*'";
-
- }
-
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase
- .query("t1", COLUMNS, where[i], null, null, null, null);
- }
- }
- }
-
- /**
- * 1000 Deletes on an indexed table
- */
-
- public static class Perf16Test extends PerformanceBase {
- private static final int SIZE = 1000;
- private static final String[] COLUMNS = {"c"};
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))");
- mDatabase.execSQL("CREATE INDEX i3c ON t1(c)");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
-
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase.delete("t1", null, null);
- }
- }
- }
-
- /**
- * 1000 Deletes
- */
-
- public static class Perf17Test extends PerformanceBase {
- private static final int SIZE = 1000;
- private static final String[] COLUMNS = {"c"};
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
-
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase.delete("t1", null, null);
- }
- }
- }
-
- /**
- * 1000 DELETE's without an index with where clause
- */
-
- public static class Perf18Test extends PerformanceBase {
- private static final int SIZE = 1000;
- private String[] where = new String[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
-
- for (int i = 0; i < SIZE; i++) {
- int lower = i * 100;
- int upper = (i + 10) * 100;
- where[i] = "b >= " + lower + " AND b < " + upper;
- }
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase.delete("t1", where[i], null);
- }
- }
- }
-
- /**
- * 1000 DELETE's with an index with where clause
- */
-
- public static class Perf19Test extends PerformanceBase {
- private static final int SIZE = 1000;
- private String[] where = new String[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))");
- mDatabase.execSQL("CREATE INDEX i1b ON t1(b)");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
-
- for (int i = 0; i < SIZE; i++) {
- int lower = i * 100;
- int upper = (i + 10) * 100;
- where[i] = "b >= " + lower + " AND b < " + upper;
- }
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase.delete("t1", where[i], null);
- }
- }
- }
-
- /**
- * 1000 update's with an index with where clause
- */
-
- public static class Perf20Test extends PerformanceBase {
- private static final int SIZE = 1000;
- private String[] where = new String[SIZE];
- ContentValues[] mValues = new ContentValues[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))");
- mDatabase.execSQL("CREATE INDEX i1b ON t1(b)");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
-
- for (int i = 0; i < SIZE; i++) {
-
- int lower = i * 100;
- int upper = (i + 10) * 100;
- where[i] = "b >= " + lower + " AND b < " + upper;
- ContentValues b = new ContentValues(1);
- b.put("b", upper);
- mValues[i] = b;
-
- }
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase.update("t1", mValues[i], where[i], null);
- }
- }
- }
-
- /**
- * 1000 update's without an index with where clause
- */
-
- public static class Perf21Test extends PerformanceBase {
- private static final int SIZE = 1000;
- private String[] where = new String[SIZE];
- ContentValues[] mValues = new ContentValues[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'"
- + numberName(r) + "')");
- }
-
- for (int i = 0; i < SIZE; i++) {
-
- int lower = i * 100;
- int upper = (i + 10) * 100;
- where[i] = "b >= " + lower + " AND b < " + upper;
- ContentValues b = new ContentValues(1);
- b.put("b", upper);
- mValues[i] = b;
- }
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase.update("t1", mValues[i], where[i], null);
- }
- }
- }
-
- /**
- * 10000 inserts for an integer
- */
-
- public static class Perf22Test extends PerformanceBase {
- private static final int SIZE = 10000;
- ContentValues[] mValues = new ContentValues[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER)");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- ContentValues b = new ContentValues(1);
- b.put("a", r);
- mValues[i] = b;
- }
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase.insert("t1", null, mValues[i]);
- }
- }
- }
-
- /**
- * 10000 inserts for an integer -indexed table
- */
-
- public static class Perf23Test extends PerformanceBase {
- private static final int SIZE = 10000;
- ContentValues[] mValues = new ContentValues[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a INTEGER)");
- mDatabase.execSQL("CREATE INDEX i1a ON t1(a)");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- ContentValues b = new ContentValues(1);
- b.put("a", r);
- mValues[i] = b;
- }
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase.insert("t1", null, mValues[i]);
- }
- }
- }
-
- /**
- * 10000 inserts for a String
- */
-
- public static class Perf24Test extends PerformanceBase {
- private static final int SIZE = 10000;
- ContentValues[] mValues = new ContentValues[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a VARCHAR(100))");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- ContentValues b = new ContentValues(1);
- b.put("a", numberName(r));
- mValues[i] = b;
- }
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase.insert("t1", null, mValues[i]);
- }
- }
- }
-
- /**
- * 10000 inserts for a String - indexed table
- */
-
- public static class Perf25Test extends PerformanceBase {
- private static final int SIZE = 10000;
- ContentValues[] mValues = new ContentValues[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t1(a VARCHAR(100))");
- mDatabase.execSQL("CREATE INDEX i1a ON t1(a)");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- ContentValues b = new ContentValues(1);
- b.put("a", numberName(r));
- mValues[i] = b;
- }
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase.insert("t1", null, mValues[i]);
- }
- }
- }
-
-
- /**
- * 10000 selects for a String -starts with
- */
-
- public static class Perf26Test extends PerformanceBase {
- private static final int SIZE = 10000;
- private static final String[] COLUMNS = {"t3.a"};
- private String[] where = new String[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t3(a VARCHAR(100))");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t3 VALUES('"
- + numberName(r) + "')");
- }
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- where[i] = "a LIKE '" + numberName(r).substring(0, 1) + "*'";
-
- }
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase.query("t3", COLUMNS, where[i], null, null, null, null);
- }
- }
- }
-
- /**
- * 10000 selects for a String - indexed table -starts with
- */
-
- public static class Perf27Test extends PerformanceBase {
- private static final int SIZE = 10000;
- private static final String[] COLUMNS = {"t3.a"};
- private String[] where = new String[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t3(a VARCHAR(100))");
- mDatabase.execSQL("CREATE INDEX i3a ON t3(a)");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t3 VALUES('"
- + numberName(r) + "')");
- }
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- where[i] = "a LIKE '" + numberName(r).substring(0, 1) + "*'";
-
- }
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase.query("t3", COLUMNS, where[i], null, null, null, null);
- }
- }
- }
-
- /**
- * 10000 selects for an integer -
- */
-
- public static class Perf28Test extends PerformanceBase {
- private static final int SIZE = 10000;
- private static final String[] COLUMNS = {"t4.a"};
- private String[] where = new String[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t4(a INTEGER)");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t4 VALUES(" + r + ")");
- int lower = i * 100;
- int upper = (i + 10) * 100;
- where[i] = "a >= " + lower + " AND a < " + upper;
- }
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase.query("t4", COLUMNS, where[i], null, null, null, null);
- }
- }
- }
-
- /**
- * 10000 selects for an integer -indexed table
- */
-
- public static class Perf29Test extends PerformanceBase {
- private static final int SIZE = 10000;
- private static final String[] COLUMNS = {"t4.a"};
- private String[] where = new String[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t4(a INTEGER)");
- mDatabase.execSQL("CREATE INDEX i4a ON t4(a)");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t4 VALUES(" + r + ")");
-
- int lower = i * 100;
- int upper = (i + 10) * 100;
- where[i] = "a >= " + lower + " AND a < " + upper;
- }
-
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase.query("t4", COLUMNS, where[i], null, null, null, null);
- }
- }
- }
-
-
- /**
- * 10000 selects for a String - contains 'e'
- */
-
- public static class Perf30Test extends PerformanceBase {
- private static final int SIZE = 10000;
- private static final String[] COLUMNS = {"t3.a"};
- private String[] where = new String[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t3(a VARCHAR(100))");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t3 VALUES('"
- + numberName(r) + "')");
- }
-
- for (int i = 0; i < SIZE; i++) {
- where[i] = "a LIKE '*e*'";
-
- }
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase.query("t3", COLUMNS, where[i], null, null, null, null);
- }
- }
- }
-
- /**
- * 10000 selects for a String - contains 'e'-indexed table
- */
-
- public static class Perf31Test extends PerformanceBase {
- private static final int SIZE = 10000;
- private static final String[] COLUMNS = {"t3.a"};
- private String[] where = new String[SIZE];
-
- @Override
- public void setUp(Context c) {
- super.setUp(c);
- Random random = new Random(42);
-
- mDatabase
- .execSQL("CREATE TABLE t3(a VARCHAR(100))");
- mDatabase.execSQL("CREATE INDEX i3a ON t3(a)");
-
- for (int i = 0; i < SIZE; i++) {
- int r = random.nextInt(100000);
- mDatabase.execSQL("INSERT INTO t3 VALUES('"
- + numberName(r) + "')");
- }
-
- for (int i = 0; i < SIZE; i++) {
- where[i] = "a LIKE '*e*'";
-
- }
-
- }
-
- @Override
- public void run() {
- for (int i = 0; i < SIZE; i++) {
- mDatabase.query("t3", COLUMNS, where[i], null, null, null, null);
- }
- }
- }
-
- public static final String[] ONES =
- {"zero", "one", "two", "three", "four", "five", "six", "seven",
- "eight", "nine", "ten", "eleven", "twelve", "thirteen",
- "fourteen", "fifteen", "sixteen", "seventeen", "eighteen",
- "nineteen"};
-
- public static final String[] TENS =
- {"", "ten", "twenty", "thirty", "forty", "fifty", "sixty",
- "seventy", "eighty", "ninety"};
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/DatabaseStatementTest.java b/tests/AndroidTests/src/com/android/unit_tests/DatabaseStatementTest.java
deleted file mode 100644
index 16ca59f..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/DatabaseStatementTest.java
+++ /dev/null
@@ -1,320 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.database.Cursor;
-import android.database.sqlite.SQLiteConstraintException;
-import android.database.sqlite.SQLiteDatabase;
-import android.database.sqlite.SQLiteDoneException;
-import android.database.sqlite.SQLiteStatement;
-import android.test.PerformanceTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import junit.framework.TestCase;
-
-import java.io.File;
-
-public class DatabaseStatementTest extends TestCase implements PerformanceTestCase {
-
- private static final String sString1 = "this is a test";
- private static final String sString2 = "and yet another test";
- private static final String sString3 = "this string is a little longer, but still a test";
-
- private static final int CURRENT_DATABASE_VERSION = 42;
- private SQLiteDatabase mDatabase;
- private File mDatabaseFile;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mDatabaseFile = new File("/sqlite_stmt_journals", "database_test.db");
- if (mDatabaseFile.exists()) {
- mDatabaseFile.delete();
- }
- mDatabase = SQLiteDatabase.openOrCreateDatabase(mDatabaseFile.getPath(), null);
- assertNotNull(mDatabase);
- mDatabase.setVersion(CURRENT_DATABASE_VERSION);
- }
-
- @Override
- protected void tearDown() throws Exception {
- mDatabase.close();
- mDatabaseFile.delete();
- super.tearDown();
- }
-
- public boolean isPerformanceOnly() {
- return false;
- }
-
- // These test can only be run once.
- public int startPerformance(Intermediates intermediates) {
- return 1;
- }
-
- private void populateDefaultTable() {
- mDatabase.execSQL("CREATE TABLE test (_id INTEGER PRIMARY KEY, data TEXT);");
-
- mDatabase.execSQL("INSERT INTO test (data) VALUES ('" + sString1 + "');");
- mDatabase.execSQL("INSERT INTO test (data) VALUES ('" + sString2 + "');");
- mDatabase.execSQL("INSERT INTO test (data) VALUES ('" + sString3 + "');");
- }
-
- @MediumTest
- public void testExecuteStatement() throws Exception {
- populateDefaultTable();
- SQLiteStatement statement = mDatabase.compileStatement("DELETE FROM test");
- statement.execute();
-
- Cursor c = mDatabase.query("test", null, null, null, null, null, null);
- assertEquals(0, c.getCount());
- c.deactivate();
- statement.close();
- }
-
- @MediumTest
- public void testSimpleQuery() throws Exception {
- mDatabase.execSQL("CREATE TABLE test (num INTEGER NOT NULL, str TEXT NOT NULL);");
- mDatabase.execSQL("INSERT INTO test VALUES (1234, 'hello');");
- SQLiteStatement statement1 =
- mDatabase.compileStatement("SELECT num FROM test WHERE str = ?");
- SQLiteStatement statement2 =
- mDatabase.compileStatement("SELECT str FROM test WHERE num = ?");
-
- try {
- statement1.bindString(1, "hello");
- long value = statement1.simpleQueryForLong();
- assertEquals(1234, value);
-
- statement1.bindString(1, "world");
- statement1.simpleQueryForLong();
- fail("shouldn't get here");
- } catch (SQLiteDoneException e) {
- // expected
- }
-
- try {
- statement2.bindLong(1, 1234);
- String value = statement1.simpleQueryForString();
- assertEquals("hello", value);
-
- statement2.bindLong(1, 5678);
- statement1.simpleQueryForString();
- fail("shouldn't get here");
- } catch (SQLiteDoneException e) {
- // expected
- }
-
- statement1.close();
- statement2.close();
- }
-
- @MediumTest
- public void testStatementLongBinding() throws Exception {
- mDatabase.execSQL("CREATE TABLE test (num INTEGER);");
- SQLiteStatement statement = mDatabase.compileStatement("INSERT INTO test (num) VALUES (?)");
-
- for (int i = 0; i < 10; i++) {
- statement.bindLong(1, i);
- statement.execute();
- }
- statement.close();
-
- Cursor c = mDatabase.query("test", null, null, null, null, null, null);
- int numCol = c.getColumnIndexOrThrow("num");
- c.moveToFirst();
- for (long i = 0; i < 10; i++) {
- long num = c.getLong(numCol);
- assertEquals(i, num);
- c.moveToNext();
- }
- c.close();
- }
-
- @MediumTest
- public void testStatementStringBinding() throws Exception {
- mDatabase.execSQL("CREATE TABLE test (num TEXT);");
- SQLiteStatement statement = mDatabase.compileStatement("INSERT INTO test (num) VALUES (?)");
-
- for (long i = 0; i < 10; i++) {
- statement.bindString(1, Long.toHexString(i));
- statement.execute();
- }
- statement.close();
-
- Cursor c = mDatabase.query("test", null, null, null, null, null, null);
- int numCol = c.getColumnIndexOrThrow("num");
- c.moveToFirst();
- for (long i = 0; i < 10; i++) {
- String num = c.getString(numCol);
- assertEquals(Long.toHexString(i), num);
- c.moveToNext();
- }
- c.close();
- }
-
- @MediumTest
- public void testStatementClearBindings() throws Exception {
- mDatabase.execSQL("CREATE TABLE test (num INTEGER);");
- SQLiteStatement statement = mDatabase.compileStatement("INSERT INTO test (num) VALUES (?)");
-
- for (long i = 0; i < 10; i++) {
- statement.bindLong(1, i);
- statement.clearBindings();
- statement.execute();
- }
- statement.close();
-
- Cursor c = mDatabase.query("test", null, null, null, null, null, "ROWID");
- int numCol = c.getColumnIndexOrThrow("num");
- assertTrue(c.moveToFirst());
- for (long i = 0; i < 10; i++) {
- assertTrue(c.isNull(numCol));
- c.moveToNext();
- }
- c.close();
- }
-
- @MediumTest
- public void testSimpleStringBinding() throws Exception {
- mDatabase.execSQL("CREATE TABLE test (num TEXT, value TEXT);");
- String statement = "INSERT INTO test (num, value) VALUES (?,?)";
-
- String[] args = new String[2];
- for (int i = 0; i < 2; i++) {
- args[i] = Integer.toHexString(i);
- }
-
- mDatabase.execSQL(statement, args);
-
- Cursor c = mDatabase.query("test", null, null, null, null, null, null);
- int numCol = c.getColumnIndexOrThrow("num");
- int valCol = c.getColumnIndexOrThrow("value");
- c.moveToFirst();
- String num = c.getString(numCol);
- assertEquals(Integer.toHexString(0), num);
-
- String val = c.getString(valCol);
- assertEquals(Integer.toHexString(1), val);
- c.close();
- }
-
- @MediumTest
- public void testStatementMultipleBindings() throws Exception {
- mDatabase.execSQL("CREATE TABLE test (num INTEGER, str TEXT);");
- SQLiteStatement statement =
- mDatabase.compileStatement("INSERT INTO test (num, str) VALUES (?, ?)");
-
- for (long i = 0; i < 10; i++) {
- statement.bindLong(1, i);
- statement.bindString(2, Long.toHexString(i));
- statement.execute();
- }
- statement.close();
-
- Cursor c = mDatabase.query("test", null, null, null, null, null, "ROWID");
- int numCol = c.getColumnIndexOrThrow("num");
- int strCol = c.getColumnIndexOrThrow("str");
- assertTrue(c.moveToFirst());
- for (long i = 0; i < 10; i++) {
- long num = c.getLong(numCol);
- String str = c.getString(strCol);
- assertEquals(i, num);
- assertEquals(Long.toHexString(i), str);
- c.moveToNext();
- }
- c.close();
- }
-
- private static class StatementTestThread extends Thread {
- private SQLiteDatabase mDatabase;
- private SQLiteStatement mStatement;
-
- public StatementTestThread(SQLiteDatabase db, SQLiteStatement statement) {
- super();
- mDatabase = db;
- mStatement = statement;
- }
-
- @Override
- public void run() {
- mDatabase.beginTransaction();
- for (long i = 0; i < 10; i++) {
- mStatement.bindLong(1, i);
- mStatement.bindString(2, Long.toHexString(i));
- mStatement.execute();
- }
- mDatabase.setTransactionSuccessful();
- mDatabase.endTransaction();
-
- Cursor c = mDatabase.query("test", null, null, null, null, null, "ROWID");
- int numCol = c.getColumnIndexOrThrow("num");
- int strCol = c.getColumnIndexOrThrow("str");
- assertTrue(c.moveToFirst());
- for (long i = 0; i < 10; i++) {
- long num = c.getLong(numCol);
- String str = c.getString(strCol);
- assertEquals(i, num);
- assertEquals(Long.toHexString(i), str);
- c.moveToNext();
- }
- c.close();
- }
- }
-
- @MediumTest
- public void testStatementMultiThreaded() throws Exception {
- mDatabase.execSQL("CREATE TABLE test (num INTEGER, str TEXT);");
- SQLiteStatement statement =
- mDatabase.compileStatement("INSERT INTO test (num, str) VALUES (?, ?)");
-
- StatementTestThread thread = new StatementTestThread(mDatabase, statement);
- thread.start();
- try {
- thread.join();
- } finally {
- statement.close();
- }
- }
-
- @MediumTest
- public void testStatementConstraint() throws Exception {
- mDatabase.execSQL("CREATE TABLE test (num INTEGER NOT NULL);");
- SQLiteStatement statement = mDatabase.compileStatement("INSERT INTO test (num) VALUES (?)");
-
- // Try to insert NULL, which violates the constraint
- try {
- statement.clearBindings();
- statement.execute();
- fail("expected exception not thrown");
- } catch (SQLiteConstraintException e) {
- // expected
- }
-
- // Make sure the statement can still be used
- statement.bindLong(1, 1);
- statement.execute();
- statement.close();
-
- Cursor c = mDatabase.query("test", null, null, null, null, null, null);
- int numCol = c.getColumnIndexOrThrow("num");
- c.moveToFirst();
- long num = c.getLong(numCol);
- assertEquals(1, num);
- c.close();
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/DatabaseStressTest.java b/tests/AndroidTests/src/com/android/unit_tests/DatabaseStressTest.java
deleted file mode 100644
index b110125..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/DatabaseStressTest.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.content.Context;
-import android.database.sqlite.*;
-import android.util.Log;
-
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.Suppress;
-
-import java.io.File;
-
-// This test suite is too desctructive and takes too long to be included in the
-// automated suite.
-@Suppress
-public class DatabaseStressTest extends AndroidTestCase {
- private static final String TAG = "DatabaseStressTest";
- private static final int CURRENT_DATABASE_VERSION = 1;
- private SQLiteDatabase mDatabase;
- private File mDatabaseFile;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- Context c = getContext();
-
- mDatabaseFile = c.getDatabasePath("database_test.db");
- if (mDatabaseFile.exists()) {
- mDatabaseFile.delete();
- }
-
- mDatabase = c.openOrCreateDatabase("database_test.db", 0, null);
-
- assertNotNull(mDatabase);
- mDatabase.setVersion(CURRENT_DATABASE_VERSION);
-
- mDatabase.execSQL("CREATE TABLE IF NOT EXISTS test (_id INTEGER PRIMARY KEY, data TEXT);");
-
- }
-
- @Override
- protected void tearDown() throws Exception {
- mDatabase.close();
- mDatabaseFile.delete();
- super.tearDown();
- }
-
- public void testSingleThreadInsertDelete() {
- int i = 0;
- char[] ch = new char[100000];
- String str = new String(ch);
- String[] strArr = new String[1];
- strArr[0] = str;
- for (; i < 10000; ++i) {
- try {
- mDatabase.execSQL("INSERT INTO test (data) VALUES (?)", strArr);
- mDatabase.execSQL("delete from test;");
- } catch (Exception e) {
- Log.e(TAG, "exception " + e.getMessage());
- }
- }
- }
-
- /**
- * use fillup -p 90 before run the test
- * and when disk run out
- * start delete some fillup files
- * and see if db recover
- */
- public void testOutOfSpace() {
- int i = 0;
- char[] ch = new char[100000];
- String str = new String(ch);
- String[] strArr = new String[1];
- strArr[0] = str;
- for (; i < 10000; ++i) {
- try {
- mDatabase.execSQL("INSERT INTO test (data) VALUES (?)", strArr);
- } catch (Exception e) {
- Log.e(TAG, "exception " + e.getMessage());
- }
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/DatabaseTests.java b/tests/AndroidTests/src/com/android/unit_tests/DatabaseTests.java
deleted file mode 100644
index 68b0b83..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/DatabaseTests.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import junit.framework.TestSuite;
-
-public class DatabaseTests {
- public static TestSuite suite() {
- TestSuite suite = new TestSuite(DatabaseTests.class.getName());
-
- suite.addTestSuite(DatabaseGeneralTest.class);
- suite.addTestSuite(DatabaseCursorTest.class);
- suite.addTestSuite(DatabaseStatementTest.class);
- suite.addTestSuite(DatabaseLocaleTest.class);
- suite.addTestSuite(CursorWindowTest.class);
-
- return suite;
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/ExpatPerformanceTest.java b/tests/AndroidTests/src/com/android/unit_tests/ExpatPerformanceTest.java
deleted file mode 100644
index 0d51047..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/ExpatPerformanceTest.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.util.Log;
-import android.util.Xml;
-import org.kxml2.io.KXmlParser;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlPullParserException;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-public class ExpatPerformanceTest extends AndroidTestCase {
-
- private static final String TAG = ExpatPerformanceTest.class.getSimpleName();
-
- private byte[] mXmlBytes;
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- InputStream in = mContext.getResources().openRawResource(R.raw.youtube);
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- byte[] buffer = new byte[1024];
- int length;
- while ((length = in.read(buffer)) != -1) {
- out.write(buffer, 0, length);
- }
- mXmlBytes = out.toByteArray();
-
- Log.i("***", "File size: " + (mXmlBytes.length / 1024) + "k");
- }
-
- @LargeTest
- public void testPerformance() throws Exception {
-// try {
-// Debug.startMethodTracing("expat3");
-// for (int i = 0; i < 1; i++) {
- runJavaPullParser();
- runSax();
- runExpatPullParser();
-// }
-// } finally {
-// Debug.stopMethodTracing();
-// }
- }
-
- private InputStream newInputStream() {
- return new ByteArrayInputStream(mXmlBytes);
- }
-
- private void runSax() throws IOException, SAXException {
- long start = System.currentTimeMillis();
- Xml.parse(newInputStream(), Xml.Encoding.UTF_8, new DefaultHandler());
- long elapsed = System.currentTimeMillis() - start;
- Log.i(TAG, "expat SAX: " + elapsed + "ms");
- }
-
- private void runExpatPullParser() throws XmlPullParserException, IOException {
- long start = System.currentTimeMillis();
- XmlPullParser pullParser = Xml.newPullParser();
- pullParser.setInput(newInputStream(), "UTF-8");
- withPullParser(pullParser);
- long elapsed = System.currentTimeMillis() - start;
- Log.i(TAG, "expat pull: " + elapsed + "ms");
- }
-
- private void runJavaPullParser() throws XmlPullParserException, IOException {
- XmlPullParser pullParser;
- long start = System.currentTimeMillis();
- pullParser = new KXmlParser();
- pullParser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true);
- pullParser.setInput(newInputStream(), "UTF-8");
- withPullParser(pullParser);
- long elapsed = System.currentTimeMillis() - start;
- Log.i(TAG, "java pull parser: " + elapsed + "ms");
- }
-
- private static void withPullParser(XmlPullParser pullParser)
- throws IOException, XmlPullParserException {
- int eventType = pullParser.next();
- while (eventType != XmlPullParser.END_DOCUMENT) {
- switch (eventType) {
- case XmlPullParser.START_TAG:
- pullParser.getName();
-// int nattrs = pullParser.getAttributeCount();
-// for (int i = 0; i < nattrs; ++i) {
-// pullParser.getAttributeName(i);
-// pullParser.getAttributeValue(i);
-// }
- break;
- case XmlPullParser.END_TAG:
- pullParser.getName();
- break;
- case XmlPullParser.TEXT:
- pullParser.getText();
- break;
- }
- eventType = pullParser.next();
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/GDataParseTest.java b/tests/AndroidTests/src/com/android/unit_tests/GDataParseTest.java
deleted file mode 100644
index af85483..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/GDataParseTest.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.content.res.XmlResourceParser;
-import android.test.AndroidTestCase;
-import android.test.PerformanceTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.util.Xml;
-import com.google.wireless.gdata.data.Entry;
-import com.google.wireless.gdata.data.Feed;
-import com.google.wireless.gdata.parser.ParseException;
-import com.google.wireless.gdata.parser.xml.XmlGDataParser;
-import org.json.JSONObject;
-import org.json.JSONTokener;
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlPullParserException;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.zip.GZIPInputStream;
-
-/**
- * Tests timing on parsing various formats of GData.
- */
-public class GDataParseTest extends AndroidTestCase implements PerformanceTestCase {
-
- private static void parseXml(InputStream is) throws ParseException, IOException {
- XmlPullParser xmlParser = Xml.newPullParser();
- XmlGDataParser parser = new XmlGDataParser(is, xmlParser);
- Feed feed = parser.init();
- Entry entry = null;
- while (parser.hasMoreData()) {
- entry = parser.readNextEntry(entry);
- }
- }
-
- private static void parseXml(XmlPullParser xmlP) throws ParseException, IOException {
- XmlGDataParser parser = new XmlGDataParser(null /* in */, xmlP);
- Feed feed = parser.init();
- Entry entry = null;
- while (parser.hasMoreData()) {
- entry = parser.readNextEntry(entry);
- }
- }
-
- private static void dumpXml(XmlPullParser parser) throws
- XmlPullParserException, IOException {
- int eventType = parser.nextTag();
- while (eventType != XmlPullParser.END_DOCUMENT) {
- switch (eventType) {
- case XmlPullParser.START_TAG:
- parser.getName();
- // System.out.print("<" + parser.getName());
- int nattrs = parser.getAttributeCount();
- for (int i = 0; i < nattrs; ++i) {
- parser.getAttributeName(i);
- parser.getAttributeValue(i);
- // System.out.print(" " + parser.getAttributeName(i) + "=\""
- // + parser.getAttributeValue(i) + "\"");
- }
- // System.out.print(">");
- break;
- case XmlPullParser.END_TAG:
- parser.getName();
- // System.out.print("</" + parser.getName() + ">");
- break;
- case XmlPullParser.TEXT:
- parser.getText();
- // System.out.print(parser.getText());
- break;
- default:
- // do nothing
- }
- eventType = parser.next();
- }
- }
-
- private byte[] getBytesForResource(int resid) throws Exception {
- // all resources are written into a zip file, so the InputStream we
- // get for a resource is on top of zipped
- // data. in order to compare performance of parsing unzipped vs.
- // zipped content, we first read the data into an in-memory buffer.
- InputStream zipIs = null;
- try {
- zipIs = mContext.getResources().openRawResource(resid);
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- byte buf[] = new byte[1024];
- int bytesRead = zipIs.read(buf);
- while (bytesRead > 0) {
- baos.write(buf, 0, bytesRead);
- bytesRead = zipIs.read(buf);
- }
- return baos.toByteArray();
- } finally {
- if (zipIs != null) {
- zipIs.close();
- }
- }
- }
-
- public boolean isPerformanceOnly() {
- return true;
- }
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- return 0;
- }
-
- @MediumTest
- public void testXml() throws Exception {
- InputStream is = new ByteArrayInputStream(getBytesForResource(R.raw.calendarxml));
- try {
- is.reset();
- parseXml(is);
- } finally {
- is.close();
- }
- }
-
- @MediumTest
- public void testXmlGzip() throws Exception {
- InputStream gzIs = new GZIPInputStream(
- new ByteArrayInputStream(getBytesForResource(R.raw.calendarxmlgz)));
- try {
- parseXml(gzIs);
- } finally {
- gzIs.close();
- }
- }
-
- @MediumTest
- public void testJson() throws Exception {
- String jsonString = new String(getBytesForResource(R.raw.calendarjs), "UTF-8");
- JSONTokener tokens = new JSONTokener(jsonString);
- assertNotNull(new JSONObject(tokens));
- }
-
- @SmallTest
- public void testBinaryXml() throws Exception {
- XmlResourceParser parser = mContext.getResources().getXml(R.xml.calendar);
- parseXml(parser);
- parser.close();
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/GeocoderTest.java b/tests/AndroidTests/src/com/android/unit_tests/GeocoderTest.java
deleted file mode 100644
index e28a7dc..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/GeocoderTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.android.unit_tests;
-
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import android.location.Address;
-import android.location.Geocoder;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.Suppress;
-import android.util.Log;
-
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.Locale;
-import java.util.Set;
-import java.util.List;
-
-@Suppress
-public class GeocoderTest extends AndroidTestCase {
-
- public void testGeocoder() throws Exception {
- Locale locale = new Locale("en", "us");
- Geocoder g = new Geocoder(mContext, locale);
-
- List<Address> addresses1 = g.getFromLocation(37.435067, -122.166767, 2);
- assertNotNull(addresses1);
- assertEquals(1, addresses1.size());
-
- Address addr = addresses1.get(0);
- assertEquals("94305", addr.getFeatureName());
- assertEquals("Palo Alto, CA 94305", addr.getAddressLine(0));
- assertEquals("USA", addr.getAddressLine(1));
- assertEquals("94305", addr.getPostalCode());
- assertFalse(Math.abs(addr.getLatitude() - 37.4240385) > 0.1);
-
- List<Address> addresses2 = g.getFromLocationName("San Francisco, CA", 1);
- assertNotNull(addresses2);
- assertEquals(1, addresses2.size());
-
- addr = addresses2.get(0);
- assertEquals("San Francisco", addr.getFeatureName());
- assertEquals("San Francisco, CA", addr.getAddressLine(0));
- assertEquals("United States", addr.getAddressLine(1));
- assertEquals("San Francisco", addr.getLocality());
- assertEquals("CA", addr.getAdminArea());
- assertEquals(null, addr.getPostalCode());
-
- assertFalse(Math.abs(addr.getLatitude() - 37.77916) > 0.1);
-
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/GoogleHttpClientTest.java b/tests/AndroidTests/src/com/android/unit_tests/GoogleHttpClientTest.java
deleted file mode 100644
index d970de3..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/GoogleHttpClientTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.content.ContentResolver;
-import android.net.http.AndroidHttpClient;
-import android.provider.Checkin;
-import android.provider.Settings;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-
-import com.google.android.collect.Lists;
-import com.google.android.net.GoogleHttpClient;
-
-import org.apache.http.HttpException;
-import org.apache.http.HttpRequest;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.protocol.HttpContext;
-import org.apache.http.protocol.HttpRequestHandler;
-import org.apache.http.util.EntityUtils;
-
-import java.io.IOException;
-
-/** Unit test for {@link GoogleHttpClient}. */
-public class GoogleHttpClientTest extends AndroidTestCase {
- private TestHttpServer mServer;
- private String mServerUrl;
-
- protected void setUp() throws Exception {
- // Run a test server that echoes the URI back to the caller.
- mServer = new TestHttpServer();
- mServer.registerHandler("*", new HttpRequestHandler() {
- public void handle(
- HttpRequest request,
- HttpResponse response,
- HttpContext context) throws HttpException, IOException {
- String uri = request.getRequestLine().getUri();
- response.setEntity(new StringEntity(uri));
- }
- });
-
- mServer.start();
- mServerUrl = "http://localhost:" + mServer.getPort() + "/";
- }
-
- protected void tearDown() throws Exception {
- if (mServer != null) mServer.shutdown();
- }
-
- @LargeTest
- public void testThreadCheck() throws Exception {
- ContentResolver resolver = getContext().getContentResolver();
- GoogleHttpClient client = new GoogleHttpClient(resolver, "Test",
- false /* no gzip */);
-
- try {
- // Note: we must test against a real server, because the connection
- // gets established before the interceptor can crash the request.
- HttpGet method = new HttpGet(mServerUrl);
-
- // This is actually an AndroidHttpClient feature...
- // TODO: somehow test that Activity threads have the flag set?
- AndroidHttpClient.setThreadBlocked(true);
-
- try {
- client.execute(method);
- fail("\"thread forbids HTTP requests\" exception expected");
- } catch (RuntimeException e) {
- if (!e.toString().contains("forbids HTTP requests")) throw e;
- } finally {
- AndroidHttpClient.setThreadBlocked(false);
- }
-
- HttpResponse response = client.execute(method);
- assertEquals("/", EntityUtils.toString(response.getEntity()));
- } finally {
- client.close();
- }
- }
-
- @MediumTest
- public void testUrlRewriteRules() throws Exception {
- // Don't do anything exotic; UrlRulesTest checks the actual rewriter.
- // Just make sure that URLs are, in fact, rewritten.
-
- // TODO: Use a MockContentProvider/MockContentResolver instead.
- ContentResolver resolver = getContext().getContentResolver();
- GoogleHttpClient client = new GoogleHttpClient(resolver, "Test",
- false /* not gzip capable */);
- Settings.Gservices.putString(resolver,
- "url:test", "http://foo.bar/ rewrite " + mServerUrl + "new/");
-
- // Update the digest, so the UrlRules cache is reloaded.
- Settings.Gservices.putString(resolver, "digest", mServerUrl);
-
- try {
- HttpGet method = new HttpGet("http://foo.bar/path");
- HttpResponse response = client.execute(method);
- String body = EntityUtils.toString(response.getEntity());
- assertEquals("/new/path", body);
- } finally {
- client.close();
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/GoogleLoginServiceTest.java b/tests/AndroidTests/src/com/android/unit_tests/GoogleLoginServiceTest.java
deleted file mode 100644
index 59f14bf..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/GoogleLoginServiceTest.java
+++ /dev/null
@@ -1,145 +0,0 @@
-// Copyright 2008 The Android Open Source Project
-// All rights reserved.
-
-package com.android.unit_tests;
-
-import java.util.Arrays;
-import java.util.concurrent.locks.ReentrantLock;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.Condition;
-
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.ServiceConnection;
-import android.os.IBinder;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.Suppress;
-import android.util.Log;
-
-import com.google.android.googleapps.GoogleLoginCredentialsResult;
-import com.google.android.googleapps.IGoogleLoginService;
-import com.google.android.googlelogin.GoogleLoginServiceConstants;
-
-import junit.framework.Assert;
-
-// Suppress until bug http://b/issue?id=1416570 is fixed
-@Suppress
-/** Unit test for the Google login service. */
-public class GoogleLoginServiceTest extends AndroidTestCase {
- private static final String TAG = "GoogleLoginServiceTest";
-
- private IGoogleLoginService mGls = null;
- private Lock mGlsLock = new ReentrantLock();
- private Condition mGlsCv = mGlsLock.newCondition();
-
- private ServiceConnection mConnection = new ServiceConnection() {
- public void onServiceConnected(ComponentName className, IBinder service) {
- mGlsLock.lock();
- try {
- mGls = IGoogleLoginService.Stub.asInterface(service);
- mGlsCv.signalAll();
- } finally {
- mGlsLock.unlock();
- }
- Log.v(TAG, "service is connected");
- }
- public void onServiceDisconnected(ComponentName className) {
- mGlsLock.lock();
- try {
- mGls = null;
- mGlsCv.signalAll();
- } finally {
- mGlsLock.unlock();
- }
- Log.v(TAG, "service is disconnected");
- }
- };
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- getContext().bindService((new Intent())
- .setClassName("com.google.android.googleapps",
- "com.google.android.googleapps.GoogleLoginService"),
- mConnection, Context.BIND_AUTO_CREATE);
-
- // wait for the service to cnnnect
- mGlsLock.lock();
- try {
- while (mGls == null) {
- try {
- mGlsCv.await();
- } catch (InterruptedException ignore) {
- }
- }
- } finally {
- mGlsLock.unlock();
- }
- }
-
- @Override
- protected void tearDown() throws Exception {
- getContext().unbindService(mConnection);
- super.tearDown();
- }
-
- public void testSingleAccountScheme() throws Exception {
- Assert.assertNotNull(mGls);
- mGls.deleteAllAccounts();
-
- Assert.assertNull(mGls.getAccount(false));
- Assert.assertNull(mGls.getAccount(true));
-
- mGls.saveUsernameAndPassword("vespa@gmail.com", "meow",
- GoogleLoginServiceConstants.FLAG_GOOGLE_ACCOUNT);
- Assert.assertEquals("vespa@gmail.com", mGls.getAccount(false));
- Assert.assertEquals("vespa@gmail.com", mGls.getAccount(true));
-
- mGls.saveUsernameAndPassword("mackerel@hosted.com", "purr",
- GoogleLoginServiceConstants.FLAG_HOSTED_ACCOUNT);
- Assert.assertEquals("mackerel@hosted.com", mGls.getAccount(false));
- Assert.assertEquals("vespa@gmail.com", mGls.getAccount(true));
- }
-
- public void listsEqual(String[] a, String[] b) {
- Assert.assertEquals(a.length, b.length);
- Arrays.sort(a);
- Arrays.sort(b);
- Assert.assertTrue(Arrays.equals(a, b));
- }
-
- public void testAuthTokens() throws Exception {
- Assert.assertNotNull(mGls);
- mGls.deleteAllAccounts();
-
- Assert.assertNull(mGls.peekCredentials("vespa@example.com", "mail"));
-
- mGls.saveUsernameAndPassword("vespa@example.com", "meow",
- GoogleLoginServiceConstants.FLAG_HOSTED_ACCOUNT);
- Assert.assertNull(mGls.peekCredentials("vespa@example.com", "mail"));
- Assert.assertNull(mGls.peekCredentials(null, "mail"));
-
- mGls.saveAuthToken("vespa@example.com", "mail", "1234");
- Assert.assertEquals("1234", mGls.peekCredentials("vespa@example.com", "mail"));
- Assert.assertEquals("1234", mGls.peekCredentials(null, "mail"));
-
- mGls.saveUsernameAndPassword("mackerel@example.com", "purr",
- GoogleLoginServiceConstants.FLAG_GOOGLE_ACCOUNT);
- mGls.saveAuthToken("mackerel@example.com", "mail", "5678");
- Assert.assertEquals("1234", mGls.peekCredentials(null, "mail"));
-
- mGls.saveAuthToken("mackerel@example.com", "mail", "8765");
- Assert.assertEquals("8765", mGls.peekCredentials("mackerel@example.com", "mail"));
-
- GoogleLoginCredentialsResult r = mGls.blockingGetCredentials(
- "vespa@example.com", "mail", false);
- Assert.assertEquals("vespa@example.com", r.getAccount());
- Assert.assertEquals("1234", r.getCredentialsString());
- Assert.assertNull(r.getCredentialsIntent());
-
- mGls.saveAuthToken("vespa@example.com", "cl", "abcd");
- Assert.assertEquals("1234", mGls.peekCredentials("vespa@example.com", "mail"));
- Assert.assertEquals("abcd", mGls.peekCredentials("vespa@example.com", "cl"));
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/GraphicsPerformanceTests.java b/tests/AndroidTests/src/com/android/unit_tests/GraphicsPerformanceTests.java
deleted file mode 100644
index a6c5869..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/GraphicsPerformanceTests.java
+++ /dev/null
@@ -1,448 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import junit.framework.Assert;
-import android.content.Context;
-import android.content.res.Resources;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.graphics.Canvas;
-import android.graphics.Paint;
-import android.test.AndroidTestCase;
-import android.test.PerformanceTestCase;
-import android.test.suitebuilder.annotation.Suppress;
-import android.util.Log;
-
-/**
- * Graphics Performance Tests
- *
- */
-//We don't want to run these perf tests in the continuous build.
-@Suppress
-public class GraphicsPerformanceTests {
- private static final String TAG = "GfxPerf";
- public static String[] children() {
- return new String[] {
- // test decoding bitmaps of various sizes
- DecodeBitmapTest.class.getName(),
-
- // odd-sized bitmap drawing tests
- DrawBitmap7x7.class.getName(),
- DrawBitmap15x15.class.getName(),
- DrawBitmap31x31.class.getName(),
- DrawBitmap63x63.class.getName(),
- DrawBitmap127x127.class.getName(),
- DrawBitmap319x239.class.getName(),
- DrawBitmap319x479.class.getName(),
-
- // even-sized bitmap drawing tests
- DrawBitmap8x8.class.getName(),
- DrawBitmap16x16.class.getName(),
- DrawBitmap32x32.class.getName(),
- DrawBitmap64x64.class.getName(),
- DrawBitmap128x128.class.getName(),
- DrawBitmap320x240.class.getName(),
- DrawBitmap320x480.class.getName()};
- }
-
- /**
- * Base class for all graphics tests
- *
- */
- public static abstract class GraphicsTestBase extends AndroidTestCase
- implements PerformanceTestCase {
- /** Target "screen" (bitmap) width and height */
- private static final int DEFAULT_ITERATIONS = 1;
- private static final int SCREEN_WIDTH = 320;
- private static final int SCREEN_HEIGHT = 480;
-
- /** Number of iterations to pass back to harness. Subclass should override */
- protected int mIterations = 1;
-
- /** Bitmap we allocate and draw to */
- protected Bitmap mDestBitmap;
-
- /** Canvas of drawing routines */
- protected Canvas mCanvas;
-
- /** Style and color information (uses defaults) */
- protected Paint mPaint;
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- // Create drawable bitmap for rendering into
- mDestBitmap = Bitmap.createBitmap(SCREEN_WIDTH, SCREEN_HEIGHT,
- Bitmap.Config.RGB_565);
- // Set of drawing routines
- mCanvas = new Canvas(mDestBitmap);
- // Styles
- mPaint = new Paint();
- // Ask subclass for number of iterations
- mIterations = getIterations();
- }
-
- // A reasonable default
- public int getIterations() {
- return DEFAULT_ITERATIONS;
- }
-
- public boolean isPerformanceOnly() {
- return true;
- }
-
- public int startPerformance(Intermediates intermediates) {
- intermediates.setInternalIterations(mIterations * 10);
- return 0;
- }
- }
-
- /**
- * Tests time to decode a number of sizes of images.
- */
- public static class DecodeBitmapTest extends GraphicsTestBase {
- /** Number of times to run this test */
- private static final int DECODE_ITERATIONS = 10;
-
- /** Used to access package bitmap images */
- private Resources mResources;
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
-
- // For bitmap resources
- Context context = getContext();
- Assert.assertNotNull(context);
- mResources = context.getResources();
- Assert.assertNotNull(mResources);
- }
-
- @Override
- public int getIterations() {
- return DECODE_ITERATIONS;
- }
-
- public void testDecodeBitmap() {
- for (int i = 0; i < DECODE_ITERATIONS; i++) {
- BitmapFactory.decodeResource(mResources, R.drawable.test16x12);
- BitmapFactory.decodeResource(mResources, R.drawable.test32x24);
- BitmapFactory.decodeResource(mResources, R.drawable.test64x48);
- BitmapFactory.decodeResource(mResources, R.drawable.test128x96);
- BitmapFactory.decodeResource(mResources, R.drawable.test256x192);
- BitmapFactory.decodeResource(mResources, R.drawable.test320x240);
- }
- }
- }
-
- /**
- * Base class for bitmap drawing tests
- *
- */
- public static abstract class DrawBitmapTest extends GraphicsTestBase {
- /** Number of times to run each draw test */
- private static final int ITERATIONS = 1000;
-
- /** Bitmap to draw. Allocated by subclass's createBitmap() function. */
- private Bitmap mBitmap;
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
-
- // Invoke subclass's method to create the bitmap
- mBitmap = createBitmap();
- }
-
- public int getIterations() {
- return ITERATIONS;
- }
-
- // Generic abstract function to create bitmap for any given subclass
- public abstract Bitmap createBitmap();
-
- // Provide convenience test code for all subsequent classes.
- // Note: Though it would be convenient to declare all of the test*() methods here
- // and just inherit them, our test harness doesn't support it. So we replicate
- // a bit of code in each derived test case.
- public void drawBitmapEven() {
- for (int i = 0; i < ITERATIONS; i++) {
- mCanvas.drawBitmap(mBitmap, 0.0f, 0.0f, mPaint);
- }
- }
-
- public void drawBitmapOdd() {
- for (int i = 0; i < ITERATIONS; i++) {
- mCanvas.drawBitmap(mBitmap, 1.0f, 0.0f, mPaint);
- }
- }
- }
-
-
- /**
- * Test drawing of 7x7 image
- */
- public static class DrawBitmap7x7 extends DrawBitmapTest {
-
- public Bitmap createBitmap() {
- return Bitmap.createBitmap(7, 7, Bitmap.Config.RGB_565);
- }
-
- public void testDrawBitmapEven() {
- drawBitmapEven();
- }
-
- public void testDrawBitmapOdd() {
- drawBitmapOdd();
- }
- }
-
- /**
- * Test drawing of 15x15 image
- */
- public static class DrawBitmap15x15 extends DrawBitmapTest {
-
- public Bitmap createBitmap() {
- return Bitmap.createBitmap(15, 15, Bitmap.Config.RGB_565);
- }
-
- public void testDrawBitmapEven() {
- drawBitmapEven();
- }
-
- public void testDrawBitmapOdd() {
- drawBitmapOdd();
- }
- }
-
- /**
- * Test drawing of 31x31 image
- */
- public static class DrawBitmap31x31 extends DrawBitmapTest {
-
- public Bitmap createBitmap() {
- return Bitmap.createBitmap(31, 31, Bitmap.Config.RGB_565);
- }
-
- public void testDrawBitmapEven() {
- drawBitmapEven();
- }
-
- public void testDrawBitmapOdd() {
- drawBitmapOdd();
- }
- }
-
- /**
- * Test drawing of 63x63 image
- */
- public static class DrawBitmap63x63 extends DrawBitmapTest {
-
- public Bitmap createBitmap() {
- return Bitmap.createBitmap(63, 63, Bitmap.Config.RGB_565);
- }
-
- public void testDrawBitmapEven() {
- drawBitmapEven();
- }
-
- public void testDrawBitmapOdd() {
- drawBitmapOdd();
- }
- }
-
- /**
- * Test drawing of 127x127 image
- */
- public static class DrawBitmap127x127 extends DrawBitmapTest {
-
- public Bitmap createBitmap() {
- return Bitmap.createBitmap(127, 127, Bitmap.Config.RGB_565);
- }
-
- public void testDrawBitmapEven() {
- drawBitmapEven();
- }
-
- public void testDrawBitmapOdd() {
- drawBitmapOdd();
- }
- }
-
- /**
- * Test drawing of 319x239 image
- */
- public static class DrawBitmap319x239 extends DrawBitmapTest {
-
- public Bitmap createBitmap() {
- return Bitmap.createBitmap(319, 239, Bitmap.Config.RGB_565);
- }
-
- public void testDrawBitmapEven() {
- drawBitmapEven();
- }
-
- public void testDrawBitmapOdd() {
- drawBitmapOdd();
- }
- }
-
- /**
- * Test drawing of 319x479 image
- */
- public static class DrawBitmap319x479 extends DrawBitmapTest {
-
- public Bitmap createBitmap() {
- return Bitmap.createBitmap(319, 479, Bitmap.Config.RGB_565);
- }
-
- public void testDrawBitmapEven() {
- drawBitmapEven();
- }
-
- public void testDrawBitmapOdd() {
- drawBitmapOdd();
- }
- }
-
- /**
- * Test drawing of 8x8 image
- */
- public static class DrawBitmap8x8 extends DrawBitmapTest {
-
- public Bitmap createBitmap() {
- return Bitmap.createBitmap(8, 8, Bitmap.Config.RGB_565);
- }
-
- public void testDrawBitmapEven() {
- drawBitmapEven();
- }
-
- public void testDrawBitmapOdd() {
- drawBitmapOdd();
- }
- }
-
- /**
- * Test drawing of 16x16 image
- */
- public static class DrawBitmap16x16 extends DrawBitmapTest {
-
- public Bitmap createBitmap() {
- return Bitmap.createBitmap(16, 16, Bitmap.Config.RGB_565);
- }
-
- public void testDrawBitmapEven() {
- drawBitmapEven();
- }
-
- public void testDrawBitmapOdd() {
- drawBitmapOdd();
- }
- }
-
- /**
- * Test drawing of 32x32 image
- */
- public static class DrawBitmap32x32 extends DrawBitmapTest {
-
- public Bitmap createBitmap() {
- return Bitmap.createBitmap(32, 32, Bitmap.Config.RGB_565);
- }
-
- public void testDrawBitmapEven() {
- drawBitmapEven();
- }
-
- public void testDrawBitmapOdd() {
- drawBitmapOdd();
- }
- }
-
- /**
- * Test drawing of 64x64 image
- */
- public static class DrawBitmap64x64 extends DrawBitmapTest {
-
- public Bitmap createBitmap() {
- return Bitmap.createBitmap(64, 64, Bitmap.Config.RGB_565);
- }
-
- public void testDrawBitmapEven() {
- drawBitmapEven();
- }
-
- public void testDrawBitmapOdd() {
- drawBitmapOdd();
- }
- }
-
- /**
- * Test drawing of 128x128 image
- */
- public static class DrawBitmap128x128 extends DrawBitmapTest {
-
- public Bitmap createBitmap() {
- return Bitmap.createBitmap(128, 128, Bitmap.Config.RGB_565);
- }
-
- public void testDrawBitmapEven() {
- drawBitmapEven();
- }
-
- public void testDrawBitmapOdd() {
- drawBitmapOdd();
- }
- }
-
- /**
- * Test drawing of 320x240 image
- */
- public static class DrawBitmap320x240 extends DrawBitmapTest {
-
- public Bitmap createBitmap() {
- return Bitmap.createBitmap(320, 240, Bitmap.Config.RGB_565);
- }
-
- public void testDrawBitmapEven() {
- drawBitmapEven();
- }
-
- public void testDrawBitmapOdd() {
- drawBitmapOdd();
- }
- }
-
- /**
- * Test drawing of 320x480 image
- */
- public static class DrawBitmap320x480 extends DrawBitmapTest {
-
- public Bitmap createBitmap() {
- return Bitmap.createBitmap(320, 480, Bitmap.Config.RGB_565);
- }
-
- public void testDrawBitmapEven() {
- drawBitmapEven();
- }
-
- public void testDrawBitmapOdd() {
- drawBitmapOdd();
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/HashMapTest.java b/tests/AndroidTests/src/com/android/unit_tests/HashMapTest.java
deleted file mode 100644
index b4d15c9..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/HashMapTest.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Set;
-
-import android.test.PerformanceTestBase;
-import android.test.PerformanceTestCase;
-
-public class HashMapTest extends PerformanceTestBase {
- public static final int ITERATIONS = 1000;
- public HashMap mMap;
- public String[] mKeys;
-
- @Override
- @SuppressWarnings("unchecked")
- protected void setUp() throws Exception {
- super.setUp();
- mMap = new HashMap();
- mKeys = new String[ITERATIONS];
-
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- mKeys[i] = Integer.toString(i, 16);
- mMap.put(mKeys[i], i);
- }
- }
-
- @Override
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS);
- return 0;
- }
-
- public void testHashMapGet() {
- int num;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- num = (Integer) mMap.get(mKeys[i]);
- num = (Integer) mMap.get(mKeys[i]);
- num = (Integer) mMap.get(mKeys[i]);
- num = (Integer) mMap.get(mKeys[i]);
- num = (Integer) mMap.get(mKeys[i]);
- num = (Integer) mMap.get(mKeys[i]);
- num = (Integer) mMap.get(mKeys[i]);
- num = (Integer) mMap.get(mKeys[i]);
- num = (Integer) mMap.get(mKeys[i]);
- num = (Integer) mMap.get(mKeys[i]);
- }
- }
-
- public void testHashMapKeySet() {
- Set keyset;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- keyset = mMap.keySet();
- keyset = mMap.keySet();
- keyset = mMap.keySet();
- keyset = mMap.keySet();
- keyset = mMap.keySet();
- keyset = mMap.keySet();
- keyset = mMap.keySet();
- keyset = mMap.keySet();
- keyset = mMap.keySet();
- keyset = mMap.keySet();
- }
- }
-
- public void testHashMapEntrySet() {
- Set keyset;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- keyset = mMap.entrySet();
- keyset = mMap.entrySet();
- keyset = mMap.entrySet();
- keyset = mMap.entrySet();
- keyset = mMap.entrySet();
- keyset = mMap.entrySet();
- keyset = mMap.entrySet();
- keyset = mMap.entrySet();
- keyset = mMap.entrySet();
- keyset = mMap.entrySet();
-
-
- }
- }
-
- public void testHashMapValues() {
- Collection c;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- c = mMap.values();
- c = mMap.values();
- c = mMap.values();
- c = mMap.values();
- c = mMap.values();
- c = mMap.values();
- c = mMap.values();
- c = mMap.values();
- c = mMap.values();
- c = mMap.values();
-
-
- }
- }
-
- public void testHashMapSize() {
- int len;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- len = mMap.size();
- len = mMap.size();
- len = mMap.size();
- len = mMap.size();
- len = mMap.size();
- len = mMap.size();
- len = mMap.size();
- len = mMap.size();
- len = mMap.size();
- len = mMap.size();
-
-
- }
- }
-
- public void testHashMapContainsValue() {
- boolean flag;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- flag = mMap.containsValue(i);
- flag = mMap.containsValue(i);
- flag = mMap.containsValue(i);
- flag = mMap.containsValue(i);
- flag = mMap.containsValue(i);
- flag = mMap.containsValue(i);
- flag = mMap.containsValue(i);
- flag = mMap.containsValue(i);
- flag = mMap.containsValue(i);
- flag = mMap.containsValue(i);
-
-
- }
- }
-
- public void testHashMapRemove() {
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- mMap.remove(mKeys[i]);
- mMap.remove(mKeys[i]);
- mMap.remove(mKeys[i]);
- mMap.remove(mKeys[i]);
- mMap.remove(mKeys[i]);
- mMap.remove(mKeys[i]);
- mMap.remove(mKeys[i]);
- mMap.remove(mKeys[i]);
- mMap.remove(mKeys[i]);
- mMap.remove(mKeys[i]);
- }
- }
-
-
- public void testHashMapClone() {
- HashMap cMap;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- cMap = (HashMap) mMap.clone();
- cMap = (HashMap) mMap.clone();
- cMap = (HashMap) mMap.clone();
- cMap = (HashMap) mMap.clone();
- cMap = (HashMap) mMap.clone();
- cMap = (HashMap) mMap.clone();
- cMap = (HashMap) mMap.clone();
- cMap = (HashMap) mMap.clone();
- cMap = (HashMap) mMap.clone();
- cMap = (HashMap) mMap.clone();
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/HashSetTest.java b/tests/AndroidTests/src/com/android/unit_tests/HashSetTest.java
deleted file mode 100644
index 80d3d8d..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/HashSetTest.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.test.PerformanceTestBase;
-import android.test.PerformanceTestCase;
-
-import java.util.HashSet;
-import java.util.Iterator;
-
-/**
- * Implements basic performance test functionality for HashSets
- */
-
-public class HashSetTest extends PerformanceTestBase {
- public static final int ITERATIONS = 1000;
- public static HashSet<Integer> sSet;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- sSet = new HashSet<Integer>();
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- sSet.add(i);
- }
- }
-
- @Override
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS);
- return 0;
- }
-
- /**
- *
- * Tests performance for the HashSet method Add(Object arg 0)
- *
- */
-
- @SuppressWarnings("unchecked")
- public void testHashSetAdd() {
- HashSet set = new HashSet();
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- set.add(i);
- set.add(i);
- set.add(i);
- set.add(i);
- set.add(i);
- set.add(i);
- set.add(i);
- set.add(i);
- set.add(i);
- set.add(i);
- }
-
- }
-
- /**
- *
- * Tests performance of HashSet method contains(Object arg 0)
- *
- */
-
- public void testHashSetContains() {
- Integer index = new Integer(500);
- boolean flag;
- HashSet set = sSet;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- flag = set.contains(index);
- flag = set.contains(index);
- flag = set.contains(index);
- flag = set.contains(index);
- flag = set.contains(index);
- flag = set.contains(index);
- flag = set.contains(index);
- flag = set.contains(index);
- flag = set.contains(index);
- }
- }
-
- /**
- *
- * Tests performance of HashSet method size()
- *
- */
-
- public void testHashSetSize() {
- int num;
- HashSet set = sSet;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- num = set.size();
- num = set.size();
- num = set.size();
- num = set.size();
- num = set.size();
- num = set.size();
- num = set.size();
- num = set.size();
- num = set.size();
- }
- }
-
- /**
- *
- * Tests performance of the HashSet method -iterator()
- *
- */
-
- public void testHashSetIterator() {
- Iterator iterator;
- HashSet set = sSet;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- iterator = set.iterator();
- iterator = set.iterator();
- iterator = set.iterator();
- iterator = set.iterator();
- iterator = set.iterator();
- iterator = set.iterator();
- iterator = set.iterator();
- iterator = set.iterator();
- iterator = set.iterator();
- }
- }
-
- /**
- *
- * Tests performance for the HashSet method Remove(Object arg 0)
- *
- */
-
- @SuppressWarnings("unchecked")
- public void testHashSetRemove() {
- HashSet set = new HashSet(sSet);
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- set.remove(i);
- set.remove(i);
- set.remove(i);
- set.remove(i);
- set.remove(i);
- set.remove(i);
- set.remove(i);
- set.remove(i);
- set.remove(i);
- set.remove(i);
- }
- }
-
- /**
- *
- * Tests performance for the HashSet method isEmpty(Object arg 0)
- *
- */
-
- public void testHashSetIsEmpty() {
- HashSet set = sSet;
- boolean flag;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- flag = set.isEmpty();
- flag = set.isEmpty();
- flag = set.isEmpty();
- flag = set.isEmpty();
- flag = set.isEmpty();
- flag = set.isEmpty();
- flag = set.isEmpty();
- flag = set.isEmpty();
- flag = set.isEmpty();
- flag = set.isEmpty();
- }
- }
-
- /**
- *
- * Tests performance for the HashSet method clone()
- *
- */
-
- public void testHashSetClone() {
- HashSet hSet = sSet;
- Object set;
- for (int i = ITERATIONS - 1; i > 0; i--) {
- set = hSet.clone();
- set = hSet.clone();
- set = hSet.clone();
- set = hSet.clone();
- set = hSet.clone();
- set = hSet.clone();
- set = hSet.clone();
- set = hSet.clone();
- set = hSet.clone();
- set = hSet.clone();
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/HashtableTest.java b/tests/AndroidTests/src/com/android/unit_tests/HashtableTest.java
deleted file mode 100644
index 42bec11..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/HashtableTest.java
+++ /dev/null
@@ -1,357 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.test.PerformanceTestBase;
-import android.test.PerformanceTestCase;
-
-import java.util.Hashtable;
-import java.util.Set;
-import java.util.Enumeration;
-
-/**
- * Implements basic performance test functionality for java.util.Hashtable
- */
-
-public class HashtableTest extends PerformanceTestBase {
- public static final int ITERATIONS = 1000;
- public Hashtable<String, Integer> sTable;
- public String[] sKeys;
-
- @Override
- @SuppressWarnings("unchecked")
- protected void setUp() throws Exception {
- super.setUp();
- sTable = new Hashtable();
- sKeys = new String[ITERATIONS];
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- sKeys[i] = Integer.toString(i, 16);
- sTable.put(sKeys[i], i);
- }
- }
-
- @Override
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS);
- return 0;
- }
-
- @SuppressWarnings("unchecked")
- public void testHashtablePut() {
- Hashtable hTable = new Hashtable();
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- hTable.put(i, i);
- hTable.put(i, i);
- hTable.put(i, i);
- hTable.put(i, i);
- hTable.put(i, i);
- hTable.put(i, i);
- hTable.put(i, i);
- hTable.put(i, i);
- hTable.put(i, i);
- hTable.put(i, i);
- }
- }
-
- public void testHashtableGet() {
- int value;
- String[] keys = sKeys;
- Hashtable<String, Integer> hTable = sTable;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- value = hTable.get(keys[i]);
- value = hTable.get(keys[i]);
- value = hTable.get(keys[i]);
- value = hTable.get(keys[i]);
- value = hTable.get(keys[i]);
- value = hTable.get(keys[i]);
- value = hTable.get(keys[i]);
- value = hTable.get(keys[i]);
- value = hTable.get(keys[i]);
- value = hTable.get(keys[i]);
- }
- }
-
- public void testHashtablekeyset() {
- Set keyset;
- Hashtable<String, Integer> hTable = sTable;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- keyset = hTable.keySet();
- keyset = hTable.keySet();
- keyset = hTable.keySet();
- keyset = hTable.keySet();
- keyset = hTable.keySet();
- keyset = hTable.keySet();
- keyset = hTable.keySet();
- keyset = hTable.keySet();
- keyset = hTable.keySet();
- keyset = hTable.keySet();
- }
- }
-
- /**
- *
- */
-
- public void testHashtableEntrySet() {
- Set keyset;
- Hashtable<String, Integer> hTable = sTable;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- keyset = hTable.entrySet();
- keyset = hTable.entrySet();
- keyset = hTable.entrySet();
- keyset = hTable.entrySet();
- keyset = hTable.entrySet();
- keyset = hTable.entrySet();
- keyset = hTable.entrySet();
- keyset = hTable.entrySet();
- keyset = hTable.entrySet();
- keyset = hTable.entrySet();
- }
- }
-
- public void testHashtableSize() {
- int len;
- Hashtable<String, Integer> hTable = sTable;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- len = hTable.size();
- len = hTable.size();
- len = hTable.size();
- len = hTable.size();
- len = hTable.size();
- len = hTable.size();
- len = hTable.size();
- len = hTable.size();
- len = hTable.size();
- len = hTable.size();
- }
- }
-
- public void testHashtableContainsValue() {
- boolean flag;
- Hashtable<String, Integer> hTable = sTable;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- flag = hTable.containsValue(i);
- flag = hTable.containsValue(i);
- flag = hTable.containsValue(i);
- flag = hTable.containsValue(i);
- flag = hTable.containsValue(i);
- flag = hTable.containsValue(i);
- flag = hTable.containsValue(i);
- flag = hTable.containsValue(i);
- flag = hTable.containsValue(i);
- flag = hTable.containsValue(i);
- }
- }
-
- @SuppressWarnings("unchecked")
- public void testHashtableRemove() {
- Hashtable<String, Integer> hTable = new Hashtable(sTable);
- String[] keys = sKeys;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- hTable.remove(keys[i]);
- hTable.remove(keys[i]);
- hTable.remove(keys[i]);
- hTable.remove(keys[i]);
- hTable.remove(keys[i]);
- hTable.remove(keys[i]);
- hTable.remove(keys[i]);
- hTable.remove(keys[i]);
- hTable.remove(keys[i]);
- hTable.remove(keys[i]);
- }
- }
-
- public void testHashtableContains() {
- Hashtable<String, Integer> hTable = sTable;
- boolean flag;
-
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- flag = hTable.contains(i);
- flag = hTable.contains(i);
- flag = hTable.contains(i);
- flag = hTable.contains(i);
- flag = hTable.contains(i);
- flag = hTable.contains(i);
- flag = hTable.contains(i);
- flag = hTable.contains(i);
- flag = hTable.contains(i);
- flag = hTable.contains(i);
- }
- }
-
- public void testHashtableContainsKey() {
- Hashtable<String, Integer> hTable = sTable;
- boolean flag;
-
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- flag = hTable.containsKey(i);
- flag = hTable.containsKey(i);
- flag = hTable.containsKey(i);
- flag = hTable.containsKey(i);
- flag = hTable.containsKey(i);
- flag = hTable.containsKey(i);
- flag = hTable.containsKey(i);
- flag = hTable.containsKey(i);
- flag = hTable.containsKey(i);
- flag = hTable.containsKey(i);
- }
- }
-
- public void testHashtableIsEmpty() {
- Hashtable<String, Integer> hTable = sTable;
- boolean flag;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- flag = hTable.isEmpty();
- flag = hTable.isEmpty();
- flag = hTable.isEmpty();
- flag = hTable.isEmpty();
- flag = hTable.isEmpty();
- flag = hTable.isEmpty();
- flag = hTable.isEmpty();
- flag = hTable.isEmpty();
- flag = hTable.isEmpty();
- flag = hTable.isEmpty();
- }
- }
-
- public void testHashtableKeys() {
- Hashtable<String, Integer> hTable = sTable;
- Enumeration<String> keys;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- keys = hTable.keys();
- keys = hTable.keys();
- keys = hTable.keys();
- keys = hTable.keys();
- keys = hTable.keys();
- keys = hTable.keys();
- keys = hTable.keys();
- keys = hTable.keys();
- keys = hTable.keys();
- keys = hTable.keys();
- }
- }
-
- public void testHashtableElements() {
- Hashtable<String, Integer> hTable = sTable;
- Enumeration<Integer> elements;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- elements = hTable.elements();
- elements = hTable.elements();
- elements = hTable.elements();
- elements = hTable.elements();
- elements = hTable.elements();
- elements = hTable.elements();
- elements = hTable.elements();
- elements = hTable.elements();
- elements = hTable.elements();
- elements = hTable.elements();
- }
- }
-
- public void testHashtableHashCode() {
- int index;
- Hashtable<String, Integer> hTable = sTable;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- index = hTable.hashCode();
- index = hTable.hashCode();
- index = hTable.hashCode();
- index = hTable.hashCode();
- index = hTable.hashCode();
- index = hTable.hashCode();
- index = hTable.hashCode();
- index = hTable.hashCode();
- index = hTable.hashCode();
- index = hTable.hashCode();
- }
- }
-
- public void testHashtableEquals() {
- boolean flag;
- Hashtable<String, Integer> hTable = sTable;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- flag = hTable.equals(hTable);
- flag = hTable.equals(hTable);
- flag = hTable.equals(hTable);
- flag = hTable.equals(hTable);
- flag = hTable.equals(hTable);
- flag = hTable.equals(hTable);
- flag = hTable.equals(hTable);
- flag = hTable.equals(hTable);
- flag = hTable.equals(hTable);
- flag = hTable.equals(hTable);
- }
- }
-
- public void testHashtableToString() {
- String str;
- Hashtable<String, Integer> hTable = sTable;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- str = hTable.toString();
- str = hTable.toString();
- str = hTable.toString();
- str = hTable.toString();
- str = hTable.toString();
- str = hTable.toString();
- str = hTable.toString();
- str = hTable.toString();
- str = hTable.toString();
- str = hTable.toString();
- }
- }
-
- @SuppressWarnings("unchecked")
- public void testHashtablePutAll() {
- Hashtable<String, Integer> hTable = new Hashtable();
- Hashtable<String, Integer> hTable1 = sTable;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- hTable.putAll(hTable1);
- hTable.putAll(hTable1);
- hTable.putAll(hTable1);
- hTable.putAll(hTable1);
- hTable.putAll(hTable1);
- hTable.putAll(hTable1);
- hTable.putAll(hTable1);
- hTable.putAll(hTable1);
- hTable.putAll(hTable1);
- hTable.putAll(hTable1);
- }
- }
-
- /**
- *
- * clone() returns a Hashtable .. It should return Object as per the
- * specification.
- *
- */
-
- public void testHashtableClone() {
- Hashtable hashTable;
- Hashtable<String, Integer> hTable = sTable;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- hashTable = (Hashtable) hTable.clone();
- hashTable = (Hashtable) hTable.clone();
- hashTable = (Hashtable) hTable.clone();
- hashTable = (Hashtable) hTable.clone();
- hashTable = (Hashtable) hTable.clone();
- hashTable = (Hashtable) hTable.clone();
- hashTable = (Hashtable) hTable.clone();
- hashTable = (Hashtable) hTable.clone();
- hashTable = (Hashtable) hTable.clone();
- hashTable = (Hashtable) hTable.clone();
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/HeapTest.java b/tests/AndroidTests/src/com/android/unit_tests/HeapTest.java
deleted file mode 100644
index d21e6a3..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/HeapTest.java
+++ /dev/null
@@ -1,631 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.util.Log;
-import android.test.suitebuilder.annotation.Suppress;
-import dalvik.system.VMRuntime;
-import junit.framework.TestCase;
-
-import java.lang.ref.PhantomReference;
-import java.lang.ref.ReferenceQueue;
-import java.lang.ref.SoftReference;
-import java.lang.ref.WeakReference;
-import java.util.LinkedList;
-import java.util.Random;
-
-
-public class HeapTest extends TestCase {
-
- private static final String TAG = "HeapTest";
-
- /**
- * Returns a WeakReference to an object that has no
- * other references. This is done in a separate method
- * to ensure that the Object's address isn't sitting in
- * a stale local register.
- */
- private WeakReference<Object> newRef() {
- return new WeakReference<Object>(new Object());
- }
-
- /**
- * Allocates the specified number of bytes. This is done in a separate method
- * to ensure that the Object's address isn't sitting in a stale local register.
- */
- private void allocateMemory(int size) {
- byte[] b = new byte[size];
- }
-
- @MediumTest
- public void testMinimumHeapSize() throws Exception {
- VMRuntime r = VMRuntime.getRuntime();
- final boolean RUN_FLAKY = false;
-
- long origSize = r.getMinimumHeapSize();
- if (RUN_FLAKY) {
- /* Check that the default value is zero. This will break if anyone
- * in this process sets the minimum heap size to a positive value
- * before calling this test.
- */
- assertTrue(origSize == 0);
- }
-
- long size = 4 * 1024 * 1024;
- long oldSize = r.setMinimumHeapSize(size);
- assertTrue(oldSize == origSize);
-
- long newSize = r.getMinimumHeapSize();
- /* This will fail if the maximum heap size (-Xmx) is smaller than 4MB.
- */
- assertTrue(newSize == size);
-
- /* Make sure that getting the size doesn't change anything.
- */
- newSize = r.getMinimumHeapSize();
- assertTrue(newSize == size);
-
- /* This test is flaky; if the heap is already large and fragmented,
- * it can fail. It can also fail if another thread causes a GC
- * at the wrong time.
- */
- if (RUN_FLAKY) {
- /* Increase the minimum size, allocate a big object, and make sure that
- * a GC didn't happen.
- */
- WeakReference ref = newRef();
- assertNotNull(ref.get());
-
- r.setMinimumHeapSize(8 * 1024 * 1024);
- allocateMemory(4 * 1024 * 1024);
-
- /* If a GC happened, this reference will be null.
- */
- assertNotNull(ref.get());
- }
-
- /* Restore the original setting.
- */
- r.setMinimumHeapSize(origSize);
- newSize = r.getMinimumHeapSize();
- assertTrue(newSize == origSize);
-
- /* Clean up any large stuff we've allocated,
- * and re-establish the normal utilization ratio.
- */
- Runtime.getRuntime().gc();
- }
-
- private static void makeRefs(Object objects[], SoftReference<Object> refs[]) {
- for (int i = 0; i < objects.length; i++) {
- objects[i] = (Object) new byte[8 * 1024];
- refs[i] = new SoftReference<Object>(objects[i]);
- }
- }
-
- private static <T> int checkRefs(SoftReference<T> refs[], int last) {
- int i;
- int numCleared = 0;
- for (i = 0; i < refs.length; i++) {
- Object o = refs[i].get();
- if (o == null) {
- numCleared++;
- }
- }
- if (numCleared != last) {
- Log.i(TAG, "****** " + numCleared + "/" + i + " cleared ******");
- }
- return numCleared;
- }
-
- private static void clearRefs(Object objects[], int skip) {
- for (int i = 0; i < objects.length; i += skip) {
- objects[i] = null;
- }
- }
-
- private static void clearRefs(Object objects[]) {
- clearRefs(objects, 1);
- }
-
- private static <T> void checkRefs(T objects[], SoftReference<T> refs[]) {
- boolean ok = true;
-
- for (int i = 0; i < objects.length; i++) {
- if (refs[i].get() != objects[i]) {
- ok = false;
- }
- }
- if (!ok) {
- throw new RuntimeException("Test failed: soft refs not cleared");
- }
- }
-
- @MediumTest
- public void testGcSoftRefs() throws Exception {
- final int NUM_REFS = 128;
-
- Object objects[] = new Object[NUM_REFS];
- SoftReference<Object> refs[] = new SoftReference[objects.length];
-
- /* Create a bunch of objects and a parallel array
- * of SoftReferences.
- */
- makeRefs(objects, refs);
- Runtime.getRuntime().gc();
-
- /* Let go of some of the hard references to the objects so that
- * the references can be cleared.
- */
- clearRefs(objects, 3);
-
- /* Collect all softly-reachable objects.
- */
- VMRuntime.getRuntime().gcSoftReferences();
- Runtime.getRuntime().runFinalization();
-
- /* Make sure that the objects were collected.
- */
- checkRefs(objects, refs);
-
- /* Remove more hard references and re-check.
- */
- clearRefs(objects, 2);
- VMRuntime.getRuntime().gcSoftReferences();
- Runtime.getRuntime().runFinalization();
- checkRefs(objects, refs);
-
- /* Remove the rest of the references and re-check.
- */
- /* Remove more hard references and re-check.
- */
- clearRefs(objects);
- VMRuntime.getRuntime().gcSoftReferences();
- Runtime.getRuntime().runFinalization();
- checkRefs(objects, refs);
- }
-
- public void xxtestSoftRefPartialClean() throws Exception {
- final int NUM_REFS = 128;
-
- Object objects[] = new Object[NUM_REFS];
- SoftReference<Object> refs[] = new SoftReference[objects.length];
-
- /* Create a bunch of objects and a parallel array
- * of SoftReferences.
- */
- makeRefs(objects, refs);
- Runtime.getRuntime().gc();
-
- /* Let go of the hard references to the objects so that
- * the references can be cleared.
- */
- clearRefs(objects);
-
- /* Start creating a bunch of temporary and permanent objects
- * to drive GC.
- */
- final int NUM_OBJECTS = 64 * 1024;
- Object junk[] = new Object[NUM_OBJECTS];
- Random random = new Random();
-
- int i = 0;
- int mod = 0;
- int totalSize = 0;
- int cleared = -1;
- while (i < junk.length && totalSize < 8 * 1024 * 1024) {
- int r = random.nextInt(64 * 1024) + 128;
- Object o = (Object) new byte[r];
- if (++mod % 16 == 0) {
- junk[i++] = o;
- totalSize += r * 4;
- }
- cleared = checkRefs(refs, cleared);
- }
- }
-
- private static void makeRefs(Object objects[], WeakReference<Object> refs[]) {
- for (int i = 0; i < objects.length; i++) {
- objects[i] = new Object();
- refs[i] = new WeakReference<Object>(objects[i]);
- }
- }
-
- private static <T> void checkRefs(T objects[], WeakReference<T> refs[]) {
- boolean ok = true;
-
- for (int i = 0; i < objects.length; i++) {
- if (refs[i].get() != objects[i]) {
- ok = false;
- }
- }
- if (!ok) {
- throw new RuntimeException("Test failed: " +
- "weak refs not cleared");
- }
- }
-
- @MediumTest
- public void testWeakRefs() throws Exception {
- final int NUM_REFS = 16;
-
- Object objects[] = new Object[NUM_REFS];
- WeakReference<Object> refs[] = new WeakReference[objects.length];
-
- /* Create a bunch of objects and a parallel array
- * of WeakReferences.
- */
- makeRefs(objects, refs);
- Runtime.getRuntime().gc();
- checkRefs(objects, refs);
-
- /* Clear out every other strong reference.
- */
- for (int i = 0; i < objects.length; i += 2) {
- objects[i] = null;
- }
- Runtime.getRuntime().gc();
- checkRefs(objects, refs);
-
- /* Clear out the rest of them.
- */
- for (int i = 0; i < objects.length; i++) {
- objects[i] = null;
- }
- Runtime.getRuntime().gc();
- checkRefs(objects, refs);
- }
-
- private static void makeRefs(Object objects[], PhantomReference<Object> refs[],
- ReferenceQueue<Object> queue) {
- for (int i = 0; i < objects.length; i++) {
- objects[i] = new Object();
- refs[i] = new PhantomReference<Object>(objects[i], queue);
- }
- }
-
- static <T> void checkRefs(T objects[], PhantomReference<T> refs[],
- ReferenceQueue<T> queue) {
- boolean ok = true;
-
- /* Make sure that the reference that should be on
- * the queue are marked as enqueued. Once we
- * pull them off the queue, they will no longer
- * be marked as enqueued.
- */
- for (int i = 0; i < objects.length; i++) {
- if (objects[i] == null && refs[i] != null) {
- if (!refs[i].isEnqueued()) {
- ok = false;
- }
- }
- }
- if (!ok) {
- throw new RuntimeException("Test failed: " +
- "phantom refs not marked as enqueued");
- }
-
- /* Make sure that all of the references on the queue
- * are supposed to be there.
- */
- PhantomReference<T> ref;
- while ((ref = (PhantomReference<T>) queue.poll()) != null) {
- /* Find the list index that corresponds to this reference.
- */
- int i;
- for (i = 0; i < objects.length; i++) {
- if (refs[i] == ref) {
- break;
- }
- }
- if (i == objects.length) {
- throw new RuntimeException("Test failed: " +
- "unexpected ref on queue");
- }
- if (objects[i] != null) {
- throw new RuntimeException("Test failed: " +
- "reference enqueued for strongly-reachable " +
- "object");
- }
- refs[i] = null;
-
- /* TODO: clear doesn't do much, since we're losing the
- * strong ref to the ref object anyway. move the ref
- * into another list.
- */
- ref.clear();
- }
-
- /* We've visited all of the enqueued references.
- * Make sure that there aren't any other references
- * that should have been enqueued.
- *
- * NOTE: there is a race condition here; this assumes
- * that the VM has serviced all outstanding reference
- * enqueue() calls.
- */
- for (int i = 0; i < objects.length; i++) {
- if (objects[i] == null && refs[i] != null) {
-// System.out.println("HeapTest/PhantomRefs: refs[" + i +
-// "] should be enqueued");
- ok = false;
- }
- }
- if (!ok) {
- throw new RuntimeException("Test failed: " +
- "phantom refs not enqueued");
- }
- }
-
- @MediumTest
- public void testPhantomRefs() throws Exception {
- final int NUM_REFS = 16;
-
- Object objects[] = new Object[NUM_REFS];
- PhantomReference<Object> refs[] = new PhantomReference[objects.length];
- ReferenceQueue<Object> queue = new ReferenceQueue<Object>();
-
- /* Create a bunch of objects and a parallel array
- * of PhantomReferences.
- */
- makeRefs(objects, refs, queue);
- Runtime.getRuntime().gc();
- checkRefs(objects, refs, queue);
-
- /* Clear out every other strong reference.
- */
- for (int i = 0; i < objects.length; i += 2) {
- objects[i] = null;
- }
- // System.out.println("HeapTest/PhantomRefs: cleared evens");
- Runtime.getRuntime().gc();
- Runtime.getRuntime().runFinalization();
- checkRefs(objects, refs, queue);
-
- /* Clear out the rest of them.
- */
- for (int i = 0; i < objects.length; i++) {
- objects[i] = null;
- }
- // System.out.println("HeapTest/PhantomRefs: cleared all");
- Runtime.getRuntime().gc();
- Runtime.getRuntime().runFinalization();
- checkRefs(objects, refs, queue);
- }
-
- private static int sNumFinalized = 0;
- private static final Object sLock = new Object();
-
- private static class FinalizableObject {
- protected void finalize() {
- // System.out.println("gc from finalize()");
- Runtime.getRuntime().gc();
- synchronized (sLock) {
- sNumFinalized++;
- }
- }
- }
-
- private static void makeRefs(FinalizableObject objects[],
- WeakReference<FinalizableObject> refs[]) {
- for (int i = 0; i < objects.length; i++) {
- objects[i] = new FinalizableObject();
- refs[i] = new WeakReference<FinalizableObject>(objects[i]);
- }
- }
-
- @LargeTest
- public void testWeakRefsAndFinalizers() throws Exception {
- final int NUM_REFS = 16;
-
- FinalizableObject objects[] = new FinalizableObject[NUM_REFS];
- WeakReference<FinalizableObject> refs[] = new WeakReference[objects.length];
- int numCleared;
-
- /* Create a bunch of objects and a parallel array
- * of WeakReferences.
- */
- makeRefs(objects, refs);
- Runtime.getRuntime().gc();
- checkRefs(objects, refs);
-
- /* Clear out every other strong reference.
- */
- sNumFinalized = 0;
- numCleared = 0;
- for (int i = 0; i < objects.length; i += 2) {
- objects[i] = null;
- numCleared++;
- }
- // System.out.println("HeapTest/WeakRefsAndFinalizers: cleared evens");
- Runtime.getRuntime().gc();
- Runtime.getRuntime().runFinalization();
- checkRefs(objects, refs);
- if (sNumFinalized != numCleared) {
- throw new RuntimeException("Test failed: " +
- "expected " + numCleared + " finalizations, saw " +
- sNumFinalized);
- }
-
- /* Clear out the rest of them.
- */
- sNumFinalized = 0;
- numCleared = 0;
- for (int i = 0; i < objects.length; i++) {
- if (objects[i] != null) {
- objects[i] = null;
- numCleared++;
- }
- }
- // System.out.println("HeapTest/WeakRefsAndFinalizers: cleared all");
- Runtime.getRuntime().gc();
- Runtime.getRuntime().runFinalization();
- checkRefs(objects, refs);
- if (sNumFinalized != numCleared) {
- throw new RuntimeException("Test failed: " +
- "expected " + numCleared + " finalizations, saw " +
- sNumFinalized);
- }
- }
-
- @MediumTest
- public void testOomeLarge() throws Exception {
- /* Just shy of the typical max heap size so that it will actually
- * try to allocate it instead of short-circuiting.
- */
- final int SIXTEEN_MB = (16 * 1024 * 1024 - 32);
-
- Boolean sawEx = false;
- byte a[];
-
- try {
- a = new byte[SIXTEEN_MB];
- } catch (OutOfMemoryError oom) {
- //Log.i(TAG, "HeapTest/OomeLarge caught " + oom);
- sawEx = true;
- }
-
- if (!sawEx) {
- throw new RuntimeException("Test failed: " +
- "OutOfMemoryError not thrown");
- }
- }
-
- //See bug 1308253 for reasons.
- @Suppress
- public void disableTestOomeSmall() throws Exception {
- final int SIXTEEN_MB = (16 * 1024 * 1024);
- final int LINK_SIZE = 6 * 4; // estimated size of a LinkedList's node
-
- Boolean sawEx = false;
-
- LinkedList<Object> list = new LinkedList<Object>();
-
- /* Allocate progressively smaller objects to fill up the entire heap.
- */
- int objSize = 1 * 1024 * 1024;
- while (objSize >= LINK_SIZE) {
- try {
- for (int i = 0; i < SIXTEEN_MB / objSize; i++) {
- list.add((Object)new byte[objSize]);
- }
- } catch (OutOfMemoryError oom) {
- sawEx = true;
- }
-
- if (!sawEx) {
- throw new RuntimeException("Test failed: " +
- "OutOfMemoryError not thrown while filling heap");
- }
- sawEx = false;
-
- objSize = (objSize * 4) / 5;
- }
- }
-
- @SmallTest
- public void testExternalOomeLarge() {
- /* Just shy of the typical max heap size so that it will actually
- * try to allocate it instead of short-circuiting.
- */
- final int HUGE_SIZE = (16 * 1024 * 1024 - 32);
-
- assertFalse(VMRuntime.getRuntime().trackExternalAllocation(HUGE_SIZE));
- }
-
- /**
- * "Allocates" external memory in progressively smaller chunks until there's
- * only roughly 16 bytes left.
- *
- * @return the number of bytes allocated
- */
- private long allocateMaxExternal() {
- final VMRuntime runtime = VMRuntime.getRuntime();
- final int SIXTEEN_MB = (16 * 1024 * 1024);
- final int MIN_SIZE = 16;
- long totalAllocated = 0;
- boolean success;
-
- success = false;
- try {
- /* "Allocate" progressively smaller chunks to "fill up" the entire heap.
- */
- int objSize = 1 * 1024 * 1024;
- while (objSize >= MIN_SIZE) {
- boolean sawFailure = false;
- for (int i = 0; i < SIXTEEN_MB / objSize; i++) {
- if (runtime.trackExternalAllocation(objSize)) {
- totalAllocated += objSize;
- } else {
- sawFailure = true;
- break;
- }
- }
-
- if (!sawFailure) {
- throw new RuntimeException("Test failed: " +
- "no failure while filling heap");
- }
-
- objSize = (objSize * 4) / 5;
- }
- success = true;
- } finally {
- if (!success) {
- runtime.trackExternalFree(totalAllocated);
- totalAllocated = 0;
- }
- }
- return totalAllocated;
- }
-
- public void xxtest00ExternalOomeSmall() {
- VMRuntime.getRuntime().trackExternalFree(allocateMaxExternal());
- }
-
- /**
- * Allocates as much external memory as possible, then allocates from the heap
- * until an OOME is caught.
- *
- * It's nice to run this test while the real heap is small, hence the '00' in its
- * name to force it to run before testOomeSmall().
- */
- public void xxtest00CombinedOomeSmall() {
- long totalAllocated = 0;
- boolean sawEx = false;
- try {
- totalAllocated = allocateMaxExternal();
- LinkedList<Object> list = new LinkedList<Object>();
- try {
- while (true) {
- list.add((Object)new byte[8192]);
- }
- /*NOTREACHED*/
- } catch (OutOfMemoryError oom) {
- sawEx = true;
- }
- } finally {
- VMRuntime.getRuntime().trackExternalFree(totalAllocated);
- }
- assertTrue(sawEx);
- }
-
- //TODO: test external alloc debugging/inspection
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/HtmlTest.java b/tests/AndroidTests/src/com/android/unit_tests/HtmlTest.java
deleted file mode 100644
index 27da4f1..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/HtmlTest.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.graphics.Typeface;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.text.*;
-import android.text.style.*;
-
-import junit.framework.TestCase;
-
-/**
- * HtmlTest tests the Spanned-to-HTML converter
- */
-public class HtmlTest extends TestCase {
- @MediumTest
- public void testColor() throws Exception {
- Spanned s;
- ForegroundColorSpan[] colors;
-
- s = Html.fromHtml("<font color=\"#00FF00\">something</font>");
- colors = s.getSpans(0, s.length(), ForegroundColorSpan.class);
- assertEquals(colors[0].getForegroundColor(), 0xFF00FF00);
-
- s = Html.fromHtml("<font color=\"navy\">something</font>");
- colors = s.getSpans(0, s.length(), ForegroundColorSpan.class);
- assertEquals(colors[0].getForegroundColor(), 0xFF000080);
-
- s = Html.fromHtml("<font color=\"gibberish\">something</font>");
- colors = s.getSpans(0, s.length(), ForegroundColorSpan.class);
- assertEquals(colors.length, 0);
- }
-
- @SmallTest
- public void testParagraphs() throws Exception {
- SpannableString s;
-
- s = new SpannableString("Hello world");
- assertEquals(Html.toHtml(s), "<p>Hello world</p>\n");
-
- s = new SpannableString("Hello world\nor something");
- assertEquals(Html.toHtml(s), "<p>Hello world<br>\nor something</p>\n");
-
- s = new SpannableString("Hello world\n\nor something");
- assertEquals(Html.toHtml(s), "<p>Hello world</p>\n<p>or something</p>\n");
-
- s = new SpannableString("Hello world\n\n\nor something");
- assertEquals(Html.toHtml(s), "<p>Hello world<br></p>\n<p>or something</p>\n");
-
- assertEquals("foo\nbar", Html.fromHtml("foo<br>bar").toString());
- assertEquals("foo\nbar", Html.fromHtml("foo<br>\nbar").toString());
- assertEquals("foo\nbar", Html.fromHtml("foo<br>\n \nbar").toString());
- }
-
- @SmallTest
- public void testBlockquote() throws Exception {
- SpannableString s;
-
- s = new SpannableString("Hello world");
- s.setSpan(new QuoteSpan(), 0, s.length(), Spannable.SPAN_PARAGRAPH);
- assertEquals(Html.toHtml(s), "<blockquote><p>Hello world</p>\n</blockquote>\n");
-
- s = new SpannableString("Hello\n\nworld");
- s.setSpan(new QuoteSpan(), 0, 7, Spannable.SPAN_PARAGRAPH);
- assertEquals(Html.toHtml(s), "<blockquote><p>Hello</p>\n</blockquote>\n<p>world</p>\n");
- }
-
- @SmallTest
- public void testEntities() throws Exception {
- SpannableString s;
-
- s = new SpannableString("Hello <&> world");
- assertEquals(Html.toHtml(s), "<p>Hello &lt;&amp;&gt; world</p>\n");
-
- s = new SpannableString("Hello \u03D5 world");
- assertEquals(Html.toHtml(s), "<p>Hello &#981; world</p>\n");
-
- s = new SpannableString("Hello world");
- assertEquals(Html.toHtml(s), "<p>Hello&nbsp; world</p>\n");
- }
-
- @SmallTest
- public void testMarkup() throws Exception {
- SpannableString s;
-
- s = new SpannableString("Hello bold world");
- s.setSpan(new StyleSpan(Typeface.BOLD), 6, s.length() - 6,
- Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
- assertEquals(Html.toHtml(s), "<p>Hello <b>bold</b> world</p>\n");
-
- s = new SpannableString("Hello italic world");
- s.setSpan(new StyleSpan(Typeface.ITALIC), 6, s.length() - 6,
- Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
- assertEquals(Html.toHtml(s), "<p>Hello <i>italic</i> world</p>\n");
-
- s = new SpannableString("Hello monospace world");
- s.setSpan(new TypefaceSpan("monospace"), 6, s.length() - 6,
- Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
- assertEquals(Html.toHtml(s), "<p>Hello <tt>monospace</tt> world</p>\n");
-
- s = new SpannableString("Hello superscript world");
- s.setSpan(new SuperscriptSpan(), 6, s.length() - 6,
- Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
- assertEquals(Html.toHtml(s), "<p>Hello <sup>superscript</sup> world</p>\n");
-
- s = new SpannableString("Hello subscript world");
- s.setSpan(new SubscriptSpan(), 6, s.length() - 6,
- Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
- assertEquals(Html.toHtml(s), "<p>Hello <sub>subscript</sub> world</p>\n");
-
- s = new SpannableString("Hello underline world");
- s.setSpan(new UnderlineSpan(), 6, s.length() - 6,
- Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
- assertEquals(Html.toHtml(s), "<p>Hello <u>underline</u> world</p>\n");
-
- s = new SpannableString("Hello struck world");
- s.setSpan(new StrikethroughSpan(), 6, s.length() - 6,
- Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
- assertEquals(Html.toHtml(s), "<p>Hello <strike>struck</strike> world</p>\n");
-
- s = new SpannableString("Hello linky world");
- s.setSpan(new URLSpan("http://www.google.com"), 6, s.length() - 6,
- Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
- assertEquals(Html.toHtml(s),
- "<p>Hello <a href=\"http://www.google.com\">linky</a> world</p>\n");
- }
-
- @SmallTest
- public void testImg() throws Exception {
- Spanned s;
-
- s = Html.fromHtml("yes<img src=\"http://example.com/foo.gif\">no");
-
- assertEquals("<p>yes<img src=\"http://example.com/foo.gif\">no</p>\n",
- Html.toHtml(s));
- }
-
- @SmallTest
- public void testUtf8() throws Exception {
- Spanned s;
-
- s = Html.fromHtml("<p>\u0124\u00eb\u0142\u0142o, world!</p>");
- assertEquals("<p>&#292;&#235;&#322;&#322;o, world!</p>\n", Html.toHtml(s));
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/InflateTest.java b/tests/AndroidTests/src/com/android/unit_tests/InflateTest.java
deleted file mode 100644
index d7c9d60..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/InflateTest.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.test.AndroidTestCase;
-import android.test.PerformanceTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.util.AttributeSet;
-import android.view.LayoutInflater;
-import android.view.View;
-
-import java.util.Map;
-
-public class InflateTest extends AndroidTestCase implements PerformanceTestCase {
- private LayoutInflater mInflater;
- private Resources mResources;
- private View mView;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mInflater = LayoutInflater.from(mContext);
- mResources = mContext.getResources();
-
- // to try to make things consistent, before doing timing
- // do an initial instantiation of the layout and then clear
- // out the layout cache.
-// mInflater.inflate(mResId, null, null);
-// mResources.flushLayoutCache();
- }
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- return 0;
- }
-
- public boolean isPerformanceOnly() {
- return false;
- }
-
- public void inflateTest(int resourceId) {
- mView = mInflater.inflate(resourceId, null);
- mResources.flushLayoutCache();
- }
-
- public void inflateCachedTest(int resourceId) {
- // Make sure this layout is in the cache.
- mInflater.inflate(resourceId, null);
-
- mInflater.inflate(resourceId, null);
- }
-
- @SmallTest
- public void testLayout1() throws Exception {
- inflateTest(R.layout.layout_one);
- }
-
- @SmallTest
- public void testLayout2() throws Exception {
- inflateTest(R.layout.layout_two);
- }
-
- @SmallTest
- public void testLayout3() throws Exception {
- inflateTest(R.layout.layout_three);
- }
-
- @SmallTest
- public void testLayout4() throws Exception {
- inflateTest(R.layout.layout_four);
- }
-
- @SmallTest
- public void testLayout5() throws Exception {
- inflateTest(R.layout.layout_five);
- }
-
- @SmallTest
- public void testLayout6() throws Exception {
- inflateTest(R.layout.layout_six);
- }
-
- @SmallTest
- public void testCachedLayout1() throws Exception {
- inflateCachedTest(R.layout.layout_one);
- }
-
- @SmallTest
- public void testCachedLayout2() throws Exception {
- inflateCachedTest(R.layout.layout_two);
- }
-
- @SmallTest
- public void testCachedLayout3() throws Exception {
- inflateCachedTest(R.layout.layout_three);
- }
-
- @SmallTest
- public void testCachedLayout4() throws Exception {
- inflateCachedTest(R.layout.layout_four);
- }
-
- @SmallTest
- public void testCachedLayout5() throws Exception {
- inflateCachedTest(R.layout.layout_five);
- }
-
- @SmallTest
- public void testCachedLayout6() throws Exception {
- inflateCachedTest(R.layout.layout_six);
- }
-
-// public void testLayoutTag() throws Exception {
-// public void setUp
-// (Context
-// context){
-// setUp(context, R.layout.layout_tag);
-// }
-// public void run
-// ()
-// {
-// super.run();
-// if (!"MyTag".equals(mView.getTag())) {
-// throw new RuntimeException("Incorrect tag: " + mView.getTag());
-// }
-// }
-// }
-
- public static class ViewOne extends View {
- public ViewOne(Context context) {
- super(context);
- }
-
- public ViewOne(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/InstanceofTest.java b/tests/AndroidTests/src/com/android/unit_tests/InstanceofTest.java
deleted file mode 100644
index 1f82df8..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/InstanceofTest.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-
-
-public class InstanceofTest extends TestCase {
-
- protected A mA;
- protected ChildOfAOne mOne;
- protected ChildOfAOne mTwo;
- protected ChildOfAOne mThree;
- protected ChildOfAOne mFour;
- protected ChildOfAFive mFive;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mA = new A();
- mOne = new ChildOfAOne();
- mTwo = new ChildOfATwo();
- mThree = new ChildOfAThree();
- mFour = new ChildOfAFour();
- mFive = new ChildOfAFive();
- }
-
-
- @MediumTest
- public void testNoInterface() throws Exception {
- A a = mA;
- for (int i = 0; i < 100000; i++) {
- assertFalse("m_a should not be a ChildOfAFive", a instanceof ChildOfAFive);
- }
- }
-
- @MediumTest
- public void testDerivedOne() throws Exception {
- InterfaceOne one = mOne;
- for (int i = 0; i < 100000; i++) {
- assertFalse("m_one should not be a ChildOfAFive", one instanceof ChildOfAFive);
- }
- }
-
- @MediumTest
- public void testDerivedTwo() throws Exception {
- InterfaceTwo two = mTwo;
- for (int i = 0; i < 100000; i++) {
- assertFalse("m_two should not be a ChildOfAFive", two instanceof ChildOfAFive);
- }
- }
-
- @MediumTest
- public void testDerivedThree() throws Exception {
- InterfaceThree three = mThree;
- for (int i = 0; i < 100000; i++) {
- assertFalse("m_three should not be a ChildOfAFive", three instanceof ChildOfAFive);
- }
- }
-
- @MediumTest
- public void testDerivedFour() throws Exception {
- InterfaceFour four = mFour;
- for (int i = 0; i < 100000; i++) {
- assertFalse("m_four should not be a ChildOfAFive", four instanceof ChildOfAFive);
- }
- }
-
- @MediumTest
- public void testSuccessClass() throws Exception {
- ChildOfAOne five = mFive;
- for (int i = 0; i < 100000; i++) {
- assertTrue("m_five is suppose to be a ChildOfAFive", five instanceof ChildOfAFive);
- }
- }
-
- @MediumTest
- public void testSuccessInterface() throws Exception {
- ChildOfAFive five = mFive;
- for (int i = 0; i < 100000; i++) {
- assertTrue("m_five is suppose to be a InterfaceFour", five instanceof InterfaceFour);
- }
- }
-
- @MediumTest
- public void testFailInterface() throws Exception {
- InterfaceOne one = mFive;
- for (int i = 0; i < 100000; i++) {
- assertFalse("m_five does not implement InterfaceFive", one instanceof InterfaceFive);
- }
- }
-
- private interface InterfaceOne {
- }
-
- private interface InterfaceTwo {
- }
-
- private interface InterfaceThree {
- }
-
- private interface InterfaceFour {
- }
-
- private interface InterfaceFive {
- }
-
- private static class A {
- }
-
- private static class ChildOfAOne extends A implements InterfaceOne, InterfaceTwo, InterfaceThree, InterfaceFour {
- }
-
- private static class ChildOfATwo extends ChildOfAOne {
- }
-
- private static class ChildOfAThree extends ChildOfATwo {
- }
-
- private static class ChildOfAFour extends ChildOfAThree {
- }
-
- private static class ChildOfAFive extends ChildOfAFour {
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/JavaPerformanceTests.java b/tests/AndroidTests/src/com/android/unit_tests/JavaPerformanceTests.java
deleted file mode 100644
index e778d53..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/JavaPerformanceTests.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-/**
- *
- */
-public class JavaPerformanceTests {
-
- public static String[] children() {
- return new String[] {
- StringTest.class.getName(),
- HashMapTest.class.getName(),
- ArrayListTest.class.getName(),
- TreeMapTest.class.getName(),
- TreeSetTest.class.getName(),
- HashSetTest.class.getName(),
- HashtableTest.class.getName(),
- VectorTest.class.getName(),
- LinkedListTest.class.getName(),
- MathTest.class.getName(),
- };
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/JniLibTest.java b/tests/AndroidTests/src/com/android/unit_tests/JniLibTest.java
deleted file mode 100644
index 6b740ba..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/JniLibTest.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.test.suitebuilder.annotation.Suppress;
-import android.util.Log;
-import junit.framework.TestCase;
-
-
-@Suppress
-public class JniLibTest extends TestCase {
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- /*
- * This causes the native shared library to be loaded when the
- * class is first used. The library is only loaded once, even if
- * multiple classes include this line.
- *
- * The library must be in java.library.path, which is derived from
- * LD_LIBRARY_PATH. The actual library name searched for will be
- * "libjni_lib_test.so" under Linux, but may be different on other
- * platforms.
- */
- try {
- System.loadLibrary("jni_lib_test");
- } catch (UnsatisfiedLinkError ule) {
- Log.e("JniLibTest", "WARNING: Could not load jni_lib_test natives");
- }
- }
-
- private static native int nativeStaticThing(float f);
- private native void nativeThing(int val);
-
- public void testNativeCall() {
- Log.i("JniLibTest", "JNI search path is "
- + System.getProperty("java.library.path"));
- Log.i("JniLibTest", "'jni_lib_test' becomes '"
- + System.mapLibraryName("jni_lib_test") + "'");
-
- int result = nativeStaticThing(1234.5f);
- nativeThing(result);
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/LabelView.java b/tests/AndroidTests/src/com/android/unit_tests/LabelView.java
deleted file mode 100644
index ac29776..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/LabelView.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.content.Context;
-import android.graphics.Canvas;
-import android.graphics.Paint;
-import android.view.View;
-
-/**
- * Example of how to write a custom subclass of View. LabelView
- * is used to draw simple text views. Note that it does not handle
- * styled text or right-to-left writing systems.
- *
- */
-public class LabelView extends View {
- /**
- * Constructor. This version is only needed if you will be instantiating
- * the object manually (not from a layout XML file).
- * @param context the application environment
- */
- public LabelView(Context context) {
- super(context);
- initLabelView();
- }
-
- /**
- * Construct object, initializing with any attributes we understand from a
- * layout file. These attributes are defined in
- * SDK/assets/res/any/classes.xml.
- *
- * @see android.view.View#View(android.content.Context, android.util.AttributeSet)
- public LabelView(Context context, AttributeSet attrs) {
- super(context, attrs);
- initLabelView();
-
- Resources.StyledAttributes a = context.obtainStyledAttributes(attrs,
- R.styleable.LabelView);
-
- CharSequence s = a.getString(R.styleable.LabelView_text);
- if (s != null) {
- setText(s.toString());
- }
-
- ColorStateList textColor = a.getColorList(R.styleable.
- LabelView_textColor);
- if (textColor != null) {
- setTextColor(textColor.getDefaultColor(0));
- }
-
- int textSize = a.getInt(R.styleable.LabelView_textSize, 0);
- if (textSize > 0) {
- setTextSize(textSize);
- }
-
- a.recycle();
- }
-
- */
- private void initLabelView() {
- mTextPaint = new Paint();
- mTextPaint.setAntiAlias(true);
- mTextPaint.setTextSize(16);
- mTextPaint.setColor(0xFF000000);
-
- mPaddingLeft = 3;
- mPaddingTop = 3;
- mPaddingRight = 3;
- mPaddingBottom = 3;
- }
-
- /**
- * Sets the text to display in this label
- * @param text The text to display. This will be drawn as one line.
- */
- public void setText(String text) {
- mText = text;
- requestLayout();
- invalidate();
- }
-
- /**
- * Sets the text size for this label
- * @param size Font size
- */
- public void setTextSize(int size) {
- mTextPaint.setTextSize(size);
- requestLayout();
- invalidate();
- }
-
- /**
- * Sets the text color for this label
- * @param color ARGB value for the text
- */
- public void setTextColor(int color) {
- mTextPaint.setColor(color);
- invalidate();
- }
-
-
- /**
- * @see android.view.View#measure(int, int)
- */
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- setMeasuredDimension(measureWidth(widthMeasureSpec),
- measureHeight(heightMeasureSpec));
- }
-
- /**
- * Determines the width of this view
- * @param measureSpec A measureSpec packed into an int
- * @return The width of the view, honoring constraints from measureSpec
- */
- private int measureWidth(int measureSpec) {
- int result;
- int specMode = MeasureSpec.getMode(measureSpec);
- int specSize = MeasureSpec.getSize(measureSpec);
-
- if (specMode == MeasureSpec.EXACTLY) {
- // We were told how big to be
- result = specSize;
- } else {
- // Measure the text
- result = (int) mTextPaint.measureText(mText) + mPaddingLeft
- + mPaddingRight;
- if (specMode == MeasureSpec.AT_MOST) {
- // Respect AT_MOST value if that was what is called for by measureSpec
- result = Math.min(result, specSize);
- }
- }
-
- return result;
- }
-
- /**
- * Determines the height of this view
- * @param measureSpec A measureSpec packed into an int
- * @return The height of the view, honoring constraints from measureSpec
- */
- private int measureHeight(int measureSpec) {
- int result;
- int specMode = MeasureSpec.getMode(measureSpec);
- int specSize = MeasureSpec.getSize(measureSpec);
-
- mAscent = (int) mTextPaint.ascent();
- if (specMode == MeasureSpec.EXACTLY) {
- // We were told how big to be
- result = specSize;
- } else {
- // Measure the text (beware: ascent is a negative number)
- result = (int) (-mAscent + mTextPaint.descent()) + mPaddingTop
- + mPaddingBottom;
- if (specMode == MeasureSpec.AT_MOST) {
- // Respect AT_MOST value if that was what is called for by measureSpec
- result = Math.min(result, specSize);
- }
- }
- return result;
- }
-
- /**
- * Render the text
- *
- * @see android.view.View#onDraw(android.graphics.Canvas)
- */
- @Override
- protected void onDraw(Canvas canvas) {
- super.onDraw(canvas);
- canvas.drawText(mText, mPaddingLeft, mPaddingTop - mAscent, mTextPaint);
- }
-
- private Paint mTextPaint;
- private String mText;
- private int mAscent;
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/LinkedListTest.java b/tests/AndroidTests/src/com/android/unit_tests/LinkedListTest.java
deleted file mode 100644
index ca470cd..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/LinkedListTest.java
+++ /dev/null
@@ -1,529 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.test.PerformanceTestBase;
-import android.test.PerformanceTestCase;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
-/**
- * This class contains performance tests for methods in java.util.LinkedList
- *
- */
-@SuppressWarnings("unchecked")
-public class LinkedListTest extends PerformanceTestBase {
- public static final int ITERATIONS = 1000;
- LinkedList<Integer> mLinkedList;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mLinkedList = new LinkedList();
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- mLinkedList.add(i);
- }
- }
-
- @Override
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS);
- return 0;
- }
-
- public void testLinkedListAdd() {
- LinkedList<Integer> list = new LinkedList();
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- list.add(i);
- list.add(i);
- list.add(i);
- list.add(i);
- list.add(i);
- list.add(i);
- list.add(i);
- list.add(i);
- list.add(i);
- list.add(i);
- }
- }
-
- public void testLinkedListAdd1() {
- LinkedList<Integer> list = new LinkedList();
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- list.add(0, i);
- list.add(0, i);
- list.add(0, i);
- list.add(0, i);
- list.add(0, i);
- list.add(0, i);
- list.add(0, i);
- list.add(0, i);
- list.add(0, i);
- list.add(0, i);
- }
- }
-
- public void testLinkedListToArray() {
- Object array;
- LinkedList<Integer> list = mLinkedList;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- array = list.toArray();
- array = list.toArray();
- array = list.toArray();
- array = list.toArray();
- array = list.toArray();
- array = list.toArray();
- array = list.toArray();
- array = list.toArray();
- array = list.toArray();
- array = list.toArray();
- }
- }
-
- public void testLinkedListSize() {
- LinkedList<Integer> list = mLinkedList;
- int len;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- len = list.size();
- len = list.size();
- len = list.size();
- len = list.size();
- len = list.size();
- len = list.size();
- len = list.size();
- len = list.size();
- len = list.size();
- len = list.size();
- }
- }
-
- public void testLinkedListGet() {
- int element;
- LinkedList<Integer> list = mLinkedList;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- element = list.get(i);
- element = list.get(i);
- element = list.get(i);
- element = list.get(i);
- element = list.get(i);
- element = list.get(i);
- element = list.get(i);
- element = list.get(i);
- element = list.get(i);
- element = list.get(i);
- }
- }
-
- public void testLinkedListContains() {
- boolean flag;
- LinkedList<Integer> list = mLinkedList;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- flag = list.contains(i);
- flag = list.contains(i);
- flag = list.contains(i);
- flag = list.contains(i);
- flag = list.contains(i);
- flag = list.contains(i);
- flag = list.contains(i);
- flag = list.contains(i);
- flag = list.contains(i);
- flag = list.contains(i);
- }
- }
-
- public void testLinkedListToArray1() {
- Integer[] rArray = new Integer[100];
- Integer[] array;
- LinkedList<Integer> list = mLinkedList;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- array = list.toArray(rArray);
- array = list.toArray(rArray);
- array = list.toArray(rArray);
- array = list.toArray(rArray);
- array = list.toArray(rArray);
- array = list.toArray(rArray);
- array = list.toArray(rArray);
- array = list.toArray(rArray);
- array = list.toArray(rArray);
- array = list.toArray(rArray);
- }
- }
-
- public void testLinkedListSet() {
- LinkedList<Integer> list = mLinkedList;
- int value1 = 500, value2 = 0;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- list.set(value1, value2);
- list.set(value1, value2);
- list.set(value1, value2);
- list.set(value1, value2);
- list.set(value1, value2);
- list.set(value1, value2);
- list.set(value1, value2);
- list.set(value1, value2);
- list.set(value1, value2);
- list.set(value1, value2);
- }
- }
-
- public void testLinkedListIndexOf() {
- int index;
- LinkedList<Integer> list = mLinkedList;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- index = list.indexOf(0);
- index = list.indexOf(0);
- index = list.indexOf(0);
- index = list.indexOf(0);
- index = list.indexOf(0);
- index = list.indexOf(0);
- index = list.indexOf(0);
- index = list.indexOf(0);
- index = list.indexOf(0);
- index = list.indexOf(0);
-
- }
- }
-
- public void testLinkedListLastIndexOf() {
- int index;
- LinkedList<Integer> list = mLinkedList;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- index = list.lastIndexOf(0);
- index = list.lastIndexOf(0);
- index = list.lastIndexOf(0);
- index = list.lastIndexOf(0);
- index = list.lastIndexOf(0);
- index = list.lastIndexOf(0);
- index = list.lastIndexOf(0);
- index = list.lastIndexOf(0);
- index = list.lastIndexOf(0);
- index = list.lastIndexOf(0);
- }
- }
-
- public void testLinkedListRemove() {
- int index;
- LinkedList<Integer> list = new LinkedList(mLinkedList);
- for (int i = 10; i > 0; i--) {
- index = list.remove();
- index = list.remove();
- index = list.remove();
- index = list.remove();
- index = list.remove();
- index = list.remove();
- index = list.remove();
- index = list.remove();
- index = list.remove();
- index = list.remove();
- }
- }
-
- public void testLinkedListRemove1() {
- int index;
- LinkedList<Integer> list = new LinkedList(mLinkedList);
- for (int i = 10; i > 0; i--) {
- index = list.remove(0);
- index = list.remove(0);
- index = list.remove(0);
- index = list.remove(0);
- index = list.remove(0);
- index = list.remove(0);
- index = list.remove(0);
- index = list.remove(0);
- index = list.remove(0);
- index = list.remove(0);
- }
- }
-
- public void testLinkedListRemoveFirst() {
- int index;
- LinkedList<Integer> list = new LinkedList(mLinkedList);
- for (int i = 10; i > 0; i--) {
- index = list.removeFirst();
- index = list.removeFirst();
- index = list.removeFirst();
- index = list.removeFirst();
- index = list.removeFirst();
- index = list.removeFirst();
- index = list.removeFirst();
- index = list.removeFirst();
- index = list.removeFirst();
- index = list.removeFirst();
- }
- }
-
- public void testLinkedListRemoveLast() {
- int index;
- LinkedList<Integer> list = new LinkedList(mLinkedList);
- for (int i = 10; i > 0; i--) {
- index = list.removeLast();
- index = list.removeLast();
- index = list.removeLast();
- index = list.removeLast();
- index = list.removeLast();
- index = list.removeLast();
- index = list.removeLast();
- index = list.removeLast();
- index = list.removeLast();
- index = list.removeLast();
- }
- }
-
- public void testLinkedListAddAll() {
- LinkedList<Integer> mList = mLinkedList;
- boolean flag;
- LinkedList<Integer> list = new LinkedList();
- for (int i = 10; i > 0; i--) {
- flag = list.addAll(mList);
- flag = list.addAll(mList);
- flag = list.addAll(mList);
- flag = list.addAll(mList);
- flag = list.addAll(mList);
- flag = list.addAll(mList);
- flag = list.addAll(mList);
- flag = list.addAll(mList);
- flag = list.addAll(mList);
- flag = list.addAll(mList);
- }
- }
-
- public void testLinkedListRemove2() {
- LinkedList<String> list;
- String s = new String("a");
- list = new LinkedList();
- for (int j = 1000; j > 0; j--) {
- list.add("a");
- list.add("b");
- }
- boolean flag;
- for (int i = 10; i > 0; i--) {
- flag = list.remove(s);
- flag = list.remove(s);
- flag = list.remove(s);
- flag = list.remove(s);
- flag = list.remove(s);
- flag = list.remove(s);
- flag = list.remove(s);
- flag = list.remove(s);
- flag = list.remove(s);
- flag = list.remove(s);
- }
- }
-
- public void testLinkedListAddAll1() {
- LinkedList<Integer> mList = new LinkedList();
- int pos = 0;
- boolean flag;
- LinkedList<Integer> list = mLinkedList;
- for (int i = 0; i < 10; i++) {
- flag = mList.addAll(pos, list);
- flag = mList.addAll(pos, list);
- flag = mList.addAll(pos, list);
- flag = mList.addAll(pos, list);
- flag = mList.addAll(pos, list);
- flag = mList.addAll(pos, list);
- flag = mList.addAll(pos, list);
- flag = mList.addAll(pos, list);
- flag = mList.addAll(pos, list);
- flag = mList.addAll(pos, list);
- }
- }
-
- public void testLinkedListClone() {
- Object rObj;
- LinkedList<Integer> list = mLinkedList;
- for (int i = 100; i > 0; i--) {
- rObj = list.clone();
- rObj = list.clone();
- rObj = list.clone();
- rObj = list.clone();
- rObj = list.clone();
- rObj = list.clone();
- rObj = list.clone();
- rObj = list.clone();
- rObj = list.clone();
- rObj = list.clone();
- }
- }
-
- public void testLinkedListHashcode() {
- int element;
- LinkedList<Integer> list = mLinkedList;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- element = list.hashCode();
- element = list.hashCode();
- element = list.hashCode();
- element = list.hashCode();
- element = list.hashCode();
- element = list.hashCode();
- element = list.hashCode();
- element = list.hashCode();
- element = list.hashCode();
- element = list.hashCode();
- }
- }
-
- public void testLinkedListElement() {
- int element;
- LinkedList<Integer> list = mLinkedList;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- element = list.element();
- element = list.element();
- element = list.element();
- element = list.element();
- element = list.element();
- element = list.element();
- element = list.element();
- element = list.element();
- element = list.element();
- element = list.element();
- }
- }
-
- public void testLinkedListToString() {
- String str;
- LinkedList<Integer> list = mLinkedList;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- str = list.toString();
- str = list.toString();
- str = list.toString();
- str = list.toString();
- str = list.toString();
- str = list.toString();
- str = list.toString();
- str = list.toString();
- str = list.toString();
- str = list.toString();
- }
- }
-
- public void testLinkedListIsEmpty() {
- boolean flag;
- LinkedList<Integer> list = mLinkedList;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- flag = list.isEmpty();
- flag = list.isEmpty();
- flag = list.isEmpty();
- flag = list.isEmpty();
- flag = list.isEmpty();
- flag = list.isEmpty();
- flag = list.isEmpty();
- flag = list.isEmpty();
- flag = list.isEmpty();
- flag = list.isEmpty();
- }
- }
-
- public void testLinkedListOffer() {
- LinkedList<Integer> list = new LinkedList();
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- list.offer(i);
- list.offer(i);
- list.offer(i);
- list.offer(i);
- list.offer(i);
- list.offer(i);
- list.offer(i);
- list.offer(i);
- list.offer(i);
- list.offer(i);
- }
- }
-
- public void testLinkedListPeek() {
- int element;
- LinkedList<Integer> list = mLinkedList;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- element = list.peek();
- element = list.peek();
- element = list.peek();
- element = list.peek();
- element = list.peek();
- element = list.peek();
- element = list.peek();
- element = list.peek();
- element = list.peek();
- element = list.peek();
- }
- }
-
- public void testLinkedListPoll() {
- int element;
- LinkedList<Integer> list = new LinkedList(mLinkedList);
- for (int i = 10; i > 0; i--) {
- element = list.poll();
- element = list.poll();
- element = list.poll();
- element = list.poll();
- element = list.poll();
- element = list.poll();
- element = list.poll();
- element = list.poll();
- element = list.poll();
- element = list.poll();
- }
- }
-
- public void testLinkedListAddLast() {
- LinkedList<Integer> list = new LinkedList();
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- list.addLast(i);
- list.addLast(i);
- list.addLast(i);
- list.addLast(i);
- list.addLast(i);
- list.addLast(i);
- list.addLast(i);
- list.addLast(i);
- list.addLast(i);
- list.addLast(i);
- }
- }
-
- public void testLinkedListAddFirst() {
- LinkedList<Integer> list = new LinkedList();
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- list.addFirst(i);
- list.addFirst(i);
- list.addFirst(i);
- list.addFirst(i);
- list.addFirst(i);
- list.addFirst(i);
- list.addFirst(i);
- list.addFirst(i);
- list.addFirst(i);
- list.addFirst(i);
- }
- }
-
- public void testLinkedListIterator() {
- ListIterator iterator;
- LinkedList<Integer> list = mLinkedList;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- iterator = list.listIterator();
- iterator = list.listIterator();
- iterator = list.listIterator();
- iterator = list.listIterator();
- iterator = list.listIterator();
- iterator = list.listIterator();
- iterator = list.listIterator();
- iterator = list.listIterator();
- iterator = list.listIterator();
- iterator = list.listIterator();
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/LinkifyTest.java b/tests/AndroidTests/src/com/android/unit_tests/LinkifyTest.java
deleted file mode 100644
index 83e0758..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/LinkifyTest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.text.*;
-import android.text.method.*;
-import android.text.style.*;
-import android.text.util.*;
-import android.widget.*;
-
-/**
- * LinkifyTest tests {@link Linkify}.
- */
-public class LinkifyTest extends AndroidTestCase {
-
- @SmallTest
- public void testNothing() throws Exception {
- TextView tv;
-
- tv = new TextView(getContext());
- tv.setText("Hey, foo@google.com, call 415-555-1212.");
-
- assertFalse(tv.getMovementMethod() instanceof LinkMovementMethod);
- assertTrue(tv.getUrls().length == 0);
- }
-
- @MediumTest
- public void testNormal() throws Exception {
- TextView tv;
-
- tv = new TextView(getContext());
- tv.setAutoLinkMask(Linkify.ALL);
- tv.setText("Hey, foo@google.com, call 415-555-1212.");
-
- assertTrue(tv.getMovementMethod() instanceof LinkMovementMethod);
- assertTrue(tv.getUrls().length == 2);
- }
-
- @SmallTest
- public void testUnclickable() throws Exception {
- TextView tv;
-
- tv = new TextView(getContext());
- tv.setAutoLinkMask(Linkify.ALL);
- tv.setLinksClickable(false);
- tv.setText("Hey, foo@google.com, call 415-555-1212.");
-
- assertFalse(tv.getMovementMethod() instanceof LinkMovementMethod);
- assertTrue(tv.getUrls().length == 2);
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/LocalSocketTest.java b/tests/AndroidTests/src/com/android/unit_tests/LocalSocketTest.java
deleted file mode 100644
index 0b8ec74..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/LocalSocketTest.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.net.Credentials;
-import android.net.LocalServerSocket;
-import android.net.LocalSocket;
-import android.net.LocalSocketAddress;
-import android.test.MoreAsserts;
-import android.test.suitebuilder.annotation.SmallTest;
-import junit.framework.TestCase;
-
-import java.io.FileDescriptor;
-import java.io.IOException;
-
-public class LocalSocketTest extends TestCase {
-
- @SmallTest
- public void testBasic() throws Exception {
- LocalServerSocket ss;
- LocalSocket ls;
- LocalSocket ls1;
-
- ss = new LocalServerSocket("com.android.unit_tests.LocalSocketTest");
-
- ls = new LocalSocket();
-
- ls.connect(new LocalSocketAddress("com.android.unit_tests.LocalSocketTest"));
-
- ls1 = ss.accept();
-
- // Test trivial read and write
- ls.getOutputStream().write(42);
-
- assertEquals(42, ls1.getInputStream().read());
-
- // Test getting credentials
- Credentials c = ls1.getPeerCredentials();
-
- MoreAsserts.assertNotEqual(0, c.getPid());
-
- // Test sending and receiving file descriptors
- ls.setFileDescriptorsForSend(
- new FileDescriptor[]{FileDescriptor.in});
-
- ls.getOutputStream().write(42);
-
- assertEquals(42, ls1.getInputStream().read());
-
- FileDescriptor[] out = ls1.getAncillaryFileDescriptors();
-
- assertEquals(1, out.length);
-
- // Test multible byte write and available()
- ls1.getOutputStream().write(new byte[]{0, 1, 2, 3, 4, 5}, 1, 5);
-
- assertEquals(1, ls.getInputStream().read());
- assertEquals(4, ls.getInputStream().available());
-
- byte[] buffer = new byte[16];
- int countRead;
-
- countRead = ls.getInputStream().read(buffer, 1, 15);
-
- assertEquals(4, countRead);
- assertEquals(2, buffer[1]);
- assertEquals(3, buffer[2]);
- assertEquals(4, buffer[3]);
- assertEquals(5, buffer[4]);
-
- // Try various array-out-of-bound cases
- try {
- ls.getInputStream().read(buffer, 1, 16);
- fail("expected exception");
- } catch (ArrayIndexOutOfBoundsException ex) {
- // excpected
- }
-
- try {
- ls.getOutputStream().write(buffer, 1, 16);
- fail("expected exception");
- } catch (ArrayIndexOutOfBoundsException ex) {
- // excpected
- }
-
- try {
- ls.getOutputStream().write(buffer, -1, 15);
- fail("expected exception");
- } catch (ArrayIndexOutOfBoundsException ex) {
- // excpected
- }
-
- try {
- ls.getOutputStream().write(buffer, 0, -1);
- fail("expected exception");
- } catch (ArrayIndexOutOfBoundsException ex) {
- // excpected
- }
-
- try {
- ls.getInputStream().read(buffer, -1, 15);
- fail("expected exception");
- } catch (ArrayIndexOutOfBoundsException ex) {
- // excpected
- }
-
- try {
- ls.getInputStream().read(buffer, 0, -1);
- fail("expected exception");
- } catch (ArrayIndexOutOfBoundsException ex) {
- // excpected
- }
-
- // Try read of length 0
- ls.getOutputStream().write(42);
- countRead = ls1.getInputStream().read(buffer, 0, 0);
- assertEquals(0, countRead);
- assertEquals(42, ls1.getInputStream().read());
-
- ss.close();
-
- ls.close();
-
- // Try write on closed socket
-
- try {
- ls.getOutputStream().write(42);
- fail("expected exception");
- } catch (IOException ex) {
- // Expected
- }
-
- // Try read on closed socket
-
- try {
- ls.getInputStream().read();
- fail("expected exception");
- } catch (IOException ex) {
- // Expected
- }
-
- // Try write on socket whose peer has closed
-
- try {
- ls1.getOutputStream().write(42);
- fail("expected exception");
- } catch (IOException ex) {
- // Expected
- }
-
- // Try read on socket whose peer has closed
-
- assertEquals(-1, ls1.getInputStream().read());
-
- ls1.close();
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/LocationManagerTest.java b/tests/AndroidTests/src/com/android/unit_tests/LocationManagerTest.java
deleted file mode 100644
index 47c7522..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/LocationManagerTest.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.content.Context;
-import android.location.Criteria;
-import android.location.Location;
-import android.location.LocationManager;
-import android.location.LocationProvider;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.Suppress;
-import android.util.Log;
-
-@Suppress
-public class LocationManagerTest extends AndroidTestCase {
- private static final String LOG_TAG = "LocationManagerTest";
-
- private LocationManager manager;
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- manager = (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE);
- assertNotNull(manager);
- }
-
- public void testGetBogusProvider() {
- LocationProvider p = manager.getProvider("bogus");
- assertNull(p);
- }
-
- public void testGetNetworkProvider() {
- LocationProvider p = manager.getProvider("network");
- assertNotNull(p);
- }
-
- public void testGetGpsProvider() {
- LocationProvider p = manager.getProvider("gps");
- assertNotNull(p);
- }
-
- public void testGetBestProviderEmptyCriteria() {
- String p = manager.getBestProvider(new Criteria(), true);
- assertNotNull(p);
- }
-
- public void testGetBestProviderPowerCriteria() {
- Criteria c = new Criteria();
- c.setPowerRequirement(Criteria.POWER_HIGH);
- String p = manager.getBestProvider(c, true);
- assertNotNull(p);
-
- c.setPowerRequirement(Criteria.POWER_MEDIUM);
- p = manager.getBestProvider(c, true);
- assertNotNull(p);
-
- c.setPowerRequirement(Criteria.POWER_LOW);
- p = manager.getBestProvider(c, true);
- assertNotNull(p);
-
- c.setPowerRequirement(Criteria.NO_REQUIREMENT);
- p = manager.getBestProvider(c, true);
- assertNotNull(p);
- }
-
- public void testGpsTracklog() {
- LocationProvider p = manager.getProvider("gps");
- assertNotNull(p);
-
- // TODO: test requestUpdates method
- }
-
- public void testLocationConversions() {
- String loc1 = Location.convert(-80.075, Location.FORMAT_DEGREES);
- Log.i(LOG_TAG, "Input = " + (-80.075) + ", output = " + loc1);
- assertEquals("-80.075", loc1);
-
- String loc1b = Location.convert(-80.0, Location.FORMAT_DEGREES);
- Log.i(LOG_TAG, "Input = " + (-80.0) + ", output = " + loc1b);
- assertEquals("-80", loc1b);
-
- String loc2 = Location.convert(-80.085, Location.FORMAT_DEGREES);
- Log.i(LOG_TAG, "Input = " + (-80.085) + ", output = " + loc2);
- assertEquals("-80.085", loc2);
-
- String loc3 = Location.convert(-80.085, Location.FORMAT_MINUTES);
- Log.i(LOG_TAG, "Input = " + (-80.085) + ", output = " + loc3);
- assertEquals("-80:5.1", loc3);
-
- String loc4 = Location.convert(-80.085, Location.FORMAT_SECONDS);
- Log.i(LOG_TAG, "Input = " + (-80.085) + ", output = " + loc4);
- assertEquals("-80:5:6", loc4);
-
- String loc5 = Location.convert(5 + 0.5f / 60.0f, Location.FORMAT_MINUTES);
- Log.i(LOG_TAG, "Input = 5:0.5, output = " + loc5);
- int index = loc5.indexOf(':');
- String loc5a = loc5.substring(0, index);
- Log.i(LOG_TAG, "loc5a = " + loc5a);
- assertTrue(loc5a.equals("5"));
- String loc5b = loc5.substring(index + 1);
- Log.i(LOG_TAG, "loc5b = " + loc5b);
- double minutes = Double.parseDouble(loc5b);
- Log.i(LOG_TAG, "minutes = " + minutes);
- assertTrue(Math.abs(minutes - 0.5) < 0.0001);
-
- String loc6 = Location.convert(0.1, Location.FORMAT_DEGREES);
- Log.i(LOG_TAG, "loc6 = " + loc6);
- assertEquals(loc6, "0.1");
-
- String loc7 = Location.convert(0.1, Location.FORMAT_MINUTES);
- Log.i(LOG_TAG, "loc7 = " + loc7);
- assertEquals(loc7, "0:6");
-
- String loc8 = Location.convert(0.1, Location.FORMAT_SECONDS);
- Log.i(LOG_TAG, "loc8 = " + loc8);
- assertEquals(loc8, "0:6:0");
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/LogTest.java b/tests/AndroidTests/src/com/android/unit_tests/LogTest.java
deleted file mode 100644
index 786c4b9..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/LogTest.java
+++ /dev/null
@@ -1,152 +0,0 @@
-package com.android.unit_tests;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import android.os.SystemProperties;
-import android.test.PerformanceTestCase;
-import android.test.suitebuilder.annotation.Suppress;
-import android.util.Log;
-
-//This is an empty TestCase.
-@Suppress
-public class LogTest extends TestCase {
- private static final String PROPERTY_TAG = "log.tag.LogTest";
- private static final String LOG_TAG = "LogTest";
-
-
- // TODO: remove this test once we uncomment out the following test.
- public void testLogTestDummy() {
- return;
- }
-
-
- /* TODO: This test is commented out because we will not be able to set properities. Fix the test.
- public void testIsLoggable() {
- // First clear any SystemProperty setting for our test key.
- SystemProperties.set(PROPERTY_TAG, null);
-
- String value = SystemProperties.get(PROPERTY_TAG);
- Assert.assertTrue(value == null || value.length() == 0);
-
- // Check to make sure that all levels expect for INFO, WARN, ERROR, and ASSERT are loggable.
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.VERBOSE));
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.DEBUG));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.INFO));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.WARN));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ERROR));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ASSERT));
-
- // Set the log level to be VERBOSE for this tag.
- SystemProperties.set(PROPERTY_TAG, "VERBOSE");
-
- // Test to make sure all log levels >= VERBOSE are loggable.
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.VERBOSE));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.DEBUG));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.INFO));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.WARN));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ERROR));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ASSERT));
-
- // Set the log level to be DEBUG for this tag.
- SystemProperties.set(PROPERTY_TAG, "DEBUG");
-
- // Test to make sure all log levels >= DEBUG are loggable.
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.VERBOSE));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.DEBUG));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.INFO));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.WARN));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ERROR));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ASSERT));
-
- // Set the log level to be INFO for this tag.
- SystemProperties.set(PROPERTY_TAG, "INFO");
-
- // Test to make sure all log levels >= INFO are loggable.
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.VERBOSE));
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.DEBUG));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.INFO));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.WARN));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ERROR));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ASSERT));
-
- // Set the log level to be WARN for this tag.
- SystemProperties.set(PROPERTY_TAG, "WARN");
-
- // Test to make sure all log levels >= WARN are loggable.
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.VERBOSE));
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.DEBUG));
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.INFO));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.WARN));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ERROR));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ASSERT));
-
- // Set the log level to be ERROR for this tag.
- SystemProperties.set(PROPERTY_TAG, "ERROR");
-
- // Test to make sure all log levels >= ERROR are loggable.
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.VERBOSE));
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.DEBUG));
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.INFO));
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.WARN));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ERROR));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ASSERT));
-
- // Set the log level to be ASSERT for this tag.
- SystemProperties.set(PROPERTY_TAG, "ASSERT");
-
- // Test to make sure all log levels >= ASSERT are loggable.
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.VERBOSE));
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.DEBUG));
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.INFO));
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.WARN));
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.ERROR));
- Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ASSERT));
-
- // Set the log level to be SUPPRESS for this tag.
- SystemProperties.set(PROPERTY_TAG, "SUPPRESS");
-
- // Test to make sure all log levels >= ASSERT are loggable.
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.VERBOSE));
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.DEBUG));
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.INFO));
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.WARN));
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.ERROR));
- Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.ASSERT));
- }
- */
-
- public static class PerformanceTest extends TestCase implements PerformanceTestCase {
- private static final int ITERATIONS = 1000;
-
- @Override
- public void setUp() {
- SystemProperties.set(LOG_TAG, "VERBOSE");
- }
-
- public boolean isPerformanceOnly() {
- return true;
- }
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS * 10);
- return 0;
- }
-
- public void testIsLoggable() {
- boolean canLog = false;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE);
- canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE);
- canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE);
- canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE);
- canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE);
- canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE);
- canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE);
- canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE);
- canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE);
- canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE);
- }
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/MathTest.java b/tests/AndroidTests/src/com/android/unit_tests/MathTest.java
deleted file mode 100644
index caf2d20..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/MathTest.java
+++ /dev/null
@@ -1,380 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.test.PerformanceTestBase;
-import android.test.PerformanceTestCase;
-
-/**
- *
- * Implements basic performance test functionality for java.lang.Math
- *
- */
-
-public class MathTest extends PerformanceTestBase {
- public static final int ITERATIONS = 1000;
- public static final double sDouble1 = -2450.50;
- public static final double sDouble2 = -500;
- public static final float sFloat = 300.50f;
- public static final int sInt = 90;
-
- @Override
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS);
- return 0;
- }
-
- public void testDoubleAbs() {
- double result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = Math.abs(sDouble1);
- result = Math.abs(sDouble1);
- result = Math.abs(sDouble1);
- result = Math.abs(sDouble1);
- result = Math.abs(sDouble1);
- result = Math.abs(sDouble1);
- result = Math.abs(sDouble1);
- result = Math.abs(sDouble1);
- result = Math.abs(sDouble1);
- result = Math.abs(sDouble1);
- }
- }
-
- public void testFloatAbs() {
- float result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = Math.abs(sFloat);
- result = Math.abs(sFloat);
- result = Math.abs(sFloat);
- result = Math.abs(sFloat);
- result = Math.abs(sFloat);
- result = Math.abs(sFloat);
- result = Math.abs(sFloat);
- result = Math.abs(sFloat);
- result = Math.abs(sFloat);
- result = Math.abs(sFloat);
- }
- }
-
- public void testMathSin() {
- double result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = Math.sin(sDouble1);
- result = Math.sin(sDouble1);
- result = Math.sin(sDouble1);
- result = Math.sin(sDouble1);
- result = Math.sin(sDouble1);
- result = Math.sin(sDouble1);
- result = Math.sin(sDouble1);
- result = Math.sin(sDouble1);
- result = Math.sin(sDouble1);
- result = Math.sin(sDouble1);
- }
- }
-
- public void testMathCos() {
- double result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = Math.cos(sDouble1);
- result = Math.cos(sDouble1);
- result = Math.cos(sDouble1);
- result = Math.cos(sDouble1);
- result = Math.cos(sDouble1);
- result = Math.cos(sDouble1);
- result = Math.cos(sDouble1);
- result = Math.cos(sDouble1);
- result = Math.cos(sDouble1);
- result = Math.cos(sDouble1);
- }
- }
-
- public void testMathTan() {
- double result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = Math.tan(sDouble1);
- result = Math.tan(sDouble1);
- result = Math.tan(sDouble1);
- result = Math.tan(sDouble1);
- result = Math.tan(sDouble1);
- result = Math.tan(sDouble1);
- result = Math.tan(sDouble1);
- result = Math.tan(sDouble1);
- result = Math.tan(sDouble1);
- result = Math.tan(sDouble1);
- }
- }
-
- public void testMathASin() {
- double result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = Math.asin(sDouble1);
- result = Math.asin(sDouble1);
- result = Math.asin(sDouble1);
- result = Math.asin(sDouble1);
- result = Math.asin(sDouble1);
- result = Math.asin(sDouble1);
- result = Math.asin(sDouble1);
- result = Math.asin(sDouble1);
- result = Math.asin(sDouble1);
- result = Math.asin(sDouble1);
- }
- }
-
- public void testMathACos() {
- double result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = Math.acos(sDouble1);
- result = Math.acos(sDouble1);
- result = Math.acos(sDouble1);
- result = Math.acos(sDouble1);
- result = Math.acos(sDouble1);
- result = Math.acos(sDouble1);
- result = Math.acos(sDouble1);
- result = Math.acos(sDouble1);
- result = Math.acos(sDouble1);
- result = Math.acos(sDouble1);
- }
- }
-
- public void testMathATan() {
- double result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = Math.atan(sDouble1);
- result = Math.atan(sDouble1);
- result = Math.atan(sDouble1);
- result = Math.atan(sDouble1);
- result = Math.atan(sDouble1);
- result = Math.atan(sDouble1);
- result = Math.atan(sDouble1);
- result = Math.atan(sDouble1);
- result = Math.atan(sDouble1);
- result = Math.atan(sDouble1);
- }
- }
-
- public void testMathLog() {
- double result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = Math.log(sDouble1);
- result = Math.log(sDouble1);
- result = Math.log(sDouble1);
- result = Math.log(sDouble1);
- result = Math.log(sDouble1);
- result = Math.log(sDouble1);
- result = Math.log(sDouble1);
- result = Math.log(sDouble1);
- result = Math.log(sDouble1);
- result = Math.log(sDouble1);
- }
- }
-
- public void testMathSqrt() {
- double result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = Math.sqrt(sDouble1);
- result = Math.sqrt(sDouble1);
- result = Math.sqrt(sDouble1);
- result = Math.sqrt(sDouble1);
- result = Math.sqrt(sDouble1);
- result = Math.sqrt(sDouble1);
- result = Math.sqrt(sDouble1);
- result = Math.sqrt(sDouble1);
- result = Math.sqrt(sDouble1);
- result = Math.sqrt(sDouble1);
- }
- }
-
- public void testMathCeil() {
- double result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = Math.ceil(sDouble1);
- result = Math.ceil(sDouble1);
- result = Math.ceil(sDouble1);
- result = Math.ceil(sDouble1);
- result = Math.ceil(sDouble1);
- result = Math.ceil(sDouble1);
- result = Math.ceil(sDouble1);
- result = Math.ceil(sDouble1);
- result = Math.ceil(sDouble1);
- result = Math.ceil(sDouble1);
- }
- }
-
- public void testMathRound() {
- double result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = Math.round(sDouble1);
- result = Math.round(sDouble1);
- result = Math.round(sDouble1);
- result = Math.round(sDouble1);
- result = Math.round(sDouble1);
- result = Math.round(sDouble1);
- result = Math.round(sDouble1);
- result = Math.round(sDouble1);
- result = Math.round(sDouble1);
- result = Math.round(sDouble1);
- }
- }
-
- public void testMathFloor() {
- double result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = Math.floor(sDouble1);
- result = Math.floor(sDouble1);
- result = Math.floor(sDouble1);
- result = Math.floor(sDouble1);
- result = Math.floor(sDouble1);
- result = Math.floor(sDouble1);
- result = Math.floor(sDouble1);
- result = Math.floor(sDouble1);
- result = Math.floor(sDouble1);
- result = Math.floor(sDouble1);
- }
- }
-
- public void testMathExp() {
- double result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = Math.exp(sDouble1);
- result = Math.exp(sDouble1);
- result = Math.exp(sDouble1);
- result = Math.exp(sDouble1);
- result = Math.exp(sDouble1);
- result = Math.exp(sDouble1);
- result = Math.exp(sDouble1);
- result = Math.exp(sDouble1);
- result = Math.exp(sDouble1);
- result = Math.exp(sDouble1);
- }
- }
-
- /**
- *
- */
-
- public void testMathPow() {
- double result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = Math.pow(sDouble1, sDouble2);
- result = Math.pow(sDouble1, sDouble2);
- result = Math.pow(sDouble1, sDouble2);
- result = Math.pow(sDouble1, sDouble2);
- result = Math.pow(sDouble1, sDouble2);
- result = Math.pow(sDouble1, sDouble2);
- result = Math.pow(sDouble1, sDouble2);
- result = Math.pow(sDouble1, sDouble2);
- result = Math.pow(sDouble1, sDouble2);
- result = Math.pow(sDouble1, sDouble2);
- }
- }
-
- public void testMathMax() {
- double result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = Math.max(sDouble1, sDouble2);
- result = Math.max(sDouble1, sDouble2);
- result = Math.max(sDouble1, sDouble2);
- result = Math.max(sDouble1, sDouble2);
- result = Math.max(sDouble1, sDouble2);
- result = Math.max(sDouble1, sDouble2);
- result = Math.max(sDouble1, sDouble2);
- result = Math.max(sDouble1, sDouble2);
- result = Math.max(sDouble1, sDouble2);
- result = Math.max(sDouble1, sDouble2);
- }
- }
-
- public void testMathMin() {
- double result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = Math.min(sDouble1, sDouble2);
- result = Math.min(sDouble1, sDouble2);
- result = Math.min(sDouble1, sDouble2);
- result = Math.min(sDouble1, sDouble2);
- result = Math.min(sDouble1, sDouble2);
- result = Math.min(sDouble1, sDouble2);
- result = Math.min(sDouble1, sDouble2);
- result = Math.min(sDouble1, sDouble2);
- result = Math.min(sDouble1, sDouble2);
- result = Math.min(sDouble1, sDouble2);
- }
- }
-
- public void testMathRandom() {
- double result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = Math.random();
- result = Math.random();
- result = Math.random();
- result = Math.random();
- result = Math.random();
- result = Math.random();
- result = Math.random();
- result = Math.random();
- result = Math.random();
- result = Math.random();
- }
- }
-
- public void testMathIEEERemainder() {
- double result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = Math.IEEEremainder(sDouble1, sDouble2);
- result = Math.IEEEremainder(sDouble1, sDouble2);
- result = Math.IEEEremainder(sDouble1, sDouble2);
- result = Math.IEEEremainder(sDouble1, sDouble2);
- result = Math.IEEEremainder(sDouble1, sDouble2);
- result = Math.IEEEremainder(sDouble1, sDouble2);
- result = Math.IEEEremainder(sDouble1, sDouble2);
- result = Math.IEEEremainder(sDouble1, sDouble2);
- result = Math.IEEEremainder(sDouble1, sDouble2);
- result = Math.IEEEremainder(sDouble1, sDouble2);
- }
- }
-
- public void testMathToDegrees() {
- double result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = Math.toDegrees(sDouble1);
- result = Math.toDegrees(sDouble1);
- result = Math.toDegrees(sDouble1);
- result = Math.toDegrees(sDouble1);
- result = Math.toDegrees(sDouble1);
- result = Math.toDegrees(sDouble1);
- result = Math.toDegrees(sDouble1);
- result = Math.toDegrees(sDouble1);
- result = Math.toDegrees(sDouble1);
- result = Math.toDegrees(sDouble1);
- }
- }
-
- public void testMathToRadians() {
- double result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = Math.toRadians(sDouble1);
- result = Math.toRadians(sDouble1);
- result = Math.toRadians(sDouble1);
- result = Math.toRadians(sDouble1);
- result = Math.toRadians(sDouble1);
- result = Math.toRadians(sDouble1);
- result = Math.toRadians(sDouble1);
- result = Math.toRadians(sDouble1);
- result = Math.toRadians(sDouble1);
- result = Math.toRadians(sDouble1);
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/MenuTest.java b/tests/AndroidTests/src/com/android/unit_tests/MenuTest.java
deleted file mode 100644
index c436726..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/MenuTest.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import com.android.internal.view.menu.MenuBuilder;
-
-import junit.framework.Assert;
-
-import android.test.AndroidTestCase;
-import android.test.MoreAsserts;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.view.KeyEvent;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.SubMenu;
-
-public class MenuTest extends AndroidTestCase {
-
- private MenuBuilder mMenu;
-
- public void setUp() throws Exception {
- super.setUp();
- mMenu = new MenuBuilder(super.getContext());
- }
-
- @SmallTest
- public void testItemId() {
- final int id = 512;
- final MenuItem item = mMenu.add(0, id, 0, "test");
-
- Assert.assertEquals(id, item.getItemId());
- Assert.assertEquals(item, mMenu.findItem(id));
- Assert.assertEquals(0, mMenu.findItemIndex(id));
- }
-
- @SmallTest
- public void testGroupId() {
- final int groupId = 541;
- final int item1Index = 1;
- final int item2Index = 3;
-
- mMenu.add(0, 0, item1Index - 1, "ignore");
- final MenuItem item = mMenu.add(groupId, 0, item1Index, "test");
- mMenu.add(0, 0, item2Index - 1, "ignore");
- final MenuItem item2 = mMenu.add(groupId, 0, item2Index, "test2");
-
- Assert.assertEquals(groupId, item.getGroupId());
- Assert.assertEquals(groupId, item2.getGroupId());
- Assert.assertEquals(item1Index, mMenu.findGroupIndex(groupId));
- Assert.assertEquals(item2Index, mMenu.findGroupIndex(groupId, item1Index + 1));
- }
-
- @SmallTest
- public void testGroup() {
- // This test does the following
- // 1. Create a grouped item in the menu
- // 2. Check that findGroupIndex() finds the grouped item.
- // 3. Check that findGroupIndex() doesn't find a non-existent group.
-
- final int GROUP_ONE = Menu.FIRST;
- final int GROUP_TWO = Menu.FIRST + 1;
-
- mMenu.add(GROUP_ONE, 0, 0, "Menu text");
- Assert.assertEquals(mMenu.findGroupIndex(GROUP_ONE), 0);
- Assert.assertEquals(mMenu.findGroupIndex(GROUP_TWO), -1);
- //TODO: expand this test case to do multiple groups,
- //adding and removing, hiding and showing, etc.
- }
-
- @SmallTest
- public void testIsShortcutWithAlpha() throws Exception {
- mMenu.setQwertyMode(true);
- mMenu.add(0, 0, 0, "test").setShortcut('2', 'a');
- Assert.assertTrue(mMenu.isShortcutKey(KeyEvent.KEYCODE_A,
- makeKeyEvent(KeyEvent.KEYCODE_A, 0)));
- Assert.assertFalse(mMenu.isShortcutKey(KeyEvent.KEYCODE_B,
- makeKeyEvent(KeyEvent.KEYCODE_B, 0)));
- }
-
- @SmallTest
- public void testIsShortcutWithNumeric() throws Exception {
- mMenu.setQwertyMode(false);
- mMenu.add(0, 0, 0, "test").setShortcut('2', 'a');
- Assert.assertTrue(mMenu.isShortcutKey(KeyEvent.KEYCODE_2,
- makeKeyEvent(KeyEvent.KEYCODE_2, 0)));
- Assert.assertFalse(mMenu.isShortcutKey(KeyEvent.KEYCODE_A,
- makeKeyEvent(KeyEvent.KEYCODE_A, 0)));
- }
-
- @SmallTest
- public void testIsShortcutWithAlt() throws Exception {
- mMenu.setQwertyMode(true);
- mMenu.add(0, 0, 0, "test").setShortcut('2', 'a');
- Assert.assertTrue(mMenu.isShortcutKey(KeyEvent.KEYCODE_A,
- makeKeyEvent(KeyEvent.KEYCODE_A,
- KeyEvent.META_ALT_ON)));
- Assert.assertFalse(mMenu.isShortcutKey(KeyEvent.KEYCODE_A,
- makeKeyEvent(KeyEvent.KEYCODE_A,
- KeyEvent.META_SYM_ON)));
- }
-
- @SmallTest
- public void testIsNotShortcutWithShift() throws Exception {
- mMenu.setQwertyMode(true);
- mMenu.add(0, 0, 0, "test").setShortcut('2', 'a');
- Assert.assertFalse(mMenu.isShortcutKey(KeyEvent.KEYCODE_A,
- makeKeyEvent(KeyEvent.KEYCODE_A,
- KeyEvent.META_SHIFT_ON)));
- }
-
- @SmallTest
- public void testIsNotShortcutWithSym() throws Exception {
- mMenu.setQwertyMode(true);
- mMenu.add(0, 0, 0, "test").setShortcut('2', 'a');
- Assert.assertFalse(mMenu.isShortcutKey(KeyEvent.KEYCODE_A,
- makeKeyEvent(KeyEvent.KEYCODE_A,
- KeyEvent.META_SYM_ON)));
- }
-
- @SmallTest
- public void testIsShortcutWithUpperCaseAlpha() throws Exception {
- mMenu.setQwertyMode(true);
- mMenu.add(0, 0, 0, "test").setShortcut('2', 'A');
- Assert.assertTrue(mMenu.isShortcutKey(KeyEvent.KEYCODE_A,
- makeKeyEvent(KeyEvent.KEYCODE_A, 0)));
- }
-
- @SmallTest
- public void testIsShortcutWithBackspace() throws Exception {
- mMenu.setQwertyMode(true);
- mMenu.add(0, 0, 0, "test").setShortcut('2', '\b');
- Assert.assertTrue(mMenu.isShortcutKey(KeyEvent.KEYCODE_DEL,
- makeKeyEvent(KeyEvent.KEYCODE_DEL, 0)));
- }
-
- @SmallTest
- public void testIsShortcutWithNewline() throws Exception {
- mMenu.setQwertyMode(true);
- mMenu.add(0, 0, 0, "test").setShortcut('2', '\n');
- Assert.assertTrue(mMenu.isShortcutKey(KeyEvent.KEYCODE_ENTER,
- makeKeyEvent(KeyEvent.KEYCODE_ENTER, 0)));
- }
-
- @SmallTest
- public void testOrder() {
- final String a = "a", b = "b", c = "c";
- final int firstOrder = 7, midOrder = 8, lastOrder = 9;
-
- mMenu.add(0, 0, lastOrder, c);
- mMenu.add(0, 0, firstOrder, a);
- mMenu.add(0, 0, midOrder, b);
-
- Assert.assertEquals(firstOrder, mMenu.getItem(0).getOrder());
- Assert.assertEquals(a, mMenu.getItem(0).getTitle());
- Assert.assertEquals(midOrder, mMenu.getItem(1).getOrder());
- Assert.assertEquals(b, mMenu.getItem(1).getTitle());
- Assert.assertEquals(lastOrder, mMenu.getItem(2).getOrder());
- Assert.assertEquals(c, mMenu.getItem(2).getTitle());
- }
-
- @SmallTest
- public void testTitle() {
- final String title = "test";
- final MenuItem stringItem = mMenu.add(title);
- final MenuItem resItem = mMenu.add(R.string.menu_test);
-
- Assert.assertEquals(title, stringItem.getTitle());
- Assert.assertEquals(getContext().getResources().getString(R.string.menu_test), resItem
- .getTitle());
- }
-
- @SmallTest
- public void testCheckable() {
- final int groupId = 1;
- final MenuItem item1 = mMenu.add(groupId, 1, 0, "item1");
- final MenuItem item2 = mMenu.add(groupId, 2, 0, "item2");
-
- // Set to exclusive
- mMenu.setGroupCheckable(groupId, true, true);
- Assert.assertTrue("Item was not set to checkable", item1.isCheckable());
- item1.setChecked(true);
- Assert.assertTrue("Item did not get checked", item1.isChecked());
- Assert.assertFalse("Item was not unchecked due to exclusive checkable", item2.isChecked());
- mMenu.findItem(2).setChecked(true);
- Assert.assertTrue("Item did not get checked", item2.isChecked());
- Assert.assertFalse("Item was not unchecked due to exclusive checkable", item1.isChecked());
-
- // Multiple non-exlusive checkable items
- mMenu.setGroupCheckable(groupId, true, false);
- Assert.assertTrue("Item was not set to checkable", item1.isCheckable());
- item1.setChecked(false);
- Assert.assertFalse("Item did not get unchecked", item1.isChecked());
- item1.setChecked(true);
- Assert.assertTrue("Item did not get checked", item1.isChecked());
- mMenu.findItem(2).setChecked(true);
- Assert.assertTrue("Item did not get checked", item2.isChecked());
- Assert.assertTrue("Item was unchecked when it shouldnt have been", item1.isChecked());
- }
-
- @SmallTest
- public void testVisibility() {
- final MenuItem item1 = mMenu.add(0, 1, 0, "item1");
- final MenuItem item2 = mMenu.add(0, 2, 0, "item2");
-
- // Should start as visible
- Assert.assertTrue("Item did not start as visible", item1.isVisible());
- Assert.assertTrue("Item did not start as visible", item2.isVisible());
-
- // Hide
- item1.setVisible(false);
- Assert.assertFalse("Item did not become invisible", item1.isVisible());
- mMenu.findItem(2).setVisible(false);
- Assert.assertFalse("Item did not become invisible", item2.isVisible());
- }
-
- @SmallTest
- public void testSubMenu() {
- final SubMenu subMenu = mMenu.addSubMenu(0, 0, 0, "submenu");
- final MenuItem subMenuItem = subMenu.getItem();
- final MenuItem item1 = subMenu.add(0, 1, 0, "item1");
- final MenuItem item2 = subMenu.add(0, 2, 0, "item2");
-
- // findItem should recurse into submenus
- Assert.assertEquals(item1, mMenu.findItem(1));
- Assert.assertEquals(item2, mMenu.findItem(2));
- }
-
- @SmallTest
- public void testRemove() {
- final int groupId = 1;
- final MenuItem item1 = mMenu.add(groupId, 1, 0, "item1");
- final MenuItem item2 = mMenu.add(groupId, 2, 0, "item2");
- final MenuItem item3 = mMenu.add(groupId, 3, 0, "item3");
- final MenuItem item4 = mMenu.add(groupId, 4, 0, "item4");
- final MenuItem item5 = mMenu.add(groupId, 5, 0, "item5");
- final MenuItem item6 = mMenu.add(0, 6, 0, "item6");
-
- Assert.assertEquals(item1, mMenu.findItem(1));
- mMenu.removeItemAt(0);
- Assert.assertNull(mMenu.findItem(1));
-
- Assert.assertEquals(item2, mMenu.findItem(2));
- mMenu.removeItem(2);
- Assert.assertNull(mMenu.findItem(2));
-
- Assert.assertEquals(item3, mMenu.findItem(3));
- Assert.assertEquals(item4, mMenu.findItem(4));
- Assert.assertEquals(item5, mMenu.findItem(5));
- mMenu.removeGroup(groupId);
- Assert.assertNull(mMenu.findItem(3));
- Assert.assertNull(mMenu.findItem(4));
- Assert.assertNull(mMenu.findItem(5));
-
- Assert.assertEquals(item6, mMenu.findItem(6));
- mMenu.clear();
- Assert.assertNull(mMenu.findItem(6));
- }
-
- private KeyEvent makeKeyEvent(int keyCode, int metaState) {
- return new KeyEvent(0L, 0L, KeyEvent.ACTION_DOWN, keyCode, 0, metaState);
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/MonitorTest.java b/tests/AndroidTests/src/com/android/unit_tests/MonitorTest.java
deleted file mode 100644
index 2f3df10..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/MonitorTest.java
+++ /dev/null
@@ -1,469 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class MonitorTest extends TestCase {
-
- @MediumTest
- public void testWaitArgumentsTest() throws Exception {
- /* Try some valid arguments. These should all
- * return very quickly.
- */
- try {
- synchronized (this) {
- /* millisecond version */
- wait(1);
- wait(10);
-
- /* millisecond + nanosecond version */
- wait(0, 1);
- wait(0, 999999);
- wait(1, 1);
- wait(1, 999999);
- }
- } catch (InterruptedException ex) {
- throw new RuntimeException("good Object.wait() interrupted",
- ex);
- } catch (Exception ex) {
- throw new RuntimeException("Unexpected exception when calling" +
- "Object.wait() with good arguments", ex);
- }
-
- /* Try some invalid arguments.
- */
- boolean sawException = false;
- try {
- synchronized (this) {
- wait(-1);
- }
- } catch (InterruptedException ex) {
- throw new RuntimeException("bad Object.wait() interrupted", ex);
- } catch (IllegalArgumentException ex) {
- sawException = true;
- } catch (Exception ex) {
- throw new RuntimeException("Unexpected exception when calling" +
- "Object.wait() with bad arguments", ex);
- }
- if (!sawException) {
- throw new RuntimeException("bad call to Object.wait() should " +
- "have thrown IllegalArgumentException");
- }
-
- sawException = false;
- try {
- synchronized (this) {
- wait(0, -1);
- }
- } catch (InterruptedException ex) {
- throw new RuntimeException("bad Object.wait() interrupted", ex);
- } catch (IllegalArgumentException ex) {
- sawException = true;
- } catch (Exception ex) {
- throw new RuntimeException("Unexpected exception when calling" +
- "Object.wait() with bad arguments", ex);
- }
- if (!sawException) {
- throw new RuntimeException("bad call to Object.wait() should " +
- "have thrown IllegalArgumentException");
- }
-
- sawException = false;
- try {
- synchronized (this) {
- /* The legal range of nanos is 0-999999. */
- wait(0, 1000000);
- }
- } catch (InterruptedException ex) {
- throw new RuntimeException("bad Object.wait() interrupted", ex);
- } catch (IllegalArgumentException ex) {
- sawException = true;
- } catch (Exception ex) {
- throw new RuntimeException("Unexpected exception when calling" +
- "Object.wait() with bad arguments", ex);
- }
- if (!sawException) {
- throw new RuntimeException("bad call to Object.wait() should " +
- "have thrown IllegalArgumentException");
- }
- }
-
- private class Interrupter extends Thread {
- Waiter waiter;
-
- Interrupter(String name, Waiter waiter) {
- super(name);
- this.waiter = waiter;
- }
-
- public void run() {
- try {
- run_inner();
- } catch (Throwable t) {
- MonitorTest.errorException = t;
- MonitorTest.testThread.interrupt();
- }
- }
-
- void run_inner() {
- waiter.spin = true;
- // System.out.println("InterruptTest: starting waiter");
- waiter.start();
-
- try {
- Thread.currentThread().sleep(500);
- } catch (InterruptedException ex) {
- throw new RuntimeException("Test sleep interrupted.", ex);
- }
-
- /* Waiter is spinning, and its monitor should still be thin.
- */
- // System.out.println("Test interrupting waiter");
- waiter.interrupt();
- waiter.spin = false;
-
- for (int i = 0; i < 3; i++) {
- /* Wait for the waiter to start waiting.
- */
- synchronized (waiter.interrupterLock) {
- try {
- waiter.interrupterLock.wait();
- } catch (InterruptedException ex) {
- throw new RuntimeException("Test wait interrupted.", ex);
- }
- }
-
- /* Before interrupting, grab the waiter lock, which
- * guarantees that the waiter is already sitting in wait().
- */
- synchronized (waiter) {
- //System.out.println("Test interrupting waiter (" + i + ")");
- waiter.interrupt();
- }
- }
-
- // System.out.println("Test waiting for waiter to die.");
- try {
- waiter.join();
- } catch (InterruptedException ex) {
- throw new RuntimeException("Test join interrupted.", ex);
- }
- // System.out.println("InterruptTest done.");
- }
- }
-
- private class Waiter extends Thread {
- Object interrupterLock = new Object();
- Boolean spin = false;
-
- Waiter(String name) {
- super(name);
- }
-
- public void run() {
- try {
- run_inner();
- } catch (Throwable t) {
- MonitorTest.errorException = t;
- MonitorTest.testThread.interrupt();
- }
- }
-
- void run_inner() {
- // System.out.println("Waiter spinning");
- while (spin) {
- // We're going to get interrupted while we spin.
- }
- if (interrupted()) {
- // System.out.println("Waiter done spinning; interrupted.");
- } else {
- throw new RuntimeException("Thread not interrupted " +
- "during spin");
- }
-
- synchronized (this) {
- Boolean sawEx = false;
-
- try {
- synchronized (interrupterLock) {
- interrupterLock.notify();
- }
- // System.out.println("Waiter calling wait()");
- this.wait();
- } catch (InterruptedException ex) {
- sawEx = true;
- // System.out.println("wait(): Waiter caught " + ex);
- }
- // System.out.println("wait() finished");
-
- if (!sawEx) {
- throw new RuntimeException("Thread not interrupted " +
- "during wait()");
- }
- }
- synchronized (this) {
- Boolean sawEx = false;
-
- try {
- synchronized (interrupterLock) {
- interrupterLock.notify();
- }
- // System.out.println("Waiter calling wait(1000)");
- this.wait(1000);
- } catch (InterruptedException ex) {
- sawEx = true;
- // System.out.println("wait(1000): Waiter caught " + ex);
- }
- // System.out.println("wait(1000) finished");
-
- if (!sawEx) {
- throw new RuntimeException("Thread not interrupted " +
- "during wait(1000)");
- }
- }
- synchronized (this) {
- Boolean sawEx = false;
-
- try {
- synchronized (interrupterLock) {
- interrupterLock.notify();
- }
- // System.out.println("Waiter calling wait(1000, 5000)");
- this.wait(1000, 5000);
- } catch (InterruptedException ex) {
- sawEx = true;
- // System.out.println("wait(1000, 5000): Waiter caught " + ex);
- }
- // System.out.println("wait(1000, 5000) finished");
-
- if (!sawEx) {
- throw new RuntimeException("Thread not interrupted " +
- "during wait(1000, 5000)");
- }
- }
-
- // System.out.println("Waiter returning");
- }
- }
-
- private static Throwable errorException;
- private static Thread testThread;
-
- @MediumTest
- public void testInterruptTest() throws Exception {
-
-
- testThread = Thread.currentThread();
- errorException = null;
-
- Waiter waiter = new Waiter("InterruptTest Waiter");
- Interrupter interrupter =
- new Interrupter("InterruptTest Interrupter", waiter);
- interrupter.start();
-
- try {
- interrupter.join();
- waiter.join();
- } catch (InterruptedException ex) {
- throw new RuntimeException("Test join interrupted.", ex);
- }
-
- if (errorException != null) {
- throw new RuntimeException("InterruptTest failed",
- errorException);
- }
-
-
-
-
- }
-
- private static void deepWait(int depth, Object lock) {
- synchronized (lock) {
- if (depth > 0) {
- deepWait(depth - 1, lock);
- } else {
- String threadName = Thread.currentThread().getName();
- try {
- // System.out.println(threadName + " waiting");
- lock.wait();
- // System.out.println(threadName + " done waiting");
- } catch (InterruptedException ex) {
- // System.out.println(threadName + " interrupted.");
- }
- }
- }
- }
-
- private class Worker extends Thread {
- Object lock;
- int id;
-
- Worker(int id, Object lock) {
- super("Worker(" + id + ")");
- this.id = id;
- this.lock = lock;
- }
-
- public void run() {
- int iterations = 0;
-
- while (MonitorTest.running) {
- MonitorTest.deepWait(id, lock);
- iterations++;
- }
- // System.out.println(getName() + " done after " + iterations + " iterations.");
- }
- }
-
- private static Object commonLock = new Object();
- private static Boolean running = false;
-
-
- @LargeTest
- public void testNestedMonitors() throws Exception {
- final int NUM_WORKERS = 5;
-
- Worker w[] = new Worker[NUM_WORKERS];
- int i;
-
- for (i = 0; i < NUM_WORKERS; i++) {
- w[i] = new Worker(i * 2 - 1, new Object());
- }
-
- running = true;
-
- // System.out.println("NestedMonitors: starting workers");
- for (i = 0; i < NUM_WORKERS; i++) {
- w[i].start();
- }
-
- try {
- Thread.currentThread().sleep(1000);
- } catch (InterruptedException ex) {
- // System.out.println("Test sleep interrupted.");
- }
-
- for (i = 0; i < 100; i++) {
- for (int j = 0; j < NUM_WORKERS; j++) {
- synchronized (w[j].lock) {
- w[j].lock.notify();
- }
- }
- }
-
- // System.out.println("NesterMonitors: stopping workers");
- running = false;
- for (i = 0; i < NUM_WORKERS; i++) {
- synchronized (w[i].lock) {
- w[i].lock.notifyAll();
- }
- }
- }
-
- private static class CompareAndExchange extends Thread {
- static Object toggleLock = null;
- static int toggle = -1;
- static Boolean running = false;
-
- public void run() {
- toggleLock = new Object();
- toggle = -1;
-
- Worker w1 = new Worker(0, 1);
- Worker w2 = new Worker(2, 3);
- Worker w3 = new Worker(4, 5);
- Worker w4 = new Worker(6, 7);
-
- running = true;
-
- // System.out.println("CompareAndExchange: starting workers");
-
- w1.start();
- w2.start();
- w3.start();
- w4.start();
-
- try {
- this.sleep(10000);
- } catch (InterruptedException ex) {
- // System.out.println(getName() + " interrupted.");
- }
-
- // System.out.println("MonitorTest: stopping workers");
- running = false;
-
- toggleLock = null;
- }
-
- class Worker extends Thread {
- int i1;
- int i2;
-
- Worker(int i1, int i2) {
- super("Worker(" + i1 + ", " + i2 + ")");
- this.i1 = i1;
- this.i2 = i2;
- }
-
- public void run() {
- int iterations = 0;
-
- /* Latch this because run() may set the static field to
- * null at some point.
- */
- Object toggleLock = CompareAndExchange.toggleLock;
-
- // System.out.println(getName() + " running");
- try {
- while (CompareAndExchange.running) {
- synchronized (toggleLock) {
- int test;
- int check;
-
- if (CompareAndExchange.toggle == i1) {
- this.sleep(5 + i2);
- CompareAndExchange.toggle = test = i2;
- } else {
- this.sleep(5 + i1);
- CompareAndExchange.toggle = test = i1;
- }
- if ((check = CompareAndExchange.toggle) != test) {
-// System.out.println("Worker(" + i1 + ", " +
-// i2 + ") " + "test " + test +
-// " != toggle " + check);
- throw new RuntimeException(
- "locked value changed");
- }
- }
-
- iterations++;
- }
- } catch (InterruptedException ex) {
- // System.out.println(getName() + " interrupted.");
- }
-
-// System.out.println(getName() + " done after " +
-// iterations + " iterations.");
- }
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/ParentalControlTest.java b/tests/AndroidTests/src/com/android/unit_tests/ParentalControlTest.java
deleted file mode 100644
index d4d2a82..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/ParentalControlTest.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import com.google.android.net.ParentalControl;
-import com.google.android.net.ParentalControlState;
-
-import android.os.SystemClock;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.util.Log;
-
-import junit.framework.Assert;
-
-public class ParentalControlTest extends AndroidTestCase {
-
- private boolean mOnResultCalled = false;
-
- public class Callback implements ParentalControl.Callback {
- public void onResult(ParentalControlState state) {
- synchronized (ParentalControlTest.class) {
- mOnResultCalled = true;
- ParentalControlTest.class.notifyAll();
- }
- }
- }
-
- @SmallTest
- public void testParentalControlCallback() {
- synchronized (ParentalControlTest.class) {
- ParentalControl.getParentalControlState(new Callback(), null);
- try {
- long start = SystemClock.uptimeMillis();
- ParentalControlTest.class.wait(20 * 1000);
- long end = SystemClock.uptimeMillis();
- Log.d("AndroidTests", "ParentalControlTest callback took " + (end-start) + " ms.");
- } catch (InterruptedException ex) {
- }
- }
-
- Assert.assertTrue(mOnResultCalled);
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/PerformanceTests.java b/tests/AndroidTests/src/com/android/unit_tests/PerformanceTests.java
deleted file mode 100644
index 9e54540..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/PerformanceTests.java
+++ /dev/null
@@ -1,1223 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.os.Debug;
-import junit.framework.Assert;
-import android.test.PerformanceTestBase;
-import android.test.PerformanceTestCase;
-import org.apache.harmony.dalvik.NativeTestTarget;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicInteger;
-
-public class PerformanceTests {
- public static String[] children() {
- return new String[] {
- //StringEquals2.class.getName(),
- //StringEquals10.class.getName(),
- //StringEquals20.class.getName(),
- //StringEquals200.class.getName(),
- //StringEquals200U.class.getName(),
- //StringCompareTo10.class.getName(),
- //StringCompareTo200.class.getName(),
- StringLength.class.getName(),
- StringCrawl.class.getName(),
- Ackermann.class.getName(),
- AddTest.class.getName(),
-// AddMemberVariableTest.class.getName(),
- ArrayListIterator.class.getName(),
- BoundsCheckTest.class.getName(),
-// EmptyClassBaseTest.class.getName(),
- EmptyJniStaticMethod0.class.getName(),
- EmptyJniStaticMethod6.class.getName(),
- EmptyJniStaticMethod6L.class.getName(),
- FibonacciFast.class.getName(),
- FibonacciSlow.class.getName(),
-// LoopTests.class.getName(),
-// HashMapTest.class.getName(),
-// InterfaceTests.class.getName(),
- LocalVariableAccess.class.getName(),
- MemeberVariableAccess.class.getName(),
- NestedLoop.class.getName(),
-// StringConcatenationTests.class.getName(),
-// ArrayListBase.class.getName(),
- SynchronizedGetAndSetInt.class.getName(),
-
- /* this will not work on JamVM -- lacks atomic ops */
- AtomicGetAndSetInt.class.getName(),
- };
- }
-
- public static class SizeTest {
- private int mSize;
-
- public SizeTest(int size) {
- mSize = size;
- }
-
- public int size() {
- return mSize;
- }
- }
-
- public static class LocalVariableAccess extends PerformanceTestBase {
- private static final int ITERATIONS = 100000;
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS * 20);
- return 0;
- }
-
- public void testRun() {
- boolean variable = false;
- boolean local = true;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- local = variable;
- local = variable;
- local = variable;
- local = variable;
- local = variable; // 5
- local = variable;
- local = variable;
- local = variable;
- local = variable;
- local = variable; // 10
- local = variable;
- local = variable;
- local = variable;
- local = variable;
- local = variable; // 15
- local = variable;
- local = variable;
- local = variable;
- local = variable;
- local = variable; // 20
- }
- }
- }
-
- /* This test is intentionally misspelled. Please do not rename it. Thanks! */
- public static class MemeberVariableAccess extends PerformanceTestBase {
- private static final int ITERATIONS = 100000;
-
- public volatile boolean mMember = false;
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS * 20);
- return 0;
- }
-
- public void testRun() {
- boolean local = true;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- local = mMember;
- local = mMember;
- local = mMember;
- local = mMember;
- local = mMember; // 5
- local = mMember;
- local = mMember;
- local = mMember;
- local = mMember;
- local = mMember; // 10
- local = mMember;
- local = mMember;
- local = mMember;
- local = mMember;
- local = mMember; // 15
- local = mMember;
- local = mMember;
- local = mMember;
- local = mMember;
- local = mMember; // 20
- }
- }
- }
-
- public static class ArrayListIterator extends PerformanceTestBase {
- private static final int ITERATIONS = 10000;
- private ArrayList mList;
- private String[] mKeys;
- private Iterator mIterator;
-
- public void setUp() throws Exception {
- super.setUp();
- mList = new ArrayList();
- mKeys = new String[ITERATIONS];
-
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- mKeys[i] = Integer.toString(i, 16);
- mList.add(mKeys[i]);
- }
- }
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS);
- return 0;
- }
-
- public void testRun() {
- mIterator = mList.iterator();
- while (mIterator.hasNext()) {
- mIterator.next();
- }
- }
- }
-
- public static class Ackermann extends PerformanceTestBase {
- public static final int ITERATIONS = 100;
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS);
- return 0;
- }
-
- public void testRun() {
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- ackermann(3, 13);
- }
- }
-
- private int ackermann(int m, int n) {
- if (m == 0)
- return n + 1;
- if (n == 0)
- return ackermann(m - 1, 1);
- return ackermann(m, n - 1);
- }
- }
-
- public static class FibonacciSlow extends PerformanceTestBase {
- public void setUp() throws Exception {
- super.setUp();
- Assert.assertEquals(0, fibonacci(0));
- Assert.assertEquals(1, fibonacci(1));
- Assert.assertEquals(1, fibonacci(2));
- Assert.assertEquals(2, fibonacci(3));
- Assert.assertEquals(6765, fibonacci(20));
- }
-
- public void tearDown() {
- }
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- return 0;
- }
-
- public void testRun() {
- fibonacci(20);
- }
-
- private long fibonacci(long n) {
- if (n == 0)
- return 0;
- if (n == 1)
- return 1;
- return fibonacci(n - 2) + fibonacci(n - 1);
- }
- }
-
- public static class FibonacciFast extends PerformanceTestBase {
- public void setUp() throws Exception {
- super.setUp();
- Assert.assertEquals(0, fibonacci(0));
- Assert.assertEquals(1, fibonacci(1));
- Assert.assertEquals(1, fibonacci(2));
- Assert.assertEquals(2, fibonacci(3));
- Assert.assertEquals(6765, fibonacci(20));
- }
-
- public void tearDown() {
- }
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- return 0;
- }
-
- public void testRun() {
- fibonacci(5000);
- }
-
- private long fibonacci(long n) {
- if (n == 0)
- return 0;
- if (n == 1)
- return 1;
-
- int x = 0;
- int y = 1;
- for (int i = 0; i < n - 1; i++) {
- y = y + x;
- x = y - x;
- }
-
- return y;
- }
- }
-
- public static class HashMapTest extends PerformanceTestBase {
- private static final int ITERATIONS = 10000;
- private HashMap mMap;
- private String[] mKeys;
-
- public void setUp() throws Exception {
- super.setUp();
- mMap = new HashMap();
- mKeys = new String[ITERATIONS];
-
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- mKeys[i] = Integer.toString(i, 16);
- mMap.put(mKeys[i], i);
- }
- }
-
- public void tearDown() {
- }
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS);
- return 0;
- }
-
- public void testHashMapContainsKey() {
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- mMap.containsKey(mKeys[i]);
- }
- }
-
- public void testHashMapIterator() {
- Iterator iterator;
-
- iterator = mMap.entrySet().iterator();
- while (iterator.hasNext()) {
- iterator.next();
- }
- }
-
- public void testHashMapPut() {
- HashMap map = new HashMap();
- String[] keys = mKeys;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- map.put(keys[i], i);
- }
- }
- }
-
- interface IA {
- void funcA0();
- void funcA1();
- void funcA2();
- void funcA3();
- }
- interface IAB extends IA {
- void funcAB0();
- void funcAB1();
- void funcAB2();
- void funcAB3();
- }
- interface IABC extends IAB {
- void funcABC0();
- void funcABC1();
- void funcABC2();
- void funcABC3();
- }
- interface IB {
- void funcB0();
- void funcB1();
- void funcB2();
- void funcB3();
- }
- interface IC {
- void funcC0();
- void funcC1();
- void funcC2();
- void funcC3();
- }
-
- static class Alphabet implements Cloneable, IB, IABC, IC, Runnable {
- public void funcA0() {
- }
- public void funcA1() {
- }
- public void funcA2() {
- }
- public void funcA3() {
- }
- public void funcAB0() {
- }
- public void funcAB1() {
- }
- public void funcAB2() {
- }
- public void funcAB3() {
- }
- public void funcABC0() {
- }
- public void funcABC1() {
- }
- public void funcABC2() {
- }
- public void funcABC3() {
- }
- public void funcB0() {
- }
- public void funcB1() {
- }
- public void funcB2() {
- }
- public void funcB3() {
- }
- public void funcC0() {
- }
- public void funcC1() {
- }
- public void funcC2() {
- }
- public void funcC3() {
- }
- public void run() {
- }
- };
-
- public static class InterfaceTests extends PerformanceTestBase {
- private static final int ITERATIONS = 10000;
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS * 10);
- return 0;
- }
-
- /* call method directly */
- public void testInterfaceCalls0() {
- Alphabet alpha = new Alphabet();
-
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- alpha.funcABC1();
- alpha.funcABC1();
- alpha.funcABC1();
- alpha.funcABC1();
- alpha.funcABC1();
- alpha.funcABC1();
- alpha.funcABC1();
- alpha.funcABC1();
- alpha.funcABC1();
- alpha.funcABC1();
- }
- }
-
- /* call method through interface reference */
- public void testInterfaceCalls1() {
- Alphabet alpha = new Alphabet();
- IABC iabc = alpha;
-
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- iabc.funcABC1();
- iabc.funcABC1();
- iabc.funcABC1();
- iabc.funcABC1();
- iabc.funcABC1();
- iabc.funcABC1();
- iabc.funcABC1();
- iabc.funcABC1();
- iabc.funcABC1();
- iabc.funcABC1();
- }
- }
-
- public void testInstanceOfTrivial() {
- Alphabet alpha = new Alphabet();
- IABC iabc = alpha;
- boolean val;
-
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- val = iabc instanceof Alphabet;
- val = iabc instanceof Alphabet;
- val = iabc instanceof Alphabet;
- val = iabc instanceof Alphabet;
- val = iabc instanceof Alphabet;
- val = iabc instanceof Alphabet;
- val = iabc instanceof Alphabet;
- val = iabc instanceof Alphabet;
- val = iabc instanceof Alphabet;
- val = iabc instanceof Alphabet;
- }
- }
-
- public void testInstanceOfInterface() {
- Alphabet alpha = new Alphabet();
- IABC iabc = alpha;
- boolean val;
-
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- val = iabc instanceof IA;
- val = iabc instanceof IA;
- val = iabc instanceof IA;
- val = iabc instanceof IA;
- val = iabc instanceof IA;
- val = iabc instanceof IA;
- val = iabc instanceof IA;
- val = iabc instanceof IA;
- val = iabc instanceof IA;
- val = iabc instanceof IA;
- }
- }
-
- public void testInstanceOfNot() {
- Alphabet alpha = new Alphabet();
- IABC iabc = alpha;
- boolean val;
-
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- val = iabc instanceof EmptyInterface;
- val = iabc instanceof EmptyInterface;
- val = iabc instanceof EmptyInterface;
- val = iabc instanceof EmptyInterface;
- val = iabc instanceof EmptyInterface;
- val = iabc instanceof EmptyInterface;
- val = iabc instanceof EmptyInterface;
- val = iabc instanceof EmptyInterface;
- val = iabc instanceof EmptyInterface;
- val = iabc instanceof EmptyInterface;
- }
- }
- }
-
- public static class NestedLoop extends PerformanceTestBase {
- private static final int ITERATIONS = 10;
- private static final int LOOPS = 5;
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS * LOOPS);
- return 0;
- }
-
- public void testRun() {
- int x = 0;
- for (int a = 0; a < ITERATIONS; a++) {
- for (int b = 0; b < ITERATIONS; b++) {
- for (int c = 0; c < ITERATIONS; c++) {
- for (int d = 0; d < ITERATIONS; d++) {
- for (int e = 0; e < ITERATIONS; e++) {
- x++;
- }
- }
- }
- }
- }
- }
- }
-
- public static class StringConcatenationTests extends PerformanceTestBase {
- private static final int ITERATIONS = 1000;
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS);
- return 0;
- }
-
- public void testStringConcatenation1() {
- StringBuffer buffer = new StringBuffer();
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- buffer.append("Hello World!\n");
- }
- buffer = null;
- }
-
- public void testStringConcatenation2() {
- String string = "";
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- string += "Hello World!\n";
- }
- string = null;
- }
- }
-
- public static class StringLength extends PerformanceTestBase {
- private static final int ITERATIONS = 10000;
- private static final String TEST_STRING = "This is the string we use for testing..."; // 40 chars
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS * 10);
- return 0;
- }
-
- public void testRun() {
- String testStr = TEST_STRING;
- int length;
-
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- length = testStr.length();
- length = testStr.length();
- length = testStr.length();
- length = testStr.length();
- length = testStr.length();
- length = testStr.length();
- length = testStr.length();
- length = testStr.length();
- length = testStr.length();
- length = testStr.length();
- }
- }
- }
-
- public static class EmptyJniStaticMethod0 extends PerformanceTestBase {
- private static final int ITERATIONS = 10000;
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS * 10);
- return 0;
- }
-
- public void testRun() {
- int a, b, c, d, e, f;
-
- a = b = c = d = e = f = 0;
-
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- NativeTestTarget.emptyJniStaticMethod0();
- NativeTestTarget.emptyJniStaticMethod0();
- NativeTestTarget.emptyJniStaticMethod0();
- NativeTestTarget.emptyJniStaticMethod0();
- NativeTestTarget.emptyJniStaticMethod0();
- NativeTestTarget.emptyJniStaticMethod0();
- NativeTestTarget.emptyJniStaticMethod0();
- NativeTestTarget.emptyJniStaticMethod0();
- NativeTestTarget.emptyJniStaticMethod0();
- NativeTestTarget.emptyJniStaticMethod0();
- }
- }
- }
- public static class EmptyJniStaticMethod6 extends PerformanceTestBase {
- private static final int ITERATIONS = 10000;
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS * 10);
- return 0;
- }
-
- public void testRun() {
- int a, b, c, d, e, f;
-
- a = b = c = d = e = f = 0;
-
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- NativeTestTarget.emptyJniStaticMethod6(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6(a, b, c, d, e, f);
- }
- }
- }
- public static class EmptyJniStaticMethod6L extends PerformanceTestBase {
- private static final int ITERATIONS = 10000;
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS * 10);
- return 0;
- }
-
- public void testRun() {
- String a = null;
- String[] b = null;
- int[][] c = null;
- Object d = null;
- Object[] e = null;
- Object[][][][] f = null;
-
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- NativeTestTarget.emptyJniStaticMethod6L(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6L(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6L(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6L(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6L(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6L(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6L(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6L(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6L(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6L(a, b, c, d, e, f);
- }
- }
- }
-
- public static class StringCrawl extends PerformanceTestBase {
- private static final int ITERATIONS = 10000;
- private static final String TEST_STRING = "This is the string we use for testing..."; // 40 chars
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS * TEST_STRING.length());
- return 0;
- }
-
- public void testRun() {
- String testStr = TEST_STRING;
- char ch;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- /* this is the wrong way to walk through a string */
- for (int j = 0; j < testStr.length(); j++) {
- ch = testStr.charAt(j);
- }
- }
- }
- }
-
- public static class AddTest extends PerformanceTestBase {
- private static final int ITERATIONS = 10000;
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS * 20);
- return 0;
- }
-
- public void testRun() {
- int j = 0;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- j++;
- j++;
- j++;
- j++;
- j++;
- j++;
- j++;
- j++;
- j++;
- j++;
- j++;
- j++;
- j++;
- j++;
- j++;
- j++;
- j++;
- j++;
- j++;
- j++;
- }
- }
- }
-
- public static class AddMemberVariableTest extends PerformanceTestBase {
- private static final int ITERATIONS = 10000;
- private int j;
-
- public void setUp() throws Exception {
- super.setUp();
- j = 0;
- }
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS * 10);
- return 0;
- }
-
- public void testAddMemberVariableTest() {
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- j++;
- j++;
- j++;
- j++;
- j++;
- j++;
- j++;
- j++;
- j++;
- j++;
- }
- }
-
- public void testAddMemberVariableInMethodTest() {
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- add();
- add();
- add();
- add();
- add();
- add();
- add();
- add();
- add();
- add();
- }
- }
-
- public void add() {
- j++;
- }
- }
-
- private interface EmptyInterface {
- public void emptyVirtual();
-
- }
-
- private static class EmptyClass implements EmptyInterface {
- public void emptyVirtual() {
- }
-
- public static void emptyStatic() {
- }
- }
-
- public static class EmptyClassBaseTest extends PerformanceTestBase {
- protected EmptyInterface mEmptyInterface;
- protected EmptyClass mEmptyClass;
-
- public void setUp() throws Exception {
- super.setUp();
- mEmptyClass = new EmptyClass();
- mEmptyInterface = mEmptyClass;
- }
- private static final int ITERATIONS = 10000;
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS * 10);
- return 0;
- }
-
- public void testEmptyVirtualMethod() {
- //EmptyClass emtpyClass = mEmptyClass;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- mEmptyClass.emptyVirtual();
- mEmptyClass.emptyVirtual();
- mEmptyClass.emptyVirtual();
- mEmptyClass.emptyVirtual();
- mEmptyClass.emptyVirtual();
- mEmptyClass.emptyVirtual();
- mEmptyClass.emptyVirtual();
- mEmptyClass.emptyVirtual();
- mEmptyClass.emptyVirtual();
- mEmptyClass.emptyVirtual();
- }
- }
-
- public void testEmptyVirtualMethodTestInLocal() {
- EmptyClass empty = mEmptyClass;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- empty.emptyVirtual();
- empty.emptyVirtual();
- empty.emptyVirtual();
- empty.emptyVirtual();
- empty.emptyVirtual();
- empty.emptyVirtual();
- empty.emptyVirtual();
- empty.emptyVirtual();
- empty.emptyVirtual();
- empty.emptyVirtual();
- }
- }
-
- public void testEmptyStaticMethod () {
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- EmptyClass.emptyStatic();
- EmptyClass.emptyStatic();
- EmptyClass.emptyStatic();
- EmptyClass.emptyStatic();
- EmptyClass.emptyStatic();
- EmptyClass.emptyStatic();
- EmptyClass.emptyStatic();
- EmptyClass.emptyStatic();
- EmptyClass.emptyStatic();
- EmptyClass.emptyStatic();
- }
- }
-
- public void testEmptyJniStaticMethod0() {
-
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- NativeTestTarget.emptyJniStaticMethod0();
- NativeTestTarget.emptyJniStaticMethod0();
- NativeTestTarget.emptyJniStaticMethod0();
- NativeTestTarget.emptyJniStaticMethod0();
- NativeTestTarget.emptyJniStaticMethod0();
- NativeTestTarget.emptyJniStaticMethod0();
- NativeTestTarget.emptyJniStaticMethod0();
- NativeTestTarget.emptyJniStaticMethod0();
- NativeTestTarget.emptyJniStaticMethod0();
- NativeTestTarget.emptyJniStaticMethod0();
- }
- }
-
- public void testEmptyJniStaticMethod6() {
- int a, b, c, d, e, f;
-
- a = b = c = d = e = f = 0;
-
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- NativeTestTarget.emptyJniStaticMethod6(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6(a, b, c, d, e, f);
- NativeTestTarget.emptyJniStaticMethod6(a, b, c, d, e, f);
- }
- }
-
- public void testEmptyInternalStaticMethod() {
- /*
- * The method called is a VM-internal method with no extra
- * wrapping.
- */
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- NativeTestTarget.emptyInternalStaticMethod();
- NativeTestTarget.emptyInternalStaticMethod();
- NativeTestTarget.emptyInternalStaticMethod();
- NativeTestTarget.emptyInternalStaticMethod();
- NativeTestTarget.emptyInternalStaticMethod();
- NativeTestTarget.emptyInternalStaticMethod();
- NativeTestTarget.emptyInternalStaticMethod();
- NativeTestTarget.emptyInternalStaticMethod();
- NativeTestTarget.emptyInternalStaticMethod();
- NativeTestTarget.emptyInternalStaticMethod();
- }
- }
-
- public void testEmptyInlineStaticMethod() {
- /*
- * The method called is a VM-internal method that gets
- * specially "inlined" in a bytecode transformation.
- */
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- NativeTestTarget.emptyInlineMethod();
- NativeTestTarget.emptyInlineMethod();
- NativeTestTarget.emptyInlineMethod();
- NativeTestTarget.emptyInlineMethod();
- NativeTestTarget.emptyInlineMethod();
- NativeTestTarget.emptyInlineMethod();
- NativeTestTarget.emptyInlineMethod();
- NativeTestTarget.emptyInlineMethod();
- NativeTestTarget.emptyInlineMethod();
- NativeTestTarget.emptyInlineMethod();
- }
- }
-
- public void testEmptyInterfaceMethodTest() {
- EmptyInterface emptyInterface = mEmptyInterface;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- emptyInterface.emptyVirtual();
- emptyInterface.emptyVirtual();
- emptyInterface.emptyVirtual();
- emptyInterface.emptyVirtual();
- emptyInterface.emptyVirtual();
- emptyInterface.emptyVirtual();
- emptyInterface.emptyVirtual();
- emptyInterface.emptyVirtual();
- emptyInterface.emptyVirtual();
- emptyInterface.emptyVirtual();
- }
- }
- }
-
- public static class LoopTests extends PerformanceTestBase {
- private static final int ITERATIONS = 10000;
- private SizeTest mSizeTest = new SizeTest(ITERATIONS);
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS);
- return 0;
- }
-
- public void testForLoopTest() {
- int i = 0;
- for (; i < 10000; i++) {
- }
- }
-
- public void testWhileLoopTest() {
- int i = 0;
-
- while (i < 10000) {
- i++;
- }
- }
-
- public void testForLoopSizeCalledInside() {
- for (int i = 0; i < mSizeTest.size(); i++) {
- }
- }
-
- public void testForLoopSizeCalledOutside() {
- final int size = mSizeTest.size();
- for (int i = 0; i < size; i++) {
- }
- }
- }
-
- public static class BoundsCheckTest extends PerformanceTestBase {
- private static final int ITERATIONS = 10000;
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS * 10);
- return 0;
- }
-
- public void testRun() {
- int[] data = new int[1];
-
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- data[0] = i;
- data[0] = i;
- data[0] = i;
- data[0] = i;
- data[0] = i;
- data[0] = i;
- data[0] = i;
- data[0] = i;
- data[0] = i;
- data[0] = i;
- }
- }
- }
-
- public static class ArrayListBase extends PerformanceTestBase {
- public void setUp() throws Exception {
- super.setUp();
- mList = new ArrayList();
- mList.add(0);
- mList.add(1);
- mList.add(2);
- mList.add(3);
- mList.add(4);
- mList.add(5);
- mList.add(6);
- mList.add(7);
- mList.add(8);
- mList.add(9);
- }
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(100);
- return 0;
- }
-
- ArrayList<Integer> mList;
-
- public void testForArrayList() {
- int i = 0;
- int res = 0;
- for (; i < 100; i++) {
- for (int j = 0; j < mList.size(); j++) {
- res += mList.get(j);
- }
- }
- }
-
- public void testForLocalArrayList() {
- int i = 0;
- int res = 0;
- for (; i < 100; i++) {
- final List<Integer> list = mList;
- final int N = list.size();
- for (int j = 0; j < N; j++) {
- res += list.get(j);
- }
- }
- }
-
- public void testForEachArrayList() {
- int i = 0;
- int res = 0;
- for (; i < 100; i++) {
- for (Integer v : mList) {
- res += v;
- }
- }
- }
- }
-
- public static class SynchronizedGetAndSetInt extends PerformanceTestBase {
- private static final int ITERATIONS = 100000;
-
- public int mMember = 0;
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS);
- return 0;
- }
-
- public void testRun() {
- int result = 0;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- synchronized (this) {
- result = mMember;
- mMember = i;
- }
- }
- }
- }
-
- public static class AtomicGetAndSetInt extends PerformanceTestBase {
- private static final int ITERATIONS = 100000;
-
- public AtomicInteger mMember = new AtomicInteger(0);
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS);
- return 0;
- }
-
- public void testRun() {
- int result = 0;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = mMember.getAndSet(i);
- }
- }
- }
-
- public static abstract class StringEquals extends PerformanceTestBase {
- private static final int ITERATIONS = 10000;
-
- protected String mString1, mString2;
- public void setUp() throws Exception {
- super.setUp();
- }
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS * 10);
- return 0;
- }
-
- public void testRun() {
- String string1 = mString1;
- String string2 = mString2;
-
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- string1.equals(string2);
- string1.equals(string2);
- string1.equals(string2);
- string1.equals(string2);
- string1.equals(string2);
- string1.equals(string2);
- string1.equals(string2);
- string1.equals(string2);
- string1.equals(string2);
- string1.equals(string2);
- }
- }
- }
-
- public static class StringEquals2 extends StringEquals {
- public void setUp() throws Exception {
- mString1 = "01";
- mString2 = "0x";
- }
- }
- public static class StringEquals10 extends StringEquals {
- public void setUp() throws Exception {
- mString1 = "0123456789";
- mString2 = "012345678x";
- }
- }
- public static class StringEquals20 extends StringEquals {
- public void setUp() throws Exception {
- mString1 = "01234567890123456789";
- mString2 = "0123456789012345678x";
- }
- }
-
- public static class StringEquals200 extends StringEquals {
- public void setUp() throws Exception {
- mString1 = "0123456789012345678901234567890123456789"
- + "0123456789012345678901234567890123456789"
- + "0123456789012345678901234567890123456789"
- + "0123456789012345678901234567890123456789"
- + "0123456789012345678901234567890123456789";
- mString2 = "0123456789012345678901234567890123456789"
- + "0123456789012345678901234567890123456789"
- + "0123456789012345678901234567890123456789"
- + "0123456789012345678901234567890123456789"
- + "012345678901234567890123456789012345678x";
- }
- }
- public static class StringEquals200U extends StringEquals {
- /* make one of the strings non-word aligned (bad memcmp case) */
- public void setUp() throws Exception {
- String tmpStr;
- mString1 = "0123456789012345678901234567890123456789"
- + "0123456789012345678901234567890123456789"
- + "0123456789012345678901234567890123456789"
- + "0123456789012345678901234567890123456789"
- + "0123456789012345678901234567890123456789";
- tmpStr = "z0123456789012345678901234567890123456789"
- + "0123456789012345678901234567890123456789"
- + "0123456789012345678901234567890123456789"
- + "0123456789012345678901234567890123456789"
- + "012345678901234567890123456789012345678x";
- mString2 = tmpStr.substring(1);
- }
- }
-
- public static abstract class StringCompareTo extends PerformanceTestBase {
- private static final int ITERATIONS = 10000;
-
- protected String mString1, mString2;
-
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS * 10);
- return 0;
- }
-
- public void testRun() {
- String string1 = mString1;
- String string2 = mString2;
-
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- string1.compareTo(string2);
- string1.compareTo(string2);
- string1.compareTo(string2);
- string1.compareTo(string2);
- string1.compareTo(string2);
- string1.compareTo(string2);
- string1.compareTo(string2);
- string1.compareTo(string2);
- string1.compareTo(string2);
- string1.compareTo(string2);
- }
- }
- }
- public static class StringCompareTo10 extends StringCompareTo {
- public void setUp() throws Exception {
- mString1 = "0123456789";
- mString2 = "012345678x";
- }
- }
- public static class StringCompareTo200 extends StringCompareTo {
- public void setUp() throws Exception {
- mString1 = "0123456789012345678901234567890123456789"
- + "0123456789012345678901234567890123456789"
- + "0123456789012345678901234567890123456789"
- + "0123456789012345678901234567890123456789"
- + "0123456789012345678901234567890123456789";
- mString2 = "0123456789012345678901234567890123456789"
- + "0123456789012345678901234567890123456789"
- + "0123456789012345678901234567890123456789"
- + "0123456789012345678901234567890123456789"
- + "012345678901234567890123456789012345678x";
- }
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/RegexTest.java b/tests/AndroidTests/src/com/android/unit_tests/RegexTest.java
deleted file mode 100644
index 8f55044..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/RegexTest.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.test.suitebuilder.annotation.SmallTest;
-import android.text.util.Regex;
-import junit.framework.TestCase;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class RegexTest extends TestCase {
-
- @SmallTest
- public void testTldPattern() throws Exception {
- boolean t;
-
- t = Regex.TOP_LEVEL_DOMAIN_PATTERN.matcher("com").matches();
- assertTrue("Missed valid TLD", t);
-
- t = Regex.TOP_LEVEL_DOMAIN_PATTERN.matcher("xer").matches();
- assertFalse("Matched invalid TLD!", t);
- }
-
- @SmallTest
- public void testUrlPattern() throws Exception {
- boolean t;
-
- t = Regex.WEB_URL_PATTERN.matcher("http://www.google.com").matches();
- assertTrue("Valid URL", t);
-
- t = Regex.WEB_URL_PATTERN.matcher("ftp://www.example.com").matches();
- assertFalse("Matched invalid protocol", t);
-
- t = Regex.WEB_URL_PATTERN.matcher("http://www.example.com:8080").matches();
- assertTrue("Didn't match valid URL with port", t);
-
- t = Regex.WEB_URL_PATTERN.matcher("http://www.example.com:8080/?foo=bar").matches();
- assertTrue("Didn't match valid URL with port and query args", t);
-
- t = Regex.WEB_URL_PATTERN.matcher("http://www.example.com:8080/~user/?foo=bar").matches();
- assertTrue("Didn't match valid URL with ~", t);
- }
-
- @SmallTest
- public void testIpPattern() throws Exception {
- boolean t;
-
- t = Regex.IP_ADDRESS_PATTERN.matcher("172.29.86.3").matches();
- assertTrue("Valid IP", t);
-
- t = Regex.IP_ADDRESS_PATTERN.matcher("1234.4321.9.9").matches();
- assertFalse("Invalid IP", t);
- }
-
- @SmallTest
- public void testDomainPattern() throws Exception {
- boolean t;
-
- t = Regex.DOMAIN_NAME_PATTERN.matcher("mail.example.com").matches();
- assertTrue("Valid domain", t);
-
- t = Regex.DOMAIN_NAME_PATTERN.matcher("__+&42.xer").matches();
- assertFalse("Invalid domain", t);
- }
-
- @SmallTest
- public void testPhonePattern() throws Exception {
- boolean t;
-
- t = Regex.PHONE_PATTERN.matcher("(919) 555-1212").matches();
- assertTrue("Valid phone", t);
-
- t = Regex.PHONE_PATTERN.matcher("2334 9323/54321").matches();
- assertFalse("Invalid phone", t);
-
- String[] tests = {
- "Me: 16505551212 this\n",
- "Me: 6505551212 this\n",
- "Me: 5551212 this\n",
-
- "Me: 1-650-555-1212 this\n",
- "Me: (650) 555-1212 this\n",
- "Me: +1 (650) 555-1212 this\n",
- "Me: +1-650-555-1212 this\n",
- "Me: 650-555-1212 this\n",
- "Me: 555-1212 this\n",
-
- "Me: 1.650.555.1212 this\n",
- "Me: (650) 555.1212 this\n",
- "Me: +1 (650) 555.1212 this\n",
- "Me: +1.650.555.1212 this\n",
- "Me: 650.555.1212 this\n",
- "Me: 555.1212 this\n",
-
- "Me: 1 650 555 1212 this\n",
- "Me: (650) 555 1212 this\n",
- "Me: +1 (650) 555 1212 this\n",
- "Me: +1 650 555 1212 this\n",
- "Me: 650 555 1212 this\n",
- "Me: 555 1212 this\n",
- };
-
- for (String test : tests) {
- Matcher m = Regex.PHONE_PATTERN.matcher(test);
-
- assertTrue("Valid phone " + test, m.find());
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/SMSTest.java b/tests/AndroidTests/src/com/android/unit_tests/SMSTest.java
deleted file mode 100644
index ce0b53d..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/SMSTest.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import com.android.internal.telephony.gsm.GsmAlphabet;
-import com.android.internal.telephony.gsm.SmsHeader;
-import com.android.internal.util.HexDump;
-import android.telephony.gsm.SmsMessage;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import java.util.Iterator;
-
-public class SMSTest extends AndroidTestCase {
-
- @SmallTest
- public void testOne() throws Exception {
- String pdu = "07914151551512f2040B916105551511f100006060605130308A04D4F29C0E";
-
- SmsMessage sms = SmsMessage.createFromPdu(HexDump.hexStringToByteArray(pdu));
-
- assertEquals("+14155551212", sms.getServiceCenterAddress());
- assertEquals("+16505551111", sms.getOriginatingAddress());
- assertEquals("Test", sms.getMessageBody());
- //assertTrue(sms.scTimeMillis == 1152223383000L);
-
- pdu = "07914151551512f2040B916105551511f100036060924180008A0DA"
- + "8695DAC2E8FE9296A794E07";
-
- sms = SmsMessage.createFromPdu(HexDump.hexStringToByteArray(pdu));
-
- assertEquals("+14155551212", sms.getServiceCenterAddress());
- assertEquals("+16505551111", sms.getOriginatingAddress());
- assertEquals("(Subject)Test", sms.getMessageBody());
-
- /* lines[0] = "+CMT: ,45";
- lines[1] = "07914140279510F6440A8111110301003BF56070624111958A8C0B05040B8423F"
- + "000033702010106276170706C69636174696F6E2F766E642E7761702E6D6D732D"
- + "6D65737361676500AF848D018BB4848C8298524D66616E304A6D7135514141416"
- + "57341414141546741414E4E304141414141008D908918802B3136353032343836"
- + "3137392F545950453D504C4D4E009646573A20008A808E0222C788058103093A7"
- + "F836874";
-
- sms = SMSMessage.createFromPdu(mContext, lines);
- */
-
- pdu = "07914140279510F6440A8111110301003BF56080207130138A8C0B05040B8423F"
- + "000032A02010106276170706C69636174696F6E2F766E642E7761702E6D6D732D"
- + "6D65737361676500AF848D0185B4848C8298524E453955304A6D7135514141426"
- + "66C414141414D7741414236514141414141008D908918802B3135313232393737"
- + "3638332F545950453D504C4D4E008A808E022B918805810306977F83687474703"
- + "A2F2F36";
-
- sms = SmsMessage.createFromPdu(HexDump.hexStringToByteArray(pdu));
-
- SmsHeader header = sms.getUserDataHeader();
- assertNotNull(header);
-
- Iterator<SmsHeader.Element> elements = header.getElements().iterator();
- assertNotNull(elements);
-
-
- pdu = "07914140279510F6440A8111110301003BF56080207130238A3B0B05040B8423F"
- + "000032A0202362E3130322E3137312E3135302F524E453955304A6D7135514141"
- + "42666C414141414D774141423651414141414100";
- sms = SmsMessage.createFromPdu(HexDump.hexStringToByteArray(pdu));
-
- header = sms.getUserDataHeader();
- assertNotNull(header);
-
- elements = header.getElements().iterator();
- assertNotNull(elements);
-
- /*
- * UCS-2 encoded SMS
- */
-
- pdu = "07912160130300F4040B914151245584F600087010807121352B10212200A900AE00680065006C006C006F";
-
- sms = SmsMessage.createFromPdu(HexDump.hexStringToByteArray(pdu));
- assertEquals("\u2122\u00a9\u00aehello", sms.getMessageBody());
-
- // Entire alphabet (minus the escape character)
-
- /****
- lines[0] = "+CMT: ";
- lines[1] = "0001000A8114455245680000808080604028180E888462C168381E90886442A9582E988C06C0E9783EA09068442A994EA8946AC56AB95EB0986C46ABD96EB89C6EC7EBF97EC0A070482C1A8FC8A472C96C3A9FD0A8744AAD5AAFD8AC76CBED7ABFE0B0784C2E9BCFE8B47ACD6EBBDFF0B87C4EAFDBEFF8BC7ECFEFFBFF";
- sms = SMSMessage.createFromPdu(mContext, lines);
-
- System.out.println("full alphabet message body len: "
- + sms.getMessageBody().length());
-
- System.out.println("'" + sms.getMessageBody() +"'");
-
- assertTrue(sms.getMessageBody().length() == 128);
- ****/
-
- /*
- * Multi-part text SMS with data in septets
- */
- pdu = "07916163838408F6440B816105224431F700007060217175830AA0050003"
- + "00020162B1582C168BC562B1582C168BC562B1582C168BC562B1582C"
- + "168BC562B1582C168BC562B1582C168BC562B1582C168BC562B1582C"
- + "168BC562B1582C168BC562B1582C168BC562B1582C168BC562B1582C"
- + "168BC562B1582C168BC562B1582C168BC562B1582C168BC562B1582C"
- + "168BC562B1582C168BC562B1582C168BC562B1582C168BC562";
- sms = SmsMessage.createFromPdu(HexDump.hexStringToByteArray(pdu));
- assertEquals(sms.getMessageBody(),
- "1111111111111111111111111111111111111111"
- + "1111111111111111111111111111111111111111"
- + "1111111111111111111111111111111111111111"
- + "111111111111111111111111111111111");
-
- pdu = "07916163838408F6440B816105224431F700007060217185000A23050003"
- + "00020262B1582C168BC96432994C2693C96432994C2693C96432990C";
- sms = SmsMessage.createFromPdu(HexDump.hexStringToByteArray(pdu));
- assertEquals("1111111222222222222222222222", sms.getMessageBody());
- }
-
- @SmallTest
- public void testCPHSVoiceMail() throws Exception {
- // "set MWI flag"
-
- String pdu = "07912160130310F20404D0110041006060627171118A0120";
-
- SmsMessage sms = SmsMessage.createFromPdu(HexDump.hexStringToByteArray(pdu));
-
- assertTrue(sms.isReplace());
- assertEquals("_@", sms.getOriginatingAddress());
- assertEquals(" ", sms.getMessageBody());
- assertTrue(sms.isMWISetMessage());
-
- // "clear mwi flag"
-
- pdu = "07912160130310F20404D0100041006021924193352B0120";
-
- sms = SmsMessage.createFromPdu(HexDump.hexStringToByteArray(pdu));
-
- assertTrue(sms.isMWIClearMessage());
-
- // "clear MWI flag"
-
- pdu = "07912160130310F20404D0100041006060627161058A0120";
-
- sms = SmsMessage.createFromPdu(HexDump.hexStringToByteArray(pdu));
-
-// System.out.println("originating address: "
-// + (int) (sms.getOriginatingAddress().charAt(0)) + " "
-// + (int) (sms.getOriginatingAddress().charAt(1)));
-
- assertTrue(sms.isReplace());
- assertEquals("\u0394@", sms.getOriginatingAddress());
- assertEquals(" ", sms.getMessageBody());
- assertTrue(sms.isMWIClearMessage());
- }
-
- @SmallTest
- public void testCingularVoiceMail() throws Exception {
- // "set MWI flag"
-
- String pdu = "07912180958750F84401800500C87020026195702B06040102000200";
- SmsMessage sms = SmsMessage.createFromPdu(HexDump.hexStringToByteArray(pdu));
-
- assertTrue(sms.isMWISetMessage());
- assertTrue(sms.isMwiDontStore());
-
- // "clear mwi flag"
-
- pdu = "07912180958750F84401800500C07020027160112B06040102000000";
- sms = SmsMessage.createFromPdu(HexDump.hexStringToByteArray(pdu));
-
- assertTrue(sms.isMWIClearMessage());
- assertTrue(sms.isMwiDontStore());
- }
-
-// public void testTwo() throws Exception {
-// // FIXME need an SMS-SUBMIT test
-//
-// System.out.println(
-// "SMS SUBMIT: " + SmsMessage.getSubmitPdu(null, "+14155551212", "test", false));
-// }
-
- @SmallTest
- public void testEmailGateway() throws Exception {
- // email gateway sms test
- String pdu = "07914151551512f204038105f300007011103164638a28e6f71b50c687db" +
- "7076d9357eb7412f7a794e07cdeb6275794c07bde8e5391d247e93f3";
-
- SmsMessage sms = SmsMessage.createFromPdu(HexDump.hexStringToByteArray(pdu));
-
- assertEquals("+14155551212", sms.getServiceCenterAddress());
- assertTrue(sms.isEmail());
- assertEquals("foo@example.com", sms.getEmailFrom());
- assertEquals("foo@example.com", sms.getDisplayOriginatingAddress());
- assertEquals("test subject", sms.getPseudoSubject());
- assertEquals("test body", sms.getDisplayMessageBody());
- assertEquals("test body", sms.getEmailBody());
-
- // email gateway sms test, including gsm extended character set.
- pdu = "07914151551512f204038105f400007011103105458a29e6f71b50c687db" +
- "7076d9357eb741af0d0a442fcfe9c23739bfe16d289bdee6b5f1813629";
-
- sms = SmsMessage.createFromPdu(HexDump.hexStringToByteArray(pdu));
-
- assertEquals("+14155551212", sms.getServiceCenterAddress());
- assertTrue(sms.isEmail());
- assertEquals("foo@example.com", sms.getDisplayOriginatingAddress());
- assertEquals("foo@example.com", sms.getEmailFrom());
- assertEquals("{ testBody[^~\\] }", sms.getDisplayMessageBody());
- assertEquals("{ testBody[^~\\] }", sms.getEmailBody());
- }
-
- @SmallTest
- public void testExtendedCharacterTable() throws Exception {
- String pdu = "07914151551512f2040B916105551511f100006080615131728A44D4F29C0E2" +
- "AE3E96537B94C068DD16179784C2FCB41F4B0985D06B958ADD00FB0E94536AF9749" +
- "74DA6D281BA00E95E26D509B946FC3DBF87A25D56A04";
-
- SmsMessage sms = SmsMessage.createFromPdu(HexDump.hexStringToByteArray(pdu));
-
- assertEquals("+14155551212", sms.getServiceCenterAddress());
- assertEquals("+16505551111", sms.getOriginatingAddress());
- assertEquals("Test extended character table .,-!?@~_\\/&\"';^|:()<{}>[]=%*+#", sms.getMessageBody());
- }
-
- @SmallTest
- public void testDecode() throws Exception {
- byte[] septets = new byte[(7 * 128 + 7) / 8];
-
- int bitOffset = 0;
-
- for (int i = 0; i < 128; i++) {
- int v;
- if (i == 0x1b) {
- // extended escape char
- v = 0;
- } else {
- v = i;
- }
-
- int byteOffset = bitOffset / 8;
- int shift = bitOffset % 8;
-
- septets[byteOffset] |= v << shift;
-
- if (shift > 1) {
- septets[byteOffset + 1] = (byte) (v >> (8 - shift));
- }
-
- bitOffset += 7;
- }
-
- String decoded = GsmAlphabet.gsm7BitPackedToString(septets, 0, 128);
- byte[] reEncoded = GsmAlphabet.stringToGsm7BitPacked(decoded);
-
- // reEncoded has the count septets byte at the front
- assertEquals(reEncoded.length, septets.length + 1);
-
- for (int i = 0; i < septets.length; i++) {
- assertEquals(reEncoded[i + 1], septets[i]);
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/SSLTest.java b/tests/AndroidTests/src/com/android/unit_tests/SSLTest.java
deleted file mode 100644
index 9481180..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/SSLTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.net.SSLCertificateSocketFactory;
-import android.test.suitebuilder.annotation.Suppress;
-import junit.framework.TestCase;
-
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.Socket;
-
-//This test relies on network resources.
-@Suppress
-public class SSLTest extends TestCase {
- public void testCertificate() throws Exception {
- // test www.fortify.net/sslcheck.html
- Socket ssl = SSLCertificateSocketFactory.getDefault().createSocket("www.fortify.net",443);
- assertNotNull(ssl);
-
- OutputStream out = ssl.getOutputStream();
- assertNotNull(out);
-
- InputStream in = ssl.getInputStream();
- assertNotNull(in);
-
- String get = "GET /sslcheck.html HTTP/1.1\r\nHost: 68.178.217.222\r\n\r\n";
-
- // System.out.println("going for write...");
- out.write(get.getBytes());
-
- byte[] b = new byte[1024];
- // System.out.println("going for read...");
- int ret = in.read(b);
-
- // System.out.println(new String(b));
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/SafeSaxTest.java b/tests/AndroidTests/src/com/android/unit_tests/SafeSaxTest.java
deleted file mode 100644
index d488a29..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/SafeSaxTest.java
+++ /dev/null
@@ -1,539 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.graphics.Bitmap;
-import android.sax.Element;
-import android.sax.ElementListener;
-import android.sax.EndTextElementListener;
-import android.sax.RootElement;
-import android.sax.StartElementListener;
-import android.sax.TextElementListener;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.text.format.Time;
-import android.util.Log;
-import android.util.Xml;
-import com.android.internal.util.XmlUtils;
-import org.xml.sax.Attributes;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-public class SafeSaxTest extends AndroidTestCase {
-
- private static final String TAG = SafeSaxTest.class.getName();
-
- private static final String ATOM_NAMESPACE = "http://www.w3.org/2005/Atom";
- private static final String MEDIA_NAMESPACE = "http://search.yahoo.com/mrss/";
- private static final String YOUTUBE_NAMESPACE = "http://gdata.youtube.com/schemas/2007";
- private static final String GDATA_NAMESPACE = "http://schemas.google.com/g/2005";
-
- private static class ElementCounter implements ElementListener {
- int starts = 0;
- int ends = 0;
-
- public void start(Attributes attributes) {
- starts++;
- }
-
- public void end() {
- ends++;
- }
- }
-
- private static class TextElementCounter implements TextElementListener {
- int starts = 0;
- String bodies = "";
-
- public void start(Attributes attributes) {
- starts++;
- }
-
- public void end(String body) {
- this.bodies += body;
- }
- }
-
- @SmallTest
- public void testListener() throws Exception {
- String xml = "<feed xmlns='http://www.w3.org/2005/Atom'>\n"
- + "<entry>\n"
- + "<id>a</id>\n"
- + "</entry>\n"
- + "<entry>\n"
- + "<id>b</id>\n"
- + "</entry>\n"
- + "</feed>\n";
-
- RootElement root = new RootElement(ATOM_NAMESPACE, "feed");
- Element entry = root.requireChild(ATOM_NAMESPACE, "entry");
- Element id = entry.requireChild(ATOM_NAMESPACE, "id");
-
- ElementCounter rootCounter = new ElementCounter();
- ElementCounter entryCounter = new ElementCounter();
- TextElementCounter idCounter = new TextElementCounter();
-
- root.setElementListener(rootCounter);
- entry.setElementListener(entryCounter);
- id.setTextElementListener(idCounter);
-
- Xml.parse(xml, root.getContentHandler());
-
- assertEquals(1, rootCounter.starts);
- assertEquals(1, rootCounter.ends);
- assertEquals(2, entryCounter.starts);
- assertEquals(2, entryCounter.ends);
- assertEquals(2, idCounter.starts);
- assertEquals("ab", idCounter.bodies);
- }
-
- @SmallTest
- public void testMissingRequiredChild() throws Exception {
- String xml = "<feed></feed>";
- RootElement root = new RootElement("feed");
- root.requireChild("entry");
-
- try {
- Xml.parse(xml, root.getContentHandler());
- fail("expected exception not thrown");
- } catch (SAXException e) {
- // Expected.
- }
- }
-
- @SmallTest
- public void testMixedContent() throws Exception {
- String xml = "<feed><entry></entry></feed>";
-
- RootElement root = new RootElement("feed");
- root.setEndTextElementListener(new EndTextElementListener() {
- public void end(String body) {
- }
- });
-
- try {
- Xml.parse(xml, root.getContentHandler());
- fail("expected exception not thrown");
- } catch (SAXException e) {
- // Expected.
- }
- }
-
- @LargeTest
- public void testPerformance() throws Exception {
- InputStream in = mContext.getResources().openRawResource(R.raw.youtube);
- byte[] xmlBytes;
- try {
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- byte[] buffer = new byte[1024];
- int length;
- while ((length = in.read(buffer)) != -1) {
- out.write(buffer, 0, length);
- }
- xmlBytes = out.toByteArray();
- } finally {
- in.close();
- }
-
- Log.i("***", "File size: " + (xmlBytes.length / 1024) + "k");
-
- VideoAdapter videoAdapter = new VideoAdapter();
- ContentHandler handler = newContentHandler(videoAdapter);
- for (int i = 0; i < 2; i++) {
- pureSaxTest(new ByteArrayInputStream(xmlBytes));
- saxyModelTest(new ByteArrayInputStream(xmlBytes));
- saxyModelTest(new ByteArrayInputStream(xmlBytes), handler);
- }
- }
-
- private static void pureSaxTest(InputStream inputStream) throws IOException, SAXException {
- long start = System.currentTimeMillis();
- VideoAdapter videoAdapter = new VideoAdapter();
- Xml.parse(inputStream, Xml.Encoding.UTF_8, new YouTubeContentHandler(videoAdapter));
- long elapsed = System.currentTimeMillis() - start;
- Log.i(TAG, "pure SAX: " + elapsed + "ms");
- }
-
- private static void saxyModelTest(InputStream inputStream) throws IOException, SAXException {
- long start = System.currentTimeMillis();
- VideoAdapter videoAdapter = new VideoAdapter();
- Xml.parse(inputStream, Xml.Encoding.UTF_8, newContentHandler(videoAdapter));
- long elapsed = System.currentTimeMillis() - start;
- Log.i(TAG, "Saxy Model: " + elapsed + "ms");
- }
-
- private static void saxyModelTest(InputStream inputStream, ContentHandler contentHandler)
- throws IOException, SAXException {
- long start = System.currentTimeMillis();
- Xml.parse(inputStream, Xml.Encoding.UTF_8, contentHandler);
- long elapsed = System.currentTimeMillis() - start;
- Log.i(TAG, "Saxy Model (preloaded): " + elapsed + "ms");
- }
-
- private static class VideoAdapter {
- public void addVideo(YouTubeVideo video) {
- }
- }
-
- private static ContentHandler newContentHandler(VideoAdapter videoAdapter) {
- return new HandlerFactory().newContentHandler(videoAdapter);
- }
-
- private static class HandlerFactory {
- YouTubeVideo video;
-
- public ContentHandler newContentHandler(VideoAdapter videoAdapter) {
- RootElement root = new RootElement(ATOM_NAMESPACE, "feed");
-
- final VideoListener videoListener = new VideoListener(videoAdapter);
-
- Element entry = root.getChild(ATOM_NAMESPACE, "entry");
-
- entry.setElementListener(videoListener);
-
- entry.getChild(ATOM_NAMESPACE, "id")
- .setEndTextElementListener(new EndTextElementListener() {
- public void end(String body) {
- video.videoId = body;
- }
- });
-
- entry.getChild(ATOM_NAMESPACE, "published")
- .setEndTextElementListener(new EndTextElementListener() {
- public void end(String body) {
- // TODO(tomtaylor): programmatically get the timezone
- video.dateAdded = new Time(Time.TIMEZONE_UTC);
- video.dateAdded.parse3339(body);
- }
- });
-
- Element author = entry.getChild(ATOM_NAMESPACE, "author");
- author.getChild(ATOM_NAMESPACE, "name")
- .setEndTextElementListener(new EndTextElementListener() {
- public void end(String body) {
- video.authorName = body;
- }
- });
-
- Element mediaGroup = entry.getChild(MEDIA_NAMESPACE, "group");
-
- mediaGroup.getChild(MEDIA_NAMESPACE, "thumbnail")
- .setStartElementListener(new StartElementListener() {
- public void start(Attributes attributes) {
- String url = attributes.getValue("", "url");
- if (video.thumbnailUrl == null && url.length() > 0) {
- video.thumbnailUrl = url;
- }
- }
- });
-
- mediaGroup.getChild(MEDIA_NAMESPACE, "content")
- .setStartElementListener(new StartElementListener() {
- public void start(Attributes attributes) {
- String url = attributes.getValue("", "url");
- if (url != null) {
- video.videoUrl = url;
- }
- }
- });
-
- mediaGroup.getChild(MEDIA_NAMESPACE, "player")
- .setStartElementListener(new StartElementListener() {
- public void start(Attributes attributes) {
- String url = attributes.getValue("", "url");
- if (url != null) {
- video.playbackUrl = url;
- }
- }
- });
-
- mediaGroup.getChild(MEDIA_NAMESPACE, "title")
- .setEndTextElementListener(new EndTextElementListener() {
- public void end(String body) {
- video.title = body;
- }
- });
-
- mediaGroup.getChild(MEDIA_NAMESPACE, "category")
- .setEndTextElementListener(new EndTextElementListener() {
- public void end(String body) {
- video.category = body;
- }
- });
-
- mediaGroup.getChild(MEDIA_NAMESPACE, "description")
- .setEndTextElementListener(new EndTextElementListener() {
- public void end(String body) {
- video.description = body;
- }
- });
-
- mediaGroup.getChild(MEDIA_NAMESPACE, "keywords")
- .setEndTextElementListener(new EndTextElementListener() {
- public void end(String body) {
- video.tags = body;
- }
- });
-
- mediaGroup.getChild(YOUTUBE_NAMESPACE, "duration")
- .setStartElementListener(new StartElementListener() {
- public void start(Attributes attributes) {
- String seconds = attributes.getValue("", "seconds");
- video.lengthInSeconds
- = XmlUtils.convertValueToInt(seconds, 0);
- }
- });
-
- mediaGroup.getChild(YOUTUBE_NAMESPACE, "statistics")
- .setStartElementListener(new StartElementListener() {
- public void start(Attributes attributes) {
- String viewCount = attributes.getValue("", "viewCount");
- video.viewCount
- = XmlUtils.convertValueToInt(viewCount, 0);
- }
- });
-
- entry.getChild(GDATA_NAMESPACE, "rating")
- .setStartElementListener(new StartElementListener() {
- public void start(Attributes attributes) {
- String average = attributes.getValue("", "average");
- video.rating = average == null
- ? 0.0f : Float.parseFloat(average);
- }
- });
-
- return root.getContentHandler();
- }
-
- class VideoListener implements ElementListener {
-
- final VideoAdapter videoAdapter;
-
- public VideoListener(VideoAdapter videoAdapter) {
- this.videoAdapter = videoAdapter;
- }
-
- public void start(Attributes attributes) {
- video = new YouTubeVideo();
- }
-
- public void end() {
- videoAdapter.addVideo(video);
- video = null;
- }
- }
- }
-
- private static class YouTubeContentHandler extends DefaultHandler {
-
- final VideoAdapter videoAdapter;
-
- YouTubeVideo video = null;
- StringBuilder builder = null;
-
- public YouTubeContentHandler(VideoAdapter videoAdapter) {
- this.videoAdapter = videoAdapter;
- }
-
- @Override
- public void startElement(String uri, String localName, String qName,
- Attributes attributes) throws SAXException {
- if (uri.equals(ATOM_NAMESPACE)) {
- if (localName.equals("entry")) {
- video = new YouTubeVideo();
- return;
- }
-
- if (video == null) {
- return;
- }
-
- if (!localName.equals("id")
- && !localName.equals("published")
- && !localName.equals("name")) {
- return;
- }
- this.builder = new StringBuilder();
- return;
-
- }
-
- if (video == null) {
- return;
- }
-
- if (uri.equals(MEDIA_NAMESPACE)) {
- if (localName.equals("thumbnail")) {
- String url = attributes.getValue("", "url");
- if (video.thumbnailUrl == null && url.length() > 0) {
- video.thumbnailUrl = url;
- }
- return;
- }
-
- if (localName.equals("content")) {
- String url = attributes.getValue("", "url");
- if (url != null) {
- video.videoUrl = url;
- }
- return;
- }
-
- if (localName.equals("player")) {
- String url = attributes.getValue("", "url");
- if (url != null) {
- video.playbackUrl = url;
- }
- return;
- }
-
- if (localName.equals("title")
- || localName.equals("category")
- || localName.equals("description")
- || localName.equals("keywords")) {
- this.builder = new StringBuilder();
- return;
- }
-
- return;
- }
-
- if (uri.equals(YOUTUBE_NAMESPACE)) {
- if (localName.equals("duration")) {
- video.lengthInSeconds = XmlUtils.convertValueToInt(
- attributes.getValue("", "seconds"), 0);
- return;
- }
-
- if (localName.equals("statistics")) {
- video.viewCount = XmlUtils.convertValueToInt(
- attributes.getValue("", "viewCount"), 0);
- return;
- }
-
- return;
- }
-
- if (uri.equals(GDATA_NAMESPACE)) {
- if (localName.equals("rating")) {
- String average = attributes.getValue("", "average");
- video.rating = average == null
- ? 0.0f : Float.parseFloat(average);
- }
- }
- }
-
- @Override
- public void characters(char text[], int start, int length)
- throws SAXException {
- if (builder != null) {
- builder.append(text, start, length);
- }
- }
-
- String takeText() {
- try {
- return builder.toString();
- } finally {
- builder = null;
- }
- }
-
- @Override
- public void endElement(String uri, String localName, String qName)
- throws SAXException {
- if (video == null) {
- return;
- }
-
- if (uri.equals(ATOM_NAMESPACE)) {
- if (localName.equals("published")) {
- // TODO(tomtaylor): programmatically get the timezone
- video.dateAdded = new Time(Time.TIMEZONE_UTC);
- video.dateAdded.parse3339(takeText());
- return;
- }
-
- if (localName.equals("name")) {
- video.authorName = takeText();
- return;
- }
-
- if (localName.equals("id")) {
- video.videoId = takeText();
- return;
- }
-
- if (localName.equals("entry")) {
- // Add the video!
- videoAdapter.addVideo(video);
- video = null;
- return;
- }
-
- return;
- }
-
- if (uri.equals(MEDIA_NAMESPACE)) {
- if (localName.equals("description")) {
- video.description = takeText();
- return;
- }
-
- if (localName.equals("keywords")) {
- video.tags = takeText();
- return;
- }
-
- if (localName.equals("category")) {
- video.category = takeText();
- return;
- }
-
- if (localName.equals("title")) {
- video.title = takeText();
- }
- }
- }
- }
-
- private static class YouTubeVideo {
- public String videoId; // the id used to lookup on YouTube
- public String videoUrl; // the url to play the video
- public String playbackUrl; // the url to share for users to play video
- public String thumbnailUrl; // the url of the thumbnail image
- public String title;
- public Bitmap bitmap; // cached bitmap of the thumbnail
- public int lengthInSeconds;
- public int viewCount; // number of times the video has been viewed
- public float rating; // ranges from 0.0 to 5.0
- public Boolean triedToLoadThumbnail;
- public String authorName;
- public Time dateAdded;
- public String category;
- public String tags;
- public String description;
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/SearchManagerTest.java b/tests/AndroidTests/src/com/android/unit_tests/SearchManagerTest.java
deleted file mode 100644
index 09e3b02..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/SearchManagerTest.java
+++ /dev/null
@@ -1,542 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import com.android.unit_tests.activity.LocalActivity;
-
-import android.app.Activity;
-import android.app.ISearchManager;
-import android.app.SearchManager;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.ProviderInfo;
-import android.content.pm.ResolveInfo;
-import android.content.res.Resources;
-import android.content.res.XmlResourceParser;
-import android.os.ServiceManager;
-import android.server.search.SearchableInfo;
-import android.server.search.SearchableInfo.ActionKeyInfo;
-import android.test.ActivityInstrumentationTestCase;
-import android.test.MoreAsserts;
-import android.test.mock.MockContext;
-import android.test.mock.MockPackageManager;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.util.AndroidRuntimeException;
-import android.view.KeyEvent;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * To launch this test from the command line:
- *
- * adb shell am instrument -w \
- * -e class com.android.unit_tests.SearchManagerTest \
- * com.android.unit_tests/android.test.InstrumentationTestRunner
- */
-public class SearchManagerTest extends ActivityInstrumentationTestCase<LocalActivity> {
-
- // If non-zero, enable a set of tests that start and stop the search manager.
- // This is currently disabled because it's causing an unwanted jump from the unit test
- // activity into the contacts activity. We'll put this back after we disable that jump.
- private static final int TEST_SEARCH_START = 0;
-
- /*
- * Bug list of test ideas.
- *
- * testSearchManagerInterfaceAvailable()
- * Exercise the interface obtained
- *
- * testSearchManagerAvailable()
- * Exercise the interface obtained
- *
- * testSearchManagerInvocations()
- * FIX - make it work again
- * stress test with a very long string
- *
- * SearchableInfo tests
- * Mock the context so I can provide very specific input data
- * Confirm OK with "zero" searchables
- * Confirm "good" metadata read properly
- * Confirm "bad" metadata skipped properly
- * Confirm ordering of searchables
- * Confirm "good" actionkeys
- * confirm "bad" actionkeys are rejected
- * confirm XML ordering enforced (will fail today - bug in SearchableInfo)
- * findActionKey works
- * getIcon works
- *
- * SearchManager tests
- * confirm proper identification of "default" activity based on policy, not hardcoded contacts
- *
- * SearchBar tests
- * Maybe have to do with framework / unittest runner - need instrumented activity?
- * How can we unit test the suggestions content providers?
- * Should I write unit tests for any of them?
- * Test scenarios:
- * type-BACK (cancel)
- * type-GO (send)
- * type-navigate-click (suggestion)
- * type-action
- * type-navigate-action (suggestion)
- */
-
- /**
- * Local copy of activity context
- */
- Context mContext;
-
- public SearchManagerTest() {
- super("com.android.unit_tests", LocalActivity.class);
- }
-
- /**
- * Setup any common data for the upcoming tests.
- */
- @Override
- public void setUp() throws Exception {
- super.setUp();
-
- Activity testActivity = getActivity();
- mContext = (Context)testActivity;
- }
-
- /**
- * The goal of this test is to confirm that we can obtain
- * a search manager interface.
- */
- @MediumTest
- public void testSearchManagerInterfaceAvailable() {
- ISearchManager searchManager1 = ISearchManager.Stub.asInterface(
- ServiceManager.getService(Context.SEARCH_SERVICE));
- assertNotNull(searchManager1);
- }
-
- /**
- * The goal of this test is to confirm that we can *only* obtain a search manager
- * interface from an Activity context.
- */
- @MediumTest
- public void testSearchManagerContextRestrictions() {
- SearchManager searchManager1 = (SearchManager)
- mContext.getSystemService(Context.SEARCH_SERVICE);
- assertNotNull(searchManager1);
-
- Context applicationContext = mContext.getApplicationContext();
- // this should fail, because you can't get a SearchManager from a non-Activity context
- try {
- applicationContext.getSystemService(Context.SEARCH_SERVICE);
- assertFalse("Shouldn't retrieve SearchManager from a non-Activity context", true);
- } catch (AndroidRuntimeException e) {
- // happy here - we should catch this.
- }
- }
-
- /**
- * The goal of this test is to confirm that we can obtain
- * a search manager at any time, and that for any given context,
- * it is a singleton.
- */
- @LargeTest
- public void testSearchManagerAvailable() {
- SearchManager searchManager1 = (SearchManager)
- mContext.getSystemService(Context.SEARCH_SERVICE);
- assertNotNull(searchManager1);
- SearchManager searchManager2 = (SearchManager)
- mContext.getSystemService(Context.SEARCH_SERVICE);
- assertNotNull(searchManager2);
- assertSame( searchManager1, searchManager2 );
- }
-
- /**
- * The goal of this test is to confirm that we can start and then
- * stop a simple search.
- */
-
- @MediumTest
- public void testSearchManagerInvocations() {
- SearchManager searchManager = (SearchManager)
- mContext.getSystemService(Context.SEARCH_SERVICE);
- assertNotNull(searchManager);
-
- // TODO: make a real component name, or remove this need
- final ComponentName cn = new ComponentName("", "");
-
- if (TEST_SEARCH_START != 0) {
- // These tests should simply run to completion w/o exceptions
- searchManager.startSearch(null, false, cn, null, false);
- searchManager.stopSearch();
-
- searchManager.startSearch("", false, cn, null, false);
- searchManager.stopSearch();
-
- searchManager.startSearch("test search string", false, cn, null, false);
- searchManager.stopSearch();
-
- searchManager.startSearch("test search string", true, cn, null, false);
- searchManager.stopSearch();
- }
- }
-
- /**
- * The goal of this test is to confirm proper operation of the
- * SearchableInfo helper class.
- *
- * TODO: The metadata source needs to be mocked out because adding
- * searchability metadata via this test is causing it to leak into the
- * real system. So for now I'm just going to test for existence of the
- * GoogleSearch app (which is searchable).
- */
- @LargeTest
- public void testSearchableGoogleSearch() {
- // test basic array & hashmap
- SearchableInfo.buildSearchableList(mContext);
-
- // test linkage from another activity
- // TODO inject this via mocking into the package manager.
- // TODO for now, just check for searchable GoogleSearch app (this isn't really a unit test)
- ComponentName thisActivity = new ComponentName(
- "com.android.googlesearch",
- "com.android.googlesearch.GoogleSearch");
-
- SearchableInfo si = SearchableInfo.getSearchableInfo(mContext, thisActivity);
- assertNotNull(si);
- assertTrue(si.mSearchable);
- assertEquals(thisActivity, si.mSearchActivity);
-
- Context appContext = si.getActivityContext(mContext);
- assertNotNull(appContext);
- MoreAsserts.assertNotEqual(appContext, mContext);
- assertEquals("Google Search", appContext.getString(si.getHintId()));
- assertEquals("Google", appContext.getString(si.getLabelId()));
- }
-
- /**
- * Test that non-searchable activities return no searchable info (this would typically
- * trigger the use of the default searchable e.g. contacts)
- */
- @LargeTest
- public void testNonSearchable() {
- // test basic array & hashmap
- SearchableInfo.buildSearchableList(mContext);
-
- // confirm that we return null for non-searchy activities
- ComponentName nonActivity = new ComponentName(
- "com.android.unit_tests",
- "com.android.unit_tests.NO_SEARCH_ACTIVITY");
- SearchableInfo si = SearchableInfo.getSearchableInfo(mContext, nonActivity);
- assertNull(si);
- }
-
- /**
- * This is an attempt to run the searchable info list with a mocked context. Here are some
- * things I'd like to test.
- *
- * Confirm OK with "zero" searchables
- * Confirm "good" metadata read properly
- * Confirm "bad" metadata skipped properly
- * Confirm ordering of searchables
- * Confirm "good" actionkeys
- * confirm "bad" actionkeys are rejected
- * confirm XML ordering enforced (will fail today - bug in SearchableInfo)
- * findActionKey works
- * getIcon works
-
- */
- @LargeTest
- public void testSearchableMocked() {
- MyMockPackageManager mockPM = new MyMockPackageManager(mContext.getPackageManager());
- MyMockContext mockContext = new MyMockContext(mContext, mockPM);
- ArrayList<SearchableInfo> searchables;
- int count;
-
- // build item list with real-world source data
- mockPM.setSearchablesMode(MyMockPackageManager.SEARCHABLES_PASSTHROUGH);
- SearchableInfo.buildSearchableList(mockContext);
- // tests with "real" searchables (deprecate, this should be a unit test)
- searchables = SearchableInfo.getSearchablesList();
- count = searchables.size();
- assertTrue(count >= 1); // this isn't really a unit test
- checkSearchables(searchables);
-
- // build item list with mocked search data
- // this round of tests confirms good operations with "zero" searchables found
- // This should return either a null pointer or an empty list
- mockPM.setSearchablesMode(MyMockPackageManager.SEARCHABLES_MOCK_ZERO);
- SearchableInfo.buildSearchableList(mockContext);
- searchables = SearchableInfo.getSearchablesList();
- if (searchables != null) {
- count = searchables.size();
- assertTrue(count == 0);
- }
- }
-
- /**
- * Generic health checker for an array of searchables.
- *
- * This is designed to pass for any semi-legal searchable, without knowing much about
- * the format of the underlying data. It's fairly easy for a non-compliant application
- * to provide meta-data that will pass here (e.g. a non-existent suggestions authority).
- *
- * @param searchables The list of searchables to examine.
- */
- private void checkSearchables(ArrayList<SearchableInfo> searchablesList) {
- assertNotNull(searchablesList);
- int count = searchablesList.size();
- for (int ii = 0; ii < count; ii++) {
- SearchableInfo si = searchablesList.get(ii);
- assertNotNull(si);
- assertTrue(si.mSearchable);
- assertTrue(si.getLabelId() != 0); // This must be a useable string
- assertNotEmpty(si.mSearchActivity.getClassName());
- assertNotEmpty(si.mSearchActivity.getPackageName());
- if (si.getSuggestAuthority() != null) {
- // The suggestion fields are largely optional, so we'll just confirm basic health
- assertNotEmpty(si.getSuggestAuthority());
- assertNullOrNotEmpty(si.getSuggestPath());
- assertNullOrNotEmpty(si.getSuggestSelection());
- assertNullOrNotEmpty(si.getSuggestIntentAction());
- assertNullOrNotEmpty(si.getSuggestIntentData());
- }
- /* Add a way to get the entire action key list, then explicitly test its elements */
- /* For now, test the most common action key (CALL) */
- ActionKeyInfo ai = si.findActionKey(KeyEvent.KEYCODE_CALL);
- if (ai != null) {
- assertEquals(ai.mKeyCode, KeyEvent.KEYCODE_CALL);
- // one of these three fields must be non-null & non-empty
- boolean m1 = (ai.mQueryActionMsg != null) && (ai.mQueryActionMsg.length() > 0);
- boolean m2 = (ai.mSuggestActionMsg != null) && (ai.mSuggestActionMsg.length() > 0);
- boolean m3 = (ai.mSuggestActionMsgColumn != null) &&
- (ai.mSuggestActionMsgColumn.length() > 0);
- assertTrue(m1 || m2 || m3);
- }
-
- /*
- * Find ways to test these:
- *
- * private int mSearchMode
- * private Drawable mIcon
- */
-
- /*
- * Explicitly not tested here:
- *
- * Can be null, so not much to see:
- * public String mSearchHint
- * private String mZeroQueryBanner
- *
- * To be deprecated/removed, so don't bother:
- * public boolean mFilterMode
- * public boolean mQuickStart
- * private boolean mIconResized
- * private int mIconResizeWidth
- * private int mIconResizeHeight
- *
- * All of these are "internal" working variables, not part of any contract
- * private ActivityInfo mActivityInfo
- * private Rect mTempRect
- * private String mSuggestProviderPackage
- * private String mCacheActivityContext
- */
- }
- }
-
- /**
- * Combo assert for "string not null and not empty"
- */
- private void assertNotEmpty(final String s) {
- assertNotNull(s);
- MoreAsserts.assertNotEqual(s, "");
- }
-
- /**
- * Combo assert for "string null or (not null and not empty)"
- */
- private void assertNullOrNotEmpty(final String s) {
- if (s != null) {
- MoreAsserts.assertNotEqual(s, "");
- }
- }
-
- /**
- * This is a mock for context. Used to perform a true unit test on SearchableInfo.
- *
- */
- private class MyMockContext extends MockContext {
-
- protected Context mRealContext;
- protected PackageManager mPackageManager;
-
- /**
- * Constructor.
- *
- * @param realContext Please pass in a real context for some pass-throughs to function.
- */
- MyMockContext(Context realContext, PackageManager packageManager) {
- mRealContext = realContext;
- mPackageManager = packageManager;
- }
-
- /**
- * Resources. Pass through for now.
- */
- @Override
- public Resources getResources() {
- return mRealContext.getResources();
- }
-
- /**
- * Package manager. Pass through for now.
- */
- @Override
- public PackageManager getPackageManager() {
- return mPackageManager;
- }
-
- /**
- * Package manager. Pass through for now.
- */
- @Override
- public Context createPackageContext(String packageName, int flags)
- throws PackageManager.NameNotFoundException {
- return mRealContext.createPackageContext(packageName, flags);
- }
- }
-
-/**
- * This is a mock for package manager. Used to perform a true unit test on SearchableInfo.
- *
- */
- private class MyMockPackageManager extends MockPackageManager {
-
- public final static int SEARCHABLES_PASSTHROUGH = 0;
- public final static int SEARCHABLES_MOCK_ZERO = 1;
- public final static int SEARCHABLES_MOCK_ONEGOOD = 2;
- public final static int SEARCHABLES_MOCK_ONEGOOD_ONEBAD = 3;
-
- protected PackageManager mRealPackageManager;
- protected int mSearchablesMode;
-
- public MyMockPackageManager(PackageManager realPM) {
- mRealPackageManager = realPM;
- mSearchablesMode = SEARCHABLES_PASSTHROUGH;
- }
-
- /**
- * Set the mode for various tests.
- */
- public void setSearchablesMode(int newMode) {
- switch (newMode) {
- case SEARCHABLES_PASSTHROUGH:
- case SEARCHABLES_MOCK_ZERO:
- mSearchablesMode = newMode;
- break;
-
- default:
- throw new UnsupportedOperationException();
- }
- }
-
- /**
- * Find activities that support a given intent.
- *
- * Retrieve all activities that can be performed for the given intent.
- *
- * @param intent The desired intent as per resolveActivity().
- * @param flags Additional option flags. The most important is
- * MATCH_DEFAULT_ONLY, to limit the resolution to only
- * those activities that support the CATEGORY_DEFAULT.
- *
- * @return A List<ResolveInfo> containing one entry for each matching
- * Activity. These are ordered from best to worst match -- that
- * is, the first item in the list is what is returned by
- * resolveActivity(). If there are no matching activities, an empty
- * list is returned.
- */
- @Override
- public List<ResolveInfo> queryIntentActivities(Intent intent, int flags) {
- assertNotNull(intent);
- assertEquals(intent.getAction(), Intent.ACTION_SEARCH);
- switch (mSearchablesMode) {
- case SEARCHABLES_PASSTHROUGH:
- return mRealPackageManager.queryIntentActivities(intent, flags);
- case SEARCHABLES_MOCK_ZERO:
- return null;
- default:
- throw new UnsupportedOperationException();
- }
- }
-
- /**
- * Retrieve an XML file from a package. This is a low-level API used to
- * retrieve XML meta data.
- *
- * @param packageName The name of the package that this xml is coming from.
- * Can not be null.
- * @param resid The resource identifier of the desired xml. Can not be 0.
- * @param appInfo Overall information about <var>packageName</var>. This
- * may be null, in which case the application information will be retrieved
- * for you if needed; if you already have this information around, it can
- * be much more efficient to supply it here.
- *
- * @return Returns an XmlPullParser allowing you to parse out the XML
- * data. Returns null if the xml resource could not be found for any
- * reason.
- */
- @Override
- public XmlResourceParser getXml(String packageName, int resid, ApplicationInfo appInfo) {
- assertNotNull(packageName);
- MoreAsserts.assertNotEqual(packageName, "");
- MoreAsserts.assertNotEqual(resid, 0);
- switch (mSearchablesMode) {
- case SEARCHABLES_PASSTHROUGH:
- return mRealPackageManager.getXml(packageName, resid, appInfo);
- case SEARCHABLES_MOCK_ZERO:
- default:
- throw new UnsupportedOperationException();
- }
- }
-
- /**
- * Find a single content provider by its base path name.
- *
- * @param name The name of the provider to find.
- * @param flags Additional option flags. Currently should always be 0.
- *
- * @return ContentProviderInfo Information about the provider, if found,
- * else null.
- */
- @Override
- public ProviderInfo resolveContentProvider(String name, int flags) {
- assertNotNull(name);
- MoreAsserts.assertNotEqual(name, "");
- assertEquals(flags, 0);
- switch (mSearchablesMode) {
- case SEARCHABLES_PASSTHROUGH:
- return mRealPackageManager.resolveContentProvider(name, flags);
- case SEARCHABLES_MOCK_ZERO:
- default:
- throw new UnsupportedOperationException();
- }
- }
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/SerializationTest.java b/tests/AndroidTests/src/com/android/unit_tests/SerializationTest.java
deleted file mode 100644
index 4b64144..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/SerializationTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import junit.framework.TestCase;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Tests serialization of user-level classes.
- */
-public class SerializationTest extends TestCase {
-
- static class MySerializable implements Serializable {}
-
- @SmallTest
- public void testSerialization() throws IOException, ClassNotFoundException {
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- ObjectOutputStream oout = new ObjectOutputStream(bout);
- oout.writeObject(new MySerializable());
- oout.close();
-
- ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());
- Object o = new ObjectInputStream(bin).readObject();
- assertTrue(o instanceof MySerializable);
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/SettingsProviderTest.java b/tests/AndroidTests/src/com/android/unit_tests/SettingsProviderTest.java
deleted file mode 100644
index 8b1db97..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/SettingsProviderTest.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.content.ContentResolver;
-import android.content.ContentUris;
-import android.content.ContentValues;
-import android.content.Intent;
-import android.database.Cursor;
-import android.net.Uri;
-import android.provider.Settings;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-
-/** Unit test for SettingsProvider. */
-public class SettingsProviderTest extends AndroidTestCase {
- @MediumTest
- public void testNameValueCache() {
- ContentResolver r = getContext().getContentResolver();
- Settings.Gservices.putString(r, "test_service", "Value");
- assertEquals("Value", Settings.Gservices.getString(r, "test_service"));
-
- // Make sure the value can be overwritten.
- Settings.Gservices.putString(r, "test_service", "New");
- assertEquals("New", Settings.Gservices.getString(r, "test_service"));
-
- // Also that delete works.
- assertEquals(1, r.delete(Settings.Gservices.getUriFor("test_service"), null, null));
- assertEquals(null, Settings.Gservices.getString(r, "test_service"));
-
- // Try all the same things in the System table
- Settings.System.putString(r, "test_setting", "Value");
- assertEquals("Value", Settings.System.getString(r, "test_setting"));
-
- Settings.System.putString(r, "test_setting", "New");
- assertEquals("New", Settings.System.getString(r, "test_setting"));
-
- assertEquals(1, r.delete(Settings.System.getUriFor("test_setting"), null, null));
- assertEquals(null, Settings.System.getString(r, "test_setting"));
- }
-
- @MediumTest
- public void testRowNameContentUri() {
- ContentResolver r = getContext().getContentResolver();
-
- assertEquals("content://settings/system/test_setting",
- Settings.System.getUriFor("test_setting").toString());
- assertEquals("content://settings/gservices/test_service",
- Settings.Gservices.getUriFor("test_service").toString());
-
- // These tables use the row name (not ID) as their content URI.
- Uri tables[] = { Settings.System.CONTENT_URI, Settings.Gservices.CONTENT_URI };
- for (Uri table : tables) {
- ContentValues v = new ContentValues();
- v.put(Settings.System.NAME, "test_key");
- v.put(Settings.System.VALUE, "Test");
- Uri uri = r.insert(table, v);
- assertEquals(table.toString() + "/test_key", uri.toString());
-
- // Query with a specific URI and no WHERE clause succeeds.
- Cursor c = r.query(uri, null, null, null, null);
- try {
- assertTrue(c.moveToNext());
- assertEquals("test_key", c.getString(c.getColumnIndex(Settings.System.NAME)));
- assertEquals("Test", c.getString(c.getColumnIndex(Settings.System.VALUE)));
- assertFalse(c.moveToNext());
- } finally {
- c.close();
- }
-
- // Query with a specific URI and a WHERE clause fails.
- try {
- r.query(uri, null, "1", null, null);
- fail("UnsupportedOperationException expected");
- } catch (UnsupportedOperationException e) {
- if (!e.toString().contains("WHERE clause")) throw e;
- }
-
- // Query with a tablewide URI and a WHERE clause succeeds.
- c = r.query(table, null, "name='test_key'", null, null);
- try {
- assertTrue(c.moveToNext());
- assertEquals("test_key", c.getString(c.getColumnIndex(Settings.System.NAME)));
- assertEquals("Test", c.getString(c.getColumnIndex(Settings.System.VALUE)));
- assertFalse(c.moveToNext());
- } finally {
- c.close();
- }
-
- v = new ContentValues();
- v.put(Settings.System.VALUE, "Toast");
- assertEquals(1, r.update(uri, v, null, null));
-
- c = r.query(uri, null, null, null, null);
- try {
- assertTrue(c.moveToNext());
- assertEquals("test_key", c.getString(c.getColumnIndex(Settings.System.NAME)));
- assertEquals("Toast", c.getString(c.getColumnIndex(Settings.System.VALUE)));
- assertFalse(c.moveToNext());
- } finally {
- c.close();
- }
-
- assertEquals(1, r.delete(uri, null, null));
- }
-
- assertEquals(null, Settings.System.getString(r, "test_key"));
- assertEquals(null, Settings.Gservices.getString(r, "test_key"));
- }
-
- @MediumTest
- public void testRowNumberContentUri() {
- ContentResolver r = getContext().getContentResolver();
-
- // The bookmarks table (and everything else) uses standard row number content URIs.
- Uri uri = Settings.Bookmarks.add(r, new Intent("TEST"),
- "Test Title", "Test Folder", '*', 123);
-
- assertTrue(ContentUris.parseId(uri) > 0);
-
- assertEquals("TEST", Settings.Bookmarks.getIntentForShortcut(r, '*').getAction());
-
- ContentValues v = new ContentValues();
- v.put(Settings.Bookmarks.INTENT, "#Intent;action=TOAST;end");
- assertEquals(1, r.update(uri, v, null, null));
-
- assertEquals("TOAST", Settings.Bookmarks.getIntentForShortcut(r, '*').getAction());
-
- assertEquals(1, r.delete(uri, null, null));
-
- assertEquals(null, Settings.Bookmarks.getIntentForShortcut(r, '*'));
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/SimplePullParserTest.java b/tests/AndroidTests/src/com/android/unit_tests/SimplePullParserTest.java
deleted file mode 100644
index 9758298..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/SimplePullParserTest.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import com.google.android.util.SimplePullParser;
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class SimplePullParserTest extends TestCase {
- @SmallTest
- public void testTwoLevels() throws Exception {
- String xml = ""
- + "<top a='1' b='hello'>\n"
- + " <next c='2' d='there'/>\n"
- + " <next c='3' d='bye'/>\n"
- + "</top>";
- SimplePullParser parser = new SimplePullParser(xml);
- int depth0 = parser.getDepth();
- assertEquals(0, depth0);
- assertEquals("top", parser.nextTag(depth0));
- assertEquals(1, parser.getIntAttribute(null, "a"));
- assertEquals("hello", parser.getStringAttribute(null, "b"));
-
- int depth1 = parser.getDepth();
- assertEquals(1, depth1);
- assertEquals("next", parser.nextTag(depth1));
- assertEquals(2, parser.getIntAttribute(null, "c"));
- assertEquals("there", parser.getStringAttribute(null, "d"));
- assertEquals("next", parser.nextTag(depth1));
- assertEquals(3, parser.getIntAttribute(null, "c"));
- assertEquals("bye", parser.getStringAttribute(null, "d"));
- assertNull(parser.nextTag(depth1));
-
- assertNull(parser.nextTag(depth0));
- }
-
- @SmallTest
- public void testAttributes() throws Exception {
- String xml = "<top a='1' b='hello'/>";
- SimplePullParser parser = new SimplePullParser(xml);
- int depth = parser.getDepth();
- parser.nextTag(depth);
-
- assertEquals(2, parser.numAttributes());
- assertEquals("a", parser.getAttributeName(0));
- assertEquals("b", parser.getAttributeName(1));
-
- assertEquals(1, parser.getIntAttribute(null, "a"));
- assertEquals(5, parser.getIntAttribute(null, "c", 5));
- assertEquals("hello", parser.getStringAttribute(null, "b"));
- assertEquals("not", parser.getStringAttribute(null, "d", "not"));
- }
-
- @SmallTest
- public void testRecovery() throws Exception {
- String xml = ""
- + "<top a='1' b='hello'>\n"
- + " <middle c='2' d='there'>\n"
- + " <inner/>\n"
- + " <inner2/>\n"
- + " <inner3/>\n"
- + " </middle>\n"
- + " <middle2/>\n"
- + "</top>";
- SimplePullParser parser = new SimplePullParser(xml);
- assertEquals(0, parser.getDepth());
- assertEquals("top", parser.nextTag(0));
- assertEquals(1, parser.getDepth());
- assertEquals("middle", parser.nextTag(1));
- assertEquals(2, parser.getDepth());
- assertEquals("inner", parser.nextTag(2));
- // Now skip some elements.
- assertEquals("middle2", parser.nextTag(1));
- }
-
- @SmallTest
- public void testCdata() throws Exception {
- StringBuilder cdataBuilder;
- String xml = ""
- + "<top>"
- + "<![CDATA[data0]]>"
- + "<next0/>"
- + "<![CDATA[data1]]>"
- + "<next1/>"
- + "<![CDATA[data2]]>"
- + "<next2/>"
- + "<![CDATA[data3]]>"
- + "<next3/>"
- + "<![CDATA[data4]]>"
- + "<next4/>"
- + "<![CDATA[data5]]>"
- + "</top>";
- SimplePullParser parser = new SimplePullParser(xml);
- assertEquals("top", parser.nextTag(0));
-
- // We can ignore cdata by not passing a cdata builder.
- assertEquals("next0", parser.nextTag(1));
-
- // We can get the most recent cdata by passing an empty cdata builder.
- cdataBuilder = new StringBuilder();
- assertSame(SimplePullParser.TEXT_TAG, parser.nextTagOrText(1, cdataBuilder));
- assertEquals("data1", cdataBuilder.toString());
- assertEquals("next1", parser.nextTag(1));
-
- // We can join multiple cdatas by reusing a builder.
- cdataBuilder = new StringBuilder();
- assertSame(SimplePullParser.TEXT_TAG, parser.nextTagOrText(1, cdataBuilder));
- assertEquals("next2", parser.nextTag(1));
- assertSame(SimplePullParser.TEXT_TAG, parser.nextTagOrText(1, cdataBuilder));
- assertEquals("data2data3", cdataBuilder.toString());
- assertEquals("next3", parser.nextTag(1));
-
- // We can read all of the remaining cdata while ignoring any elements.
- cdataBuilder = new StringBuilder();
- parser.readRemainingText(1, cdataBuilder);
- assertEquals("data4data5", cdataBuilder.toString());
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/SmsProviderTest.java b/tests/AndroidTests/src/com/android/unit_tests/SmsProviderTest.java
deleted file mode 100644
index 0e2f0c5..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/SmsProviderTest.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.content.ContentResolver;
-import android.content.ContentValues;
-import android.database.Cursor;
-import android.net.Uri;
-import android.provider.Telephony.Sms;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-
-import java.util.GregorianCalendar;
-
-public class SmsProviderTest extends AndroidTestCase {
-
- @LargeTest
- public void testProvider() throws Exception {
- // This test does the following
- // 1. Insert 10 messages from the same number at different times.
- //
- // . Delete the messages and make sure that they were deleted.
-
- long now = System.currentTimeMillis();
-
- Uri[] urls = new Uri[10];
- String[] dates = new String[]{
- Long.toString(new GregorianCalendar(1970, 1, 1, 0, 0, 0).getTimeInMillis()),
- Long.toString(new GregorianCalendar(1971, 2, 13, 16, 35, 3).getTimeInMillis()),
- Long.toString(new GregorianCalendar(1978, 10, 22, 0, 1, 0).getTimeInMillis()),
- Long.toString(new GregorianCalendar(1980, 1, 11, 10, 22, 30).getTimeInMillis()),
- Long.toString(now - (5 * 24 * 60 * 60 * 1000)),
- Long.toString(now - (2 * 24 * 60 * 60 * 1000)),
- Long.toString(now - (5 * 60 * 60 * 1000)),
- Long.toString(now - (30 * 60 * 1000)),
- Long.toString(now - (5 * 60 * 1000)),
- Long.toString(now)
- };
-
- ContentValues map = new ContentValues();
- map.put("address", "+15045551337");
- map.put("read", 0);
-
- ContentResolver contentResolver = mContext.getContentResolver();
-
- for (int i = 0; i < urls.length; i++) {
- map.put("body", "Test " + i + " !");
- map.put("date", dates[i]);
- urls[i] = contentResolver.insert(Sms.Inbox.CONTENT_URI, map);
- assertNotNull(urls[i]);
- }
-
- Cursor c = contentResolver.query(Sms.Inbox.CONTENT_URI, null, null, null, "date");
-
- //DatabaseUtils.dumpCursor(c);
-
- for (Uri url : urls) {
- int count = contentResolver.delete(url, null, null);
- assertEquals(1, count);
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/SpannedTest.java b/tests/AndroidTests/src/com/android/unit_tests/SpannedTest.java
deleted file mode 100644
index 9e3f483..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/SpannedTest.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.graphics.Typeface;
-import android.os.Parcel;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.text.*;
-import android.text.style.*;
-import android.util.Log;
-
-import junit.framework.TestCase;
-
-/**
- * SpannedTest tests some features of Spanned
- */
-public class SpannedTest extends TestCase {
- private int mExpect;
-
- @SmallTest
- public void testSpannableString() throws Exception {
- checkPriority(new SpannableString("the quick brown fox"));
- }
-
- @SmallTest
- public void testSpannableStringBuilder() throws Exception {
- checkPriority2(new SpannableStringBuilder("the quick brown fox"));
- }
-
- @SmallTest
- public void testAppend() throws Exception {
- Object o = new Object();
- SpannableString ss = new SpannableString("Test");
- ss.setSpan(o, 0, ss.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
-
- SpannableStringBuilder ssb = new SpannableStringBuilder();
- ssb.append(ss);
- assertEquals(0, ssb.getSpanStart(o));
- assertEquals(4, ssb.getSpanEnd(o));
- assertEquals(1, ssb.getSpans(0, 4, Object.class).length);
-
- ssb.insert(0, ss);
- assertEquals(4, ssb.getSpanStart(o));
- assertEquals(8, ssb.getSpanEnd(o));
- assertEquals(0, ssb.getSpans(0, 4, Object.class).length);
- assertEquals(1, ssb.getSpans(4, 8, Object.class).length);
- }
-
- @SmallTest
- public void testWrapParcel() {
- SpannableString s = new SpannableString("Hello there world");
- CharacterStyle mark = new StyleSpan(Typeface.BOLD);
- s.setSpan(mark, 1, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- s.setSpan(CharacterStyle.wrap(mark), 3, 7,
- Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- s.setSpan(new TextAppearanceSpan("mono", 0, -1, null, null), 7, 8,
- Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- s.setSpan(CharacterStyle.wrap(new TypefaceSpan("mono")), 8, 9,
- Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
-
- Parcel p = Parcel.obtain();
- TextUtils.writeToParcel(s, p, 0);
- p.setDataPosition(0);
-
- Spanned s2 = (Spanned) TextUtils.CHAR_SEQUENCE_CREATOR.
- createFromParcel(p);
- StyleSpan[] style;
-
- style = s2.getSpans(1, 2, StyleSpan.class);
- assertEquals(1, style.length);
- assertEquals(1, s2.getSpanStart(style[0]));
- assertEquals(2, s2.getSpanEnd(style[0]));
-
- style = s2.getSpans(3, 7, StyleSpan.class);
- assertEquals(1, style.length);
- assertEquals(3, s2.getSpanStart(style[0]));
- assertEquals(7, s2.getSpanEnd(style[0]));
-
- TextAppearanceSpan[] appearance = s2.getSpans(7, 8,
- TextAppearanceSpan.class);
- assertEquals(1, appearance.length);
- assertEquals(7, s2.getSpanStart(appearance[0]));
- assertEquals(8, s2.getSpanEnd(appearance[0]));
-
- TypefaceSpan[] tf = s2.getSpans(8, 9, TypefaceSpan.class);
- assertEquals(1, tf.length);
- assertEquals(8, s2.getSpanStart(tf[0]));
- assertEquals(9, s2.getSpanEnd(tf[0]));
- }
-
- private void checkPriority(Spannable s) {
- s.setSpan(new Object(), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE |
- (5 << Spannable.SPAN_PRIORITY_SHIFT));
- s.setSpan(new Object(), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE |
- (10 << Spannable.SPAN_PRIORITY_SHIFT));
- s.setSpan(new Object(), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE |
- (0 << Spannable.SPAN_PRIORITY_SHIFT));
- s.setSpan(new Object(), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE |
- (15 << Spannable.SPAN_PRIORITY_SHIFT));
- s.setSpan(new Object(), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE |
- (3 << Spannable.SPAN_PRIORITY_SHIFT));
- s.setSpan(new Object(), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE |
- (6 << Spannable.SPAN_PRIORITY_SHIFT));
- s.setSpan(new Object(), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE |
- (0 << Spannable.SPAN_PRIORITY_SHIFT));
-
- Object[] spans = s.getSpans(0, s.length(), Object.class);
-
- for (int i = 0; i < spans.length - 1; i++) {
- assertEquals((s.getSpanFlags(spans[i]) & Spanned.SPAN_PRIORITY) >=
- (s.getSpanFlags(spans[i + 1]) & Spanned.SPAN_PRIORITY),
- true);
- }
-
- mExpect = 0;
-
- s.setSpan(new Watcher(2), 0, s.length(),
- Spannable.SPAN_INCLUSIVE_INCLUSIVE |
- (2 << Spannable.SPAN_PRIORITY_SHIFT));
- s.setSpan(new Watcher(4), 0, s.length(),
- Spannable.SPAN_INCLUSIVE_INCLUSIVE |
- (4 << Spannable.SPAN_PRIORITY_SHIFT));
- s.setSpan(new Watcher(1), 0, s.length(),
- Spannable.SPAN_INCLUSIVE_INCLUSIVE |
- (1 << Spannable.SPAN_PRIORITY_SHIFT));
- s.setSpan(new Watcher(3), 0, s.length(),
- Spannable.SPAN_INCLUSIVE_INCLUSIVE |
- (3 << Spannable.SPAN_PRIORITY_SHIFT));
-
- mExpect = 4;
- s.setSpan(new Object(), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- assertEquals(mExpect, 0);
- }
-
- private void checkPriority2(SpannableStringBuilder ssb) {
- checkPriority(ssb);
-
- mExpect = 4;
- ssb.insert(3, "something");
- assertEquals(mExpect, 0);
- }
-
- private class Watcher implements SpanWatcher, TextWatcher {
- private int mSequence;
-
- public Watcher(int sequence) {
- mSequence = sequence;
- }
-
- public void onSpanChanged(Spannable b, Object o, int s, int e,
- int st, int en) { }
- public void onSpanRemoved(Spannable b, Object o, int s, int e) { }
-
- public void onSpanAdded(Spannable b, Object o, int s, int e) {
- if (mExpect != 0) {
- assertEquals(mSequence, mExpect);
- mExpect = mSequence - 1;
- }
- }
-
- public void beforeTextChanged(CharSequence s, int start, int count,
- int after) { }
- public void onTextChanged(CharSequence s, int start, int before,
- int count) {
- if (mExpect != 0) {
- assertEquals(mSequence, mExpect);
- mExpect = mSequence - 1;
- }
- }
-
- public void afterTextChanged(Editable s) { }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/StringTest.java b/tests/AndroidTests/src/com/android/unit_tests/StringTest.java
deleted file mode 100644
index dc40a0a..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/StringTest.java
+++ /dev/null
@@ -1,951 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import java.util.Locale;
-
-import android.test.PerformanceTestBase;
-import android.test.PerformanceTestCase;
-
-public class StringTest extends PerformanceTestBase {
- public static final int ITERATIONS = 1000;
- public static final String STATIC_STRING_01 = "Hello Android";
- public static final String STATIC_STRING_02 =
- "Remember, today is the tomorrow you worried about yesterday";
- public static final char[] STATIC_CHAR_ARRAY =
- {'N', 'A', 'N', 'D', 'R', 'O', 'I', 'D'};
- public static StringBuffer STATIC_SBUF = new StringBuffer(STATIC_STRING_02);
-
- @Override
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS);
- return 0;
- }
-
- /** Create an empty String object* */
-
- public void testStringCreate() {
- String rString;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- rString = new String();
- rString = new String();
- rString = new String();
- rString = new String();
- rString = new String();
- rString = new String();
- rString = new String();
- rString = new String();
- rString = new String();
- rString = new String();
- }
- }
-
- /** Create an initialised String object* */
-
- public void testStringCreate1() {
- String rString, str = STATIC_STRING_01;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- rString = new String(str);
- rString = new String(str);
- rString = new String(str);
- rString = new String(str);
- rString = new String(str);
- rString = new String(str);
- rString = new String(str);
- rString = new String(str);
- rString = new String(str);
- rString = new String(str); // 10
- }
- }
-
- /** equals() with for loop* */
- public void testStringEquals() {
- String mString = new String(STATIC_STRING_01);
- String str = STATIC_STRING_01;
- boolean result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = mString.equals(str);
- result = mString.equals(str);
- result = mString.equals(str);
- result = mString.equals(str);
- result = mString.equals(str);
- result = mString.equals(str);
- result = mString.equals(str);
- result = mString.equals(str);
- result = mString.equals(str);
- result = mString.equals(str);
- }
- }
-
- /**
- * ContentEquals- Comparing the content of a String with that of a String
- * Buffer*
- */
-
- public void testStringContentEquals() {
- StringBuffer sBuf = new StringBuffer(STATIC_STRING_01);
- String str = STATIC_STRING_01;
- boolean result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = str.contentEquals(sBuf);
- result = str.contentEquals(sBuf);
- result = str.contentEquals(sBuf);
- result = str.contentEquals(sBuf);
- result = str.contentEquals(sBuf);
- result = str.contentEquals(sBuf);
- result = str.contentEquals(sBuf);
- result = str.contentEquals(sBuf);
- result = str.contentEquals(sBuf);
- result = str.contentEquals(sBuf);
- }
- }
-
- /** Compare string objects lexicographically using compareTo() with for loop* */
-
- public void testStringCompareTo() {
- String str1 = new String(STATIC_STRING_01);
- String str2 = STATIC_STRING_01;
- int result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = str1.compareTo(str2);
- result = str1.compareTo(str2);
- result = str1.compareTo(str2);
- result = str1.compareTo(str2);
- result = str1.compareTo(str2);
- result = str1.compareTo(str2);
- result = str1.compareTo(str2);
- result = str1.compareTo(str2);
- result = str1.compareTo(str2);
- result = str1.compareTo(str2);
- }
-
- }
-
- /** Compare string objects using compareToIgnorecase() with for loop* */
-
- public void testStringCompareToIgnoreCase() {
- String mString = new String(STATIC_STRING_01);
- String str2 = STATIC_STRING_01;
- int result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = mString.compareToIgnoreCase(str2);
- result = mString.compareToIgnoreCase(str2);
- result = mString.compareToIgnoreCase(str2);
- result = mString.compareToIgnoreCase(str2);
- result = mString.compareToIgnoreCase(str2);
- result = mString.compareToIgnoreCase(str2);
- result = mString.compareToIgnoreCase(str2);
- result = mString.compareToIgnoreCase(str2);
- result = mString.compareToIgnoreCase(str2);
- result = mString.compareToIgnoreCase(str2);
- }
- }
-
- /** startsWith * */
-
- public void testStringstartsWith() {
- boolean result;
- String str1 = STATIC_STRING_02, str2 = "Rem";
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = str1.startsWith(str2);
- result = str1.startsWith(str2);
- result = str1.startsWith(str2);
- result = str1.startsWith(str2);
- result = str1.startsWith(str2);
- result = str1.startsWith(str2);
- result = str1.startsWith(str2);
- result = str1.startsWith(str2);
- result = str1.startsWith(str2);
- result = str1.startsWith(str2);
- }
- }
-
- /** startsWith(String seq, int begin) * */
-
- public void testStringstartsWith1() {
- String str1 = STATIC_STRING_02, str2 = "tom";
- int pos = 10;
- boolean result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = str1.startsWith(str2, pos);
- result = str1.startsWith(str2, pos);
- result = str1.startsWith(str2, pos);
- result = str1.startsWith(str2, pos);
- result = str1.startsWith(str2, pos);
- result = str1.startsWith(str2, pos);
- result = str1.startsWith(str2, pos);
- result = str1.startsWith(str2, pos);
- result = str1.startsWith(str2, pos);
- result = str1.startsWith(str2, pos);
- }
- }
-
- /** endsWith * */
-
- public void testStringendsWith() {
- String str = STATIC_STRING_02, str1 = "day";
- boolean result;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = str.endsWith(str1);
- result = str.endsWith(str1);
- result = str.endsWith(str1);
- result = str.endsWith(str1);
- result = str.endsWith(str1);
- result = str.endsWith(str1);
- result = str.endsWith(str1);
- result = str.endsWith(str1);
- result = str.endsWith(str1);
- result = str.endsWith(str1);
- }
- }
-
- /**
- * indexOf to determine whether a string contains a substring
- */
- public void testStringindexOf() {
- boolean result;
- String str = STATIC_STRING_02, str1 = "tomo";
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = str.indexOf(str1) > 0;
- result = str.indexOf(str1) > 0;
- result = str.indexOf(str1) > 0;
- result = str.indexOf(str1) > 0;
- result = str.indexOf(str1) > 0;
- result = str.indexOf(str1) > 0;
- result = str.indexOf(str1) > 0;
- result = str.indexOf(str1) > 0;
- result = str.indexOf(str1) > 0;
- result = str.indexOf(str1) > 0;
- }
- }
-
- /** indexOf()* */
-
- public void testStringindexOf1() {
- int index;
- String str = STATIC_STRING_02;
- char c = 't';
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- index = str.indexOf(c);
- index = str.indexOf(c);
- index = str.indexOf(c);
- index = str.indexOf(c);
- index = str.indexOf(c);
- index = str.indexOf(c);
- index = str.indexOf(c);
- index = str.indexOf(c);
- index = str.indexOf(c);
- index = str.indexOf(c);
- }
-
- }
-
- /** indexOf(char c, int start)* */
- public void testStringindexOf2() {
- int index, pos = 12;
- String str = STATIC_STRING_02, str1 = "tom";
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- index = str.indexOf(str1, pos);
- index = str.indexOf(str1, pos);
- index = str.indexOf(str1, pos);
- index = str.indexOf(str1, pos);
- index = str.indexOf(str1, pos);
- index = str.indexOf(str1, pos);
- index = str.indexOf(str1, pos);
- index = str.indexOf(str1, pos);
- index = str.indexOf(str1, pos);
- index = str.indexOf(str1, pos);
- }
- }
-
- /** lastIndexOf()* */
-
- public void testStringlastIndexOf() {
- int index;
- char c = 't';
- String str = STATIC_STRING_02;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- index = str.lastIndexOf(c);
- index = str.lastIndexOf(c);
- index = str.lastIndexOf(c);
- index = str.lastIndexOf(c);
- index = str.lastIndexOf(c);
- index = str.lastIndexOf(c);
- index = str.lastIndexOf(c);
- index = str.lastIndexOf(c);
- index = str.lastIndexOf(c);
- index = str.lastIndexOf(c);
- }
- }
-
- /** lastIndexOf()* */
-
- public void testStringlastIndexOf1() {
- int index, pos = 36;
- String str = STATIC_STRING_02, str1 = "tom";
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- index = str.lastIndexOf(str1, pos);
- index = str.lastIndexOf(str1, pos);
- index = str.lastIndexOf(str1, pos);
- index = str.lastIndexOf(str1, pos);
- index = str.lastIndexOf(str1, pos);
- index = str.lastIndexOf(str1, pos);
- index = str.lastIndexOf(str1, pos);
- index = str.lastIndexOf(str1, pos);
- index = str.lastIndexOf(str1, pos);
- index = str.lastIndexOf(str1, pos);
- }
- }
-
- /**
- * contains() to determine whether a string contains a substring
- */
-
- public void testStringcontains() {
- boolean result;
- String str = STATIC_STRING_02, str1 = "tomo";
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- result = str.contains(str1);
- result = str.contains(str1);
- result = str.contains(str1);
- result = str.contains(str1);
- result = str.contains(str1);
- result = str.contains(str1);
- result = str.contains(str1);
- result = str.contains(str1);
- result = str.contains(str1);
- result = str.contains(str1);
- }
- }
-
- /** substring(int start) */
-
- public void testStringsubstring() {
- String rString;
- String str = STATIC_STRING_02;
- int index = 10;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- rString = str.substring(index);
- rString = str.substring(index);
- rString = str.substring(index);
- rString = str.substring(index);
- rString = str.substring(index);
- rString = str.substring(index);
- rString = str.substring(index);
- rString = str.substring(index);
- rString = str.substring(index);
- rString = str.substring(index);
- }
- }
-
- /** substring(int start, int end) in a for loop* */
-
- public void testStringsubstring1() {
- String rString;
- String str = STATIC_STRING_02;
- int start = 10, end = 48;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- rString = str.substring(start, end);
- rString = str.substring(start, end);
- rString = str.substring(start, end);
- rString = str.substring(start, end);
- rString = str.substring(start, end);
- rString = str.substring(start, end);
- rString = str.substring(start, end);
- rString = str.substring(start, end);
- rString = str.substring(start, end);
- rString = str.substring(start, end);
- }
- }
-
- /**
- * valueOf(char[] cArray) String representation of a character array
- */
- public void testStringvalueOf() {
- String rString;
- char[] cArray = STATIC_CHAR_ARRAY;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- rString = String.valueOf(cArray);
- rString = String.valueOf(cArray);
- rString = String.valueOf(cArray);
- rString = String.valueOf(cArray);
- rString = String.valueOf(cArray);
- rString = String.valueOf(cArray);
- rString = String.valueOf(cArray);
- rString = String.valueOf(cArray);
- rString = String.valueOf(cArray);
- rString = String.valueOf(cArray);
- }
- }
-
- /** valueOf(char[] cArray, int offset, int count)* */
-
- public void testStringvalueOf1() {
- String rString;
- char[] cArray = STATIC_CHAR_ARRAY;
- int start = 1, end = 7;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- rString = String.valueOf(cArray, start, end);
- rString = String.valueOf(cArray, start, end);
- rString = String.valueOf(cArray, start, end);
- rString = String.valueOf(cArray, start, end);
- rString = String.valueOf(cArray, start, end);
- rString = String.valueOf(cArray, start, end);
- rString = String.valueOf(cArray, start, end);
- rString = String.valueOf(cArray, start, end);
- rString = String.valueOf(cArray, start, end);
- rString = String.valueOf(cArray, start, end);
- }
- }
-
- /** Convert a string to a char Array* */
-
- public void testStringtoCharArray() {
- char[] cArray;
- String str = STATIC_STRING_02;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- cArray = str.toCharArray();
- cArray = str.toCharArray();
- cArray = str.toCharArray();
- cArray = str.toCharArray();
- cArray = str.toCharArray();
- cArray = str.toCharArray();
- cArray = str.toCharArray();
- cArray = str.toCharArray();
- cArray = str.toCharArray();
- cArray = str.toCharArray();
- }
- }
-
- /** length()* */
-
- public void testStringlength() {
- int len;
- String str = STATIC_STRING_02;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- len = str.length();
- len = str.length();
- len = str.length();
- len = str.length();
- len = str.length();
- len = str.length();
- len = str.length();
- len = str.length();
- len = str.length();
- len = str.length();
- }
- }
-
- /** hashcode()* */
-
- public void testStringhashCode() {
- int index;
- String str = STATIC_STRING_02;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- index = str.hashCode();
- index = str.hashCode();
- index = str.hashCode();
- index = str.hashCode();
- index = str.hashCode();
- index = str.hashCode();
- index = str.hashCode();
- index = str.hashCode();
- index = str.hashCode();
- index = str.hashCode();
- }
- }
-
- /** replace()* */
-
- public void testStringreplace() {
- String rString;
- String str = STATIC_STRING_02;
- char c1 = ' ', c2 = ' ';
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- rString = str.replace(c1, c2);
- rString = str.replace(c1, c2);
- rString = str.replace(c1, c2);
- rString = str.replace(c1, c2);
- rString = str.replace(c1, c2);
- rString = str.replace(c1, c2);
- rString = str.replace(c1, c2);
- rString = str.replace(c1, c2);
- rString = str.replace(c1, c2);
- rString = str.replace(c1, c2);
- }
- }
-
- public void testStringreplaceAll() {
- String rString;
- String str = STATIC_STRING_02, str1 = " ", str2 = "/";
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- rString = str.replaceAll(str1, str2);
- rString = str.replaceAll(str1, str2);
- rString = str.replaceAll(str1, str2);
- rString = str.replaceAll(str1, str2);
- rString = str.replaceAll(str1, str2);
- rString = str.replaceAll(str1, str2);
- rString = str.replaceAll(str1, str2);
- rString = str.replaceAll(str1, str2);
- rString = str.replaceAll(str1, str2);
- rString = str.replaceAll(str1, str2);
- }
- }
-
- /** Convert a StringBuffer to a String* */
-
- public void testStringtoString() {
- StringBuffer sBuf = new StringBuffer(STATIC_STRING_02);
-
- String rString;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- rString = sBuf.toString();
- rString = sBuf.toString();
- rString = sBuf.toString();
- rString = sBuf.toString();
- rString = sBuf.toString();
- rString = sBuf.toString();
- rString = sBuf.toString();
- rString = sBuf.toString();
- rString = sBuf.toString();
- rString = sBuf.toString();
- }
- }
-
- /** Split a string into an array of strings* */
-
- public void testStringsplit() {
- String[] strings;
- String str1 = STATIC_STRING_02, str = " ";
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- strings = str1.split(str);
- strings = str1.split(str);
- strings = str1.split(str);
- strings = str1.split(str);
- strings = str1.split(str);
- strings = str1.split(str);
- strings = str1.split(str);
- strings = str1.split(str);
- strings = str1.split(str);
- strings = str1.split(str);
-
- }
- }
-
- /** Split a string into an array of strings* */
-
- public void testStringsplit1() {
- String str = STATIC_STRING_02, str1 = " ";
- String[] strings;
- int pos = 8;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- strings = str.split(str1, pos);
- strings = str.split(str1, pos);
- strings = str.split(str1, pos);
- strings = str.split(str1, pos);
- strings = str.split(str1, pos);
- strings = str.split(str1, pos);
- strings = str.split(str1, pos);
- strings = str.split(str1, pos);
- strings = str.split(str1, pos);
- strings = str.split(str1, pos);
- }
- }
-
- public void testStringgetBytes() {
- byte[] bytes;
- String str = STATIC_STRING_02;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- bytes = str.getBytes();
- bytes = str.getBytes();
- bytes = str.getBytes();
- bytes = str.getBytes();
- bytes = str.getBytes();
- bytes = str.getBytes();
- bytes = str.getBytes();
- bytes = str.getBytes();
- bytes = str.getBytes();
- bytes = str.getBytes();
- }
- }
-
- /** copyValueOf(char[] data) * */
-
- public void testStringcopyValueOf() {
- String rString;
- char[] cArray = STATIC_CHAR_ARRAY;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- rString = String.copyValueOf(cArray);
- rString = String.copyValueOf(cArray);
- rString = String.copyValueOf(cArray);
- rString = String.copyValueOf(cArray);
- rString = String.copyValueOf(cArray);
- rString = String.copyValueOf(cArray);
- rString = String.copyValueOf(cArray);
- rString = String.copyValueOf(cArray);
- rString = String.copyValueOf(cArray);
- rString = String.copyValueOf(cArray);
- }
- }
-
- /** copyValueOf(char[] data, int index, int count)* */
-
- public void testStringcopyValueOf1() {
- String rString;
- int start = 1, end = 7;
- char[] cArray = STATIC_CHAR_ARRAY;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- rString = String.copyValueOf(cArray, start, end);
- rString = String.copyValueOf(cArray, start, end);
- rString = String.copyValueOf(cArray, start, end);
- rString = String.copyValueOf(cArray, start, end);
- rString = String.copyValueOf(cArray, start, end);
- rString = String.copyValueOf(cArray, start, end);
- rString = String.copyValueOf(cArray, start, end);
- rString = String.copyValueOf(cArray, start, end);
- rString = String.copyValueOf(cArray, start, end);
- rString = String.copyValueOf(cArray, start, end);
- }
- }
-
- /** trim()* */
-
- public void testStringtrim() {
- String mString =
- new String(
- " HELLO ANDROID ");
- String rString;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- rString = mString.trim();
- rString = mString.trim();
- rString = mString.trim();
- rString = mString.trim();
- rString = mString.trim();
- rString = mString.trim();
- rString = mString.trim();
- rString = mString.trim();
- rString = mString.trim();
- rString = mString.trim();
- }
- }
-
- /** getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)* */
-
- public void testStringgetChars() {
- char[] cArray = STATIC_CHAR_ARRAY;
- String str = STATIC_STRING_01;
- int value1 = 7, value2 = 12, value3 = 1;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- str.getChars(value1, value2, cArray, value3);
- str.getChars(value1, value2, cArray, value3);
- str.getChars(value1, value2, cArray, value3);
- str.getChars(value1, value2, cArray, value3);
- str.getChars(value1, value2, cArray, value3);
- str.getChars(value1, value2, cArray, value3);
- str.getChars(value1, value2, cArray, value3);
- str.getChars(value1, value2, cArray, value3);
- str.getChars(value1, value2, cArray, value3);
- str.getChars(value1, value2, cArray, value3);
- }
- }
-
- /** toUpperCase()* */
-
- public void testStringtoUpperCase() {
- String rString, str = STATIC_STRING_02;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- rString = str.toUpperCase();
- rString = str.toUpperCase();
- rString = str.toUpperCase();
- rString = str.toUpperCase();
- rString = str.toUpperCase();
- rString = str.toUpperCase();
- rString = str.toUpperCase();
- rString = str.toUpperCase();
- rString = str.toUpperCase();
- rString = str.toUpperCase();
- }
- }
-
- /** toUpperCase() with locale* */
-
- public void testStringtoUpperCase1() {
- Locale locale = new Locale("tr");
- String str = STATIC_STRING_02;
- String rString;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- rString = str.toUpperCase(locale);
- rString = str.toUpperCase(locale);
- rString = str.toUpperCase(locale);
- rString = str.toUpperCase(locale);
- rString = str.toUpperCase(locale);
- rString = str.toUpperCase(locale);
- rString = str.toUpperCase(locale);
- rString = str.toUpperCase(locale);
- rString = str.toUpperCase(locale);
- rString = str.toUpperCase(locale);
- }
- }
-
- /** toLowerCase* */
-
- public void StringtoLowerCase() {
- String rString, str = STATIC_STRING_02;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- rString = str.toLowerCase();
- rString = str.toLowerCase();
- rString = str.toLowerCase();
- rString = str.toLowerCase();
- rString = str.toLowerCase();
- rString = str.toLowerCase();
- rString = str.toLowerCase();
- rString = str.toLowerCase();
- rString = str.toLowerCase();
- rString = str.toLowerCase();
- }
- }
-
- /** toLowerCase with locale* */
-
- public void testStringtoLowerCase1() {
- Locale locale = new Locale("tr");
- String rString, str = STATIC_STRING_02;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- rString = str.toLowerCase(locale);
- rString = str.toLowerCase(locale);
- rString = str.toLowerCase(locale);
- rString = str.toLowerCase(locale);
- rString = str.toLowerCase(locale);
- rString = str.toLowerCase(locale);
- rString = str.toLowerCase(locale);
- rString = str.toLowerCase(locale);
- rString = str.toLowerCase(locale);
- rString = str.toLowerCase(locale);
- }
- }
-
- /** charAt()* */
-
- public void testStringcharAt() {
- String str = STATIC_STRING_02;
- int index, pos = 21;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- index = str.charAt(pos);
- index = str.charAt(pos);
- index = str.charAt(pos);
- index = str.charAt(pos);
- index = str.charAt(pos);
- index = str.charAt(pos);
- index = str.charAt(pos);
- index = str.charAt(pos);
- index = str.charAt(pos);
- index = str.charAt(pos);
- }
- }
-
- public void testStringConcat() {
- String mString, str1 = STATIC_STRING_01, str2 = STATIC_STRING_02;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- mString = str1.concat(str2);
- mString = str1.concat(str2);
- mString = str1.concat(str2);
- mString = str1.concat(str2);
- mString = str1.concat(str2);
- mString = str1.concat(str2);
- mString = str1.concat(str2);
- mString = str1.concat(str2);
- mString = str1.concat(str2);
- mString = str1.concat(str2);
- }
- }
-
- public void testStringBufferAppend() {
- StringBuffer sBuf = new StringBuffer(" ");
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- sBuf.append(i);
- sBuf.append(i);
- sBuf.append(i);
- sBuf.append(i);
- sBuf.append(i);
- sBuf.append(i);
- sBuf.append(i);
- sBuf.append(i);
- sBuf.append(i);
- sBuf.append(i);
- }
- }
-
- public void testStringBufferInsert() {
- StringBuffer sBuf = new StringBuffer(" ");
- int index = sBuf.length();
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- sBuf.insert(index, i);
- sBuf.insert(index, i);
- sBuf.insert(index, i);
- sBuf.insert(index, i);
- sBuf.insert(index, i);
- sBuf.insert(index, i);
- sBuf.insert(index, i);
- sBuf.insert(index, i);
- sBuf.insert(index, i);
- sBuf.insert(index, i);
- }
- }
-
- public void testStringBufferReverse() {
- StringBuffer sBuf = STATIC_SBUF;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- sBuf.reverse();
- sBuf.reverse();
- sBuf.reverse();
- sBuf.reverse();
- sBuf.reverse();
- sBuf.reverse();
- sBuf.reverse();
- sBuf.reverse();
- sBuf.reverse();
- sBuf.reverse();
- }
- }
-
- public void testStringBufferSubstring() {
- StringBuffer sBuf = STATIC_SBUF;
- String rString;
- int index = 0;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- rString = sBuf.substring(index);
- rString = sBuf.substring(index);
- rString = sBuf.substring(index);
- rString = sBuf.substring(index);
- rString = sBuf.substring(index);
- rString = sBuf.substring(index);
- rString = sBuf.substring(index);
- rString = sBuf.substring(index);
- rString = sBuf.substring(index);
- rString = sBuf.substring(index);
- }
- }
-
- public void testStringBufferSubstring1() {
- StringBuffer sBuf = STATIC_SBUF;
- String rString;
- int start = 5, end = 25;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- rString = sBuf.substring(start, end);
- rString = sBuf.substring(start, end);
- rString = sBuf.substring(start, end);
- rString = sBuf.substring(start, end);
- rString = sBuf.substring(start, end);
- rString = sBuf.substring(start, end);
- rString = sBuf.substring(start, end);
- rString = sBuf.substring(start, end);
- rString = sBuf.substring(start, end);
- rString = sBuf.substring(start, end);
- }
- }
-
- public void testStringBufferReplace() {
- StringBuffer sBuf = STATIC_SBUF;
- int start = 3, end = 6;
- String str = "ind";
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- sBuf.replace(start, end, str);
- sBuf.replace(start, end, str);
- sBuf.replace(start, end, str);
- sBuf.replace(start, end, str);
- sBuf.replace(start, end, str);
- sBuf.replace(start, end, str);
- sBuf.replace(start, end, str);
- sBuf.replace(start, end, str);
- sBuf.replace(start, end, str);
- sBuf.replace(start, end, str);
- }
- }
-
- public void testStringBufferIndexOf() {
- StringBuffer sBuf = STATIC_SBUF;
- String str = "t";
- int index;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- index = sBuf.indexOf(str);
- index = sBuf.indexOf(str);
- index = sBuf.indexOf(str);
- index = sBuf.indexOf(str);
- index = sBuf.indexOf(str);
- index = sBuf.indexOf(str);
- index = sBuf.indexOf(str);
- index = sBuf.indexOf(str);
- index = sBuf.indexOf(str);
- index = sBuf.indexOf(str);
- }
- }
-
- public void testStringBufferIndexOf1() {
- StringBuffer sBuf = STATIC_SBUF;
- String str = "tom";
- int index, pos = 12;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- index = sBuf.indexOf(str, pos);
- index = sBuf.indexOf(str, pos);
- index = sBuf.indexOf(str, pos);
- index = sBuf.indexOf(str, pos);
- index = sBuf.indexOf(str, pos);
- index = sBuf.indexOf(str, pos);
- index = sBuf.indexOf(str, pos);
- index = sBuf.indexOf(str, pos);
- index = sBuf.indexOf(str, pos);
- index = sBuf.indexOf(str, pos);
- }
-
- }
-
- public void testStringBufferLastIndexOf() {
- StringBuffer sBuf = STATIC_SBUF;
- String str = "t";
- int index;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- index = sBuf.lastIndexOf(str);
- index = sBuf.lastIndexOf(str);
- index = sBuf.lastIndexOf(str);
- index = sBuf.lastIndexOf(str);
- index = sBuf.lastIndexOf(str);
- index = sBuf.lastIndexOf(str);
- index = sBuf.lastIndexOf(str);
- index = sBuf.lastIndexOf(str);
- index = sBuf.lastIndexOf(str);
- index = sBuf.lastIndexOf(str);
- }
- }
-
- public void testStringBufferLastIndexOf1() {
- StringBuffer sBuf = STATIC_SBUF;
- int index, pos = 36;
- String str = "tom";
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- index = sBuf.lastIndexOf(str, pos);
- index = sBuf.lastIndexOf(str, pos);
- index = sBuf.lastIndexOf(str, pos);
- index = sBuf.lastIndexOf(str, pos);
- index = sBuf.lastIndexOf(str, pos);
- index = sBuf.lastIndexOf(str, pos);
- index = sBuf.lastIndexOf(str, pos);
- index = sBuf.lastIndexOf(str, pos);
- index = sBuf.lastIndexOf(str, pos);
- index = sBuf.lastIndexOf(str, pos);
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/TestHttpClient.java b/tests/AndroidTests/src/com/android/unit_tests/TestHttpClient.java
deleted file mode 100644
index 9b5e655..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/TestHttpClient.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * $HeadURL: http://svn.apache.org/repos/asf/jakarta/httpcomponents/httpcore/tags/4.0-alpha6/module-main/src/test/java/org/apache/http/mockup/TestHttpClient.java $
- * $Revision: 576077 $
- * $Date: 2007-09-16 04:50:22 -0700 (Sun, 16 Sep 2007) $
- *
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package com.android.unit_tests;
-
-import java.io.IOException;
-
-import org.apache.http.ConnectionReuseStrategy;
-import org.apache.http.HttpClientConnection;
-import org.apache.http.HttpException;
-import org.apache.http.HttpHost;
-import org.apache.http.HttpRequest;
-import org.apache.http.HttpResponse;
-import org.apache.http.HttpVersion;
-import org.apache.http.impl.DefaultConnectionReuseStrategy;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.CoreConnectionPNames;
-import org.apache.http.params.DefaultedHttpParams;
-import org.apache.http.params.HttpParams;
-import org.apache.http.params.CoreProtocolPNames;
-import org.apache.http.protocol.BasicHttpProcessor;
-import org.apache.http.protocol.HttpContext;
-import org.apache.http.protocol.BasicHttpContext;
-import org.apache.http.protocol.ExecutionContext;
-import org.apache.http.protocol.HttpRequestExecutor;
-import org.apache.http.protocol.RequestConnControl;
-import org.apache.http.protocol.RequestContent;
-import org.apache.http.protocol.RequestExpectContinue;
-import org.apache.http.protocol.RequestTargetHost;
-import org.apache.http.protocol.RequestUserAgent;
-
-public class TestHttpClient {
-
- private final HttpParams params;
- private final BasicHttpProcessor httpproc;
- private final HttpRequestExecutor httpexecutor;
- private final ConnectionReuseStrategy connStrategy;
- private final HttpContext context;
-
- public TestHttpClient() {
- super();
- this.params = new BasicHttpParams();
- this.params
- .setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 5000)
- .setBooleanParameter(CoreConnectionPNames.STALE_CONNECTION_CHECK, false)
- .setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1)
- .setParameter(CoreProtocolPNames.USER_AGENT, "TEST-CLIENT/1.1");
-
- this.httpproc = new BasicHttpProcessor();
- // Required protocol interceptors
- this.httpproc.addInterceptor(new RequestContent());
- this.httpproc.addInterceptor(new RequestTargetHost());
- // Recommended protocol interceptors
- this.httpproc.addInterceptor(new RequestConnControl());
- this.httpproc.addInterceptor(new RequestUserAgent());
- this.httpproc.addInterceptor(new RequestExpectContinue());
-
- this.httpexecutor = new HttpRequestExecutor();
- this.connStrategy = new DefaultConnectionReuseStrategy();
- this.context = new BasicHttpContext(null);
- }
-
- public HttpParams getParams() {
- return this.params;
- }
-
- public HttpResponse execute(
- final HttpRequest request,
- final HttpHost targetHost,
- final HttpClientConnection conn) throws HttpException, IOException {
- this.context.setAttribute(ExecutionContext.HTTP_REQUEST, request);
- this.context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, targetHost);
- this.context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
- request.setParams(
- new DefaultedHttpParams(request.getParams(), this.params));
- this.httpexecutor.preProcess(request, this.httpproc, this.context);
- HttpResponse response = this.httpexecutor.execute(request, conn, this.context);
- response.setParams(
- new DefaultedHttpParams(response.getParams(), this.params));
- this.httpexecutor.postProcess(response, this.httpproc, this.context);
- return response;
- }
-
- public boolean keepAlive(final HttpResponse response) {
- return this.connStrategy.keepAlive(response, this.context);
- }
-
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/TestHttpServer.java b/tests/AndroidTests/src/com/android/unit_tests/TestHttpServer.java
deleted file mode 100644
index aae21b3..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/TestHttpServer.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * $HeadURL: http://svn.apache.org/repos/asf/jakarta/httpcomponents/httpcore/tags/4.0-alpha6/module-main/src/test/java/org/apache/http/mockup/TestHttpServer.java $
- * $Revision: 576077 $
- * $Date: 2007-09-16 04:50:22 -0700 (Sun, 16 Sep 2007) $
- *
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package com.android.unit_tests;
-
-
-import java.io.IOException;
-import java.io.InterruptedIOException;
-import java.net.InetAddress;
-import java.net.ServerSocket;
-import java.net.Socket;
-
-import org.apache.http.ConnectionClosedException;
-import org.apache.http.ConnectionReuseStrategy;
-import org.apache.http.HttpException;
-import org.apache.http.HttpResponseFactory;
-import org.apache.http.HttpServerConnection;
-import org.apache.http.impl.DefaultConnectionReuseStrategy;
-import org.apache.http.impl.DefaultHttpResponseFactory;
-import org.apache.http.impl.DefaultHttpServerConnection;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.CoreConnectionPNames;
-import org.apache.http.params.HttpParams;
-import org.apache.http.params.CoreProtocolPNames;
-import org.apache.http.protocol.BasicHttpProcessor;
-import org.apache.http.protocol.HttpContext;
-import org.apache.http.protocol.BasicHttpContext;
-import org.apache.http.protocol.HttpExpectationVerifier;
-import org.apache.http.protocol.HttpRequestHandler;
-import org.apache.http.protocol.HttpRequestHandlerRegistry;
-import org.apache.http.protocol.HttpService;
-import org.apache.http.protocol.ResponseConnControl;
-import org.apache.http.protocol.ResponseContent;
-import org.apache.http.protocol.ResponseDate;
-import org.apache.http.protocol.ResponseServer;
-
-public class TestHttpServer {
-
- private final HttpParams params;
- private final BasicHttpProcessor httpproc;
- private final ConnectionReuseStrategy connStrategy;
- private final HttpResponseFactory responseFactory;
- private final HttpRequestHandlerRegistry reqistry;
- private final ServerSocket serversocket;
-
- private HttpExpectationVerifier expectationVerifier;
-
- private Thread listener;
- private volatile boolean shutdown;
-
- public TestHttpServer() throws IOException {
- super();
- this.params = new BasicHttpParams();
- this.params
- .setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 20000)
- .setIntParameter(CoreConnectionPNames.SOCKET_BUFFER_SIZE, 8 * 1024)
- .setBooleanParameter(CoreConnectionPNames.STALE_CONNECTION_CHECK, false)
- .setBooleanParameter(CoreConnectionPNames.TCP_NODELAY, true)
- .setParameter(CoreProtocolPNames.ORIGIN_SERVER, "TEST-SERVER/1.1");
- this.httpproc = new BasicHttpProcessor();
- this.httpproc.addInterceptor(new ResponseDate());
- this.httpproc.addInterceptor(new ResponseServer());
- this.httpproc.addInterceptor(new ResponseContent());
- this.httpproc.addInterceptor(new ResponseConnControl());
- this.connStrategy = new DefaultConnectionReuseStrategy();
- this.responseFactory = new DefaultHttpResponseFactory();
- this.reqistry = new HttpRequestHandlerRegistry();
- this.serversocket = new ServerSocket(0);
- }
-
- public void registerHandler(
- final String pattern,
- final HttpRequestHandler handler) {
- this.reqistry.register(pattern, handler);
- }
-
- public void setExpectationVerifier(final HttpExpectationVerifier expectationVerifier) {
- this.expectationVerifier = expectationVerifier;
- }
-
- private HttpServerConnection acceptConnection() throws IOException {
- Socket socket = this.serversocket.accept();
- DefaultHttpServerConnection conn = new DefaultHttpServerConnection();
- conn.bind(socket, this.params);
- return conn;
- }
-
- public int getPort() {
- return this.serversocket.getLocalPort();
- }
-
- public InetAddress getInetAddress() {
- return this.serversocket.getInetAddress();
- }
-
- public void start() {
- if (this.listener != null) {
- throw new IllegalStateException("Listener already running");
- }
- this.listener = new Thread(new Runnable() {
-
- public void run() {
- while (!shutdown && !Thread.interrupted()) {
- try {
- // Set up HTTP connection
- HttpServerConnection conn = acceptConnection();
- // Set up the HTTP service
- HttpService httpService = new HttpService(
- httpproc,
- connStrategy,
- responseFactory);
- httpService.setParams(params);
- httpService.setExpectationVerifier(expectationVerifier);
- httpService.setHandlerResolver(reqistry);
-
- // Start worker thread
- Thread t = new WorkerThread(httpService, conn);
- t.setDaemon(true);
- t.start();
- } catch (InterruptedIOException ex) {
- break;
- } catch (IOException e) {
- break;
- }
- }
- }
-
- });
- this.listener.start();
- }
-
- public void shutdown() {
- if (this.shutdown) {
- return;
- }
- this.shutdown = true;
- try {
- this.serversocket.close();
- } catch (IOException ignore) {}
- this.listener.interrupt();
- try {
- this.listener.join(1000);
- } catch (InterruptedException ignore) {}
- }
-
- static class WorkerThread extends Thread {
-
- private final HttpService httpservice;
- private final HttpServerConnection conn;
-
- public WorkerThread(
- final HttpService httpservice,
- final HttpServerConnection conn) {
- super();
- this.httpservice = httpservice;
- this.conn = conn;
- }
-
- public void run() {
- HttpContext context = new BasicHttpContext(null);
- try {
- while (!Thread.interrupted() && this.conn.isOpen()) {
- this.httpservice.handleRequest(this.conn, context);
- }
- } catch (ConnectionClosedException ex) {
- } catch (IOException ex) {
- System.err.println("I/O error: " + ex.getMessage());
- } catch (HttpException ex) {
- System.err.println("Unrecoverable HTTP protocol violation: " + ex.getMessage());
- } finally {
- try {
- this.conn.shutdown();
- } catch (IOException ignore) {}
- }
- }
-
- }
-
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/TestHttpService.java b/tests/AndroidTests/src/com/android/unit_tests/TestHttpService.java
deleted file mode 100644
index 6b57d13..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/TestHttpService.java
+++ /dev/null
@@ -1,608 +0,0 @@
-/*
- * $HeadURL: http://svn.apache.org/repos/asf/jakarta/httpcomponents/httpcore/tags/4.0-alpha6/module-main/src/test/java/org/apache/http/protocol/TestHttpServiceAndExecutor.java $
- * $Revision: 576073 $
- * $Date: 2007-09-16 03:53:13 -0700 (Sun, 16 Sep 2007) $
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package com.android.unit_tests;
-
-import org.apache.http.protocol.HttpExpectationVerifier;
-import org.apache.http.protocol.HttpRequestHandler;
-import android.test.PerformanceTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-
-import junit.framework.TestCase;
-
-import org.apache.http.Header;
-import org.apache.http.HttpConnectionMetrics;
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpEntityEnclosingRequest;
-import org.apache.http.HttpException;
-import org.apache.http.HttpHost;
-import org.apache.http.HttpRequest;
-import org.apache.http.HttpResponse;
-import org.apache.http.HttpStatus;
-import org.apache.http.HttpVersion;
-import org.apache.http.entity.ByteArrayEntity;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.DefaultHttpClientConnection;
-import org.apache.http.message.BasicHttpEntityEnclosingRequest;
-import org.apache.http.message.BasicHttpRequest;
-import org.apache.http.params.CoreProtocolPNames;
-import org.apache.http.protocol.HttpContext;
-import org.apache.http.util.EncodingUtils;
-import org.apache.http.util.EntityUtils;
-
-
-import java.io.IOException;
-import java.net.Socket;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Random;
-
-public class TestHttpService extends TestCase implements PerformanceTestCase {
-
- public boolean isPerformanceOnly() {
- // TODO Auto-generated method stub
- return false;
- }
-
- public int startPerformance(Intermediates intermediates) {
- // TODO Auto-generated method stub
- return 0;
- }
-
- private TestHttpServer server;
- private TestHttpClient client;
-
- protected void setUp() throws Exception {
- this.server = new TestHttpServer();
- this.client = new TestHttpClient();
- }
-
- protected void tearDown() throws Exception {
- if (server != null) {
- this.server.shutdown();
- }
- }
-
- /**
- * This test case executes a series of simple GET requests
- */
- @LargeTest
- public void testSimpleBasicHttpRequests() throws Exception {
-
- int reqNo = 20;
-
- Random rnd = new Random();
-
- // Prepare some random data
- final List testData = new ArrayList(reqNo);
- for (int i = 0; i < reqNo; i++) {
- int size = rnd.nextInt(5000);
- byte[] data = new byte[size];
- rnd.nextBytes(data);
- testData.add(data);
- }
-
- // Initialize the server-side request handler
- this.server.registerHandler("*", new HttpRequestHandler() {
-
- public void handle(
- final HttpRequest request,
- final HttpResponse response,
- final HttpContext context) throws HttpException, IOException {
-
- String s = request.getRequestLine().getUri();
- if (s.startsWith("/?")) {
- s = s.substring(2);
- }
- int index = Integer.parseInt(s);
- byte[] data = (byte []) testData.get(index);
- ByteArrayEntity entity = new ByteArrayEntity(data);
- response.setEntity(entity);
- }
-
- });
-
- this.server.start();
-
- DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
- HttpHost host = new HttpHost("localhost", this.server.getPort());
-
- try {
- for (int r = 0; r < reqNo; r++) {
- if (!conn.isOpen()) {
- Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket, this.client.getParams());
- }
-
- BasicHttpRequest get = new BasicHttpRequest("GET", "/?" + r);
- HttpResponse response = this.client.execute(get, host, conn);
- byte[] received = EntityUtils.toByteArray(response.getEntity());
- byte[] expected = (byte[]) testData.get(r);
-
- assertEquals(expected.length, received.length);
- for (int i = 0; i < expected.length; i++) {
- assertEquals(expected[i], received[i]);
- }
- if (!this.client.keepAlive(response)) {
- conn.close();
- }
- }
-
- //Verify the connection metrics
- HttpConnectionMetrics cm = conn.getMetrics();
- assertEquals(reqNo, cm.getRequestCount());
- assertEquals(reqNo, cm.getResponseCount());
-
- } finally {
- conn.close();
- this.server.shutdown();
- }
- }
-
- /**
- * This test case executes a series of simple POST requests with content length
- * delimited content.
- */
- @LargeTest
- public void testSimpleHttpPostsWithContentLength() throws Exception {
-
- int reqNo = 20;
-
- Random rnd = new Random();
-
- // Prepare some random data
- List testData = new ArrayList(reqNo);
- for (int i = 0; i < reqNo; i++) {
- int size = rnd.nextInt(5000);
- byte[] data = new byte[size];
- rnd.nextBytes(data);
- testData.add(data);
- }
-
- // Initialize the server-side request handler
- this.server.registerHandler("*", new HttpRequestHandler() {
-
- public void handle(
- final HttpRequest request,
- final HttpResponse response,
- final HttpContext context) throws HttpException, IOException {
-
- if (request instanceof HttpEntityEnclosingRequest) {
- HttpEntity incoming = ((HttpEntityEnclosingRequest) request).getEntity();
- byte[] data = EntityUtils.toByteArray(incoming);
-
- ByteArrayEntity outgoing = new ByteArrayEntity(data);
- outgoing.setChunked(false);
- response.setEntity(outgoing);
- } else {
- StringEntity outgoing = new StringEntity("No content");
- response.setEntity(outgoing);
- }
- }
-
- });
-
- this.server.start();
-
- DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
- HttpHost host = new HttpHost("localhost", this.server.getPort());
-
- try {
- for (int r = 0; r < reqNo; r++) {
- if (!conn.isOpen()) {
- Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket, this.client.getParams());
- }
-
- BasicHttpEntityEnclosingRequest post = new BasicHttpEntityEnclosingRequest("POST", "/");
- byte[] data = (byte[]) testData.get(r);
- ByteArrayEntity outgoing = new ByteArrayEntity(data);
- post.setEntity(outgoing);
-
- HttpResponse response = this.client.execute(post, host, conn);
- byte[] received = EntityUtils.toByteArray(response.getEntity());
- byte[] expected = (byte[]) testData.get(r);
-
- assertEquals(expected.length, received.length);
- for (int i = 0; i < expected.length; i++) {
- assertEquals(expected[i], received[i]);
- }
- if (!this.client.keepAlive(response)) {
- conn.close();
- }
- }
- //Verify the connection metrics
- HttpConnectionMetrics cm = conn.getMetrics();
- assertEquals(reqNo, cm.getRequestCount());
- assertEquals(reqNo, cm.getResponseCount());
-
- } finally {
- conn.close();
- this.server.shutdown();
- }
- }
-
- /**
- * This test case executes a series of simple POST requests with chunk
- * coded content content.
- */
- @LargeTest
- public void testSimpleHttpPostsChunked() throws Exception {
-
- int reqNo = 20;
-
- Random rnd = new Random();
-
- // Prepare some random data
- List testData = new ArrayList(reqNo);
- for (int i = 0; i < reqNo; i++) {
- int size = rnd.nextInt(20000);
- byte[] data = new byte[size];
- rnd.nextBytes(data);
- testData.add(data);
- }
-
- // Initialize the server-side request handler
- this.server.registerHandler("*", new HttpRequestHandler() {
-
- public void handle(
- final HttpRequest request,
- final HttpResponse response,
- final HttpContext context) throws HttpException, IOException {
-
- if (request instanceof HttpEntityEnclosingRequest) {
- HttpEntity incoming = ((HttpEntityEnclosingRequest) request).getEntity();
- byte[] data = EntityUtils.toByteArray(incoming);
-
- ByteArrayEntity outgoing = new ByteArrayEntity(data);
- outgoing.setChunked(true);
- response.setEntity(outgoing);
- } else {
- StringEntity outgoing = new StringEntity("No content");
- response.setEntity(outgoing);
- }
- }
-
- });
-
- this.server.start();
-
- DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
- HttpHost host = new HttpHost("localhost", this.server.getPort());
-
- try {
- for (int r = 0; r < reqNo; r++) {
- if (!conn.isOpen()) {
- Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket, this.client.getParams());
- }
-
- BasicHttpEntityEnclosingRequest post = new BasicHttpEntityEnclosingRequest("POST", "/");
- byte[] data = (byte[]) testData.get(r);
- ByteArrayEntity outgoing = new ByteArrayEntity(data);
- outgoing.setChunked(true);
- post.setEntity(outgoing);
-
- HttpResponse response = this.client.execute(post, host, conn);
- byte[] received = EntityUtils.toByteArray(response.getEntity());
- byte[] expected = (byte[]) testData.get(r);
-
- assertEquals(expected.length, received.length);
- for (int i = 0; i < expected.length; i++) {
- assertEquals(expected[i], received[i]);
- }
- if (!this.client.keepAlive(response)) {
- conn.close();
- }
- }
- //Verify the connection metrics
- HttpConnectionMetrics cm = conn.getMetrics();
- assertEquals(reqNo, cm.getRequestCount());
- assertEquals(reqNo, cm.getResponseCount());
- } finally {
- conn.close();
- this.server.shutdown();
- }
- }
-
- /**
- * This test case executes a series of simple HTTP/1.0 POST requests.
- */
- @LargeTest
- public void testSimpleHttpPostsHTTP10() throws Exception {
-
- int reqNo = 20;
-
- Random rnd = new Random();
-
- // Prepare some random data
- List testData = new ArrayList(reqNo);
- for (int i = 0; i < reqNo; i++) {
- int size = rnd.nextInt(5000);
- byte[] data = new byte[size];
- rnd.nextBytes(data);
- testData.add(data);
- }
-
- // Initialize the server-side request handler
- this.server.registerHandler("*", new HttpRequestHandler() {
-
- public void handle(
- final HttpRequest request,
- final HttpResponse response,
- final HttpContext context) throws HttpException, IOException {
-
- if (request instanceof HttpEntityEnclosingRequest) {
- HttpEntity incoming = ((HttpEntityEnclosingRequest) request).getEntity();
- byte[] data = EntityUtils.toByteArray(incoming);
-
- ByteArrayEntity outgoing = new ByteArrayEntity(data);
- outgoing.setChunked(false);
- response.setEntity(outgoing);
- } else {
- StringEntity outgoing = new StringEntity("No content");
- response.setEntity(outgoing);
- }
- }
-
- });
-
- this.server.start();
-
- // Set protocol level to HTTP/1.0
- this.client.getParams().setParameter(
- CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_0);
-
- DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
- HttpHost host = new HttpHost("localhost", this.server.getPort());
-
- try {
- for (int r = 0; r < reqNo; r++) {
- if (!conn.isOpen()) {
- Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket, this.client.getParams());
- }
-
- BasicHttpEntityEnclosingRequest post = new BasicHttpEntityEnclosingRequest("POST", "/");
- byte[] data = (byte[]) testData.get(r);
- ByteArrayEntity outgoing = new ByteArrayEntity(data);
- post.setEntity(outgoing);
-
- HttpResponse response = this.client.execute(post, host, conn);
- assertEquals(HttpVersion.HTTP_1_0, response.getStatusLine().getProtocolVersion());
- byte[] received = EntityUtils.toByteArray(response.getEntity());
- byte[] expected = (byte[]) testData.get(r);
-
- assertEquals(expected.length, received.length);
- for (int i = 0; i < expected.length; i++) {
- assertEquals(expected[i], received[i]);
- }
- if (!this.client.keepAlive(response)) {
- conn.close();
- }
- }
-
- //Verify the connection metrics
- HttpConnectionMetrics cm = conn.getMetrics();
- assertEquals(reqNo, cm.getRequestCount());
- assertEquals(reqNo, cm.getResponseCount());
- } finally {
- conn.close();
- this.server.shutdown();
- }
- }
-
- /**
- * This test case executes a series of simple POST requests using
- * the 'expect: continue' handshake.
- */
- @LargeTest
- public void testHttpPostsWithExpectContinue() throws Exception {
-
- int reqNo = 20;
-
- Random rnd = new Random();
-
- // Prepare some random data
- List testData = new ArrayList(reqNo);
- for (int i = 0; i < reqNo; i++) {
- int size = rnd.nextInt(5000);
- byte[] data = new byte[size];
- rnd.nextBytes(data);
- testData.add(data);
- }
-
- // Initialize the server-side request handler
- this.server.registerHandler("*", new HttpRequestHandler() {
-
- public void handle(
- final HttpRequest request,
- final HttpResponse response,
- final HttpContext context) throws HttpException, IOException {
-
- if (request instanceof HttpEntityEnclosingRequest) {
- HttpEntity incoming = ((HttpEntityEnclosingRequest) request).getEntity();
- byte[] data = EntityUtils.toByteArray(incoming);
-
- ByteArrayEntity outgoing = new ByteArrayEntity(data);
- outgoing.setChunked(true);
- response.setEntity(outgoing);
- } else {
- StringEntity outgoing = new StringEntity("No content");
- response.setEntity(outgoing);
- }
- }
-
- });
-
- this.server.start();
-
- // Activate 'expect: continue' handshake
- this.client.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, true);
-
- DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
- HttpHost host = new HttpHost("localhost", this.server.getPort());
-
- try {
- for (int r = 0; r < reqNo; r++) {
- if (!conn.isOpen()) {
- Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket, this.client.getParams());
- }
-
- BasicHttpEntityEnclosingRequest post = new BasicHttpEntityEnclosingRequest("POST", "/");
- byte[] data = (byte[]) testData.get(r);
- ByteArrayEntity outgoing = new ByteArrayEntity(data);
- outgoing.setChunked(true);
- post.setEntity(outgoing);
-
- HttpResponse response = this.client.execute(post, host, conn);
- byte[] received = EntityUtils.toByteArray(response.getEntity());
- byte[] expected = (byte[]) testData.get(r);
-
- assertEquals(expected.length, received.length);
- for (int i = 0; i < expected.length; i++) {
- assertEquals(expected[i], received[i]);
- }
- if (!this.client.keepAlive(response)) {
- conn.close();
- }
- }
-
- //Verify the connection metrics
- HttpConnectionMetrics cm = conn.getMetrics();
- assertEquals(reqNo, cm.getRequestCount());
- assertEquals(reqNo, cm.getResponseCount());
- } finally {
- conn.close();
- this.server.shutdown();
- }
- }
-
-
- /**
- * This test case executes a series of simple POST requests that do not
- * meet the target server expectations.
- */
- @LargeTest
- public void testHttpPostsWithExpectationVerification() throws Exception {
-
- int reqNo = 3;
-
- // Initialize the server-side request handler
- this.server.registerHandler("*", new HttpRequestHandler() {
-
- public void handle(
- final HttpRequest request,
- final HttpResponse response,
- final HttpContext context) throws HttpException, IOException {
-
- StringEntity outgoing = new StringEntity("No content");
- response.setEntity(outgoing);
- }
-
- });
-
- this.server.setExpectationVerifier(new HttpExpectationVerifier() {
-
- public void verify(
- final HttpRequest request,
- final HttpResponse response,
- final HttpContext context) throws HttpException {
- Header someheader = request.getFirstHeader("Secret");
- if (someheader != null) {
- int secretNumber;
- try {
- secretNumber = Integer.parseInt(someheader.getValue());
- } catch (NumberFormatException ex) {
- response.setStatusCode(HttpStatus.SC_BAD_REQUEST);
- return;
- }
- if (secretNumber < 2) {
- response.setStatusCode(HttpStatus.SC_EXPECTATION_FAILED);
- ByteArrayEntity outgoing = new ByteArrayEntity(
- EncodingUtils.getAsciiBytes("Wrong secret number"));
- response.setEntity(outgoing);
- }
- }
- }
-
- });
-
- this.server.start();
-
- // Activate 'expect: continue' handshake
- this.client.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, true);
-
- DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
- HttpHost host = new HttpHost("localhost", this.server.getPort());
-
- try {
- for (int r = 0; r < reqNo; r++) {
- if (!conn.isOpen()) {
- Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket, this.client.getParams());
- }
-
- BasicHttpEntityEnclosingRequest post = new BasicHttpEntityEnclosingRequest("POST", "/");
- post.addHeader("Secret", Integer.toString(r));
- ByteArrayEntity outgoing = new ByteArrayEntity(
- EncodingUtils.getAsciiBytes("No content"));
- post.setEntity(outgoing);
-
- HttpResponse response = this.client.execute(post, host, conn);
-
- HttpEntity entity = response.getEntity();
- assertNotNull(entity);
- entity.consumeContent();
-
- if (r < 2) {
- assertEquals(HttpStatus.SC_EXPECTATION_FAILED, response.getStatusLine().getStatusCode());
- } else {
- assertEquals(HttpStatus.SC_OK, response.getStatusLine().getStatusCode());
- }
-
- if (!this.client.keepAlive(response)) {
- conn.close();
- }
- }
- //Verify the connection metrics
- HttpConnectionMetrics cm = conn.getMetrics();
- assertEquals(reqNo, cm.getRequestCount());
- assertEquals(reqNo, cm.getResponseCount());
- } finally {
- conn.close();
- this.server.shutdown();
- }
- }
-
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/TextLayoutTest.java b/tests/AndroidTests/src/com/android/unit_tests/TextLayoutTest.java
deleted file mode 100644
index 8cfcd5e..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/TextLayoutTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.test.suitebuilder.annotation.SmallTest;
-import android.text.DynamicLayout;
-import android.text.Layout;
-import android.text.StaticLayout;
-import android.text.TextPaint;
-import junit.framework.TestCase;
-
-
-public class TextLayoutTest extends TestCase {
-
- protected String mString;
- protected TextPaint mPaint;
-
- protected void setUp() throws Exception {
- super.setUp();
- mString = "The quick brown fox";
- mPaint = new TextPaint();
- }
-
- @SmallTest
- public void testStaticLayout() throws Exception {
- Layout l = new StaticLayout(mString, mPaint, 200,
- Layout.Alignment.ALIGN_NORMAL, 1, 0,
- true);
- }
-
- @SmallTest
- public void testDynamicLayoutTest() throws Exception {
- Layout l = new DynamicLayout(mString, mPaint, 200,
- Layout.Alignment.ALIGN_NORMAL, 1, 0,
- true);
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/TextUtilsTest.java b/tests/AndroidTests/src/com/android/unit_tests/TextUtilsTest.java
deleted file mode 100644
index 51e841c..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/TextUtilsTest.java
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import com.google.android.collect.Lists;
-import com.google.android.collect.Maps;
-
-import android.graphics.Paint;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.text.Spannable;
-import android.text.SpannableString;
-import android.text.Spanned;
-import android.text.SpannedString;
-import android.text.TextPaint;
-import android.text.TextUtils;
-import android.text.style.StyleSpan;
-import android.text.util.Rfc822Validator;
-import android.test.MoreAsserts;
-
-import junit.framework.TestCase;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * TextUtilsTest tests {@link TextUtils}.
- */
-public class TextUtilsTest extends TestCase {
-
- @SmallTest
- public void testBasic() throws Exception {
- assertEquals("", TextUtils.concat());
- assertEquals("foo", TextUtils.concat("foo"));
- assertEquals("foobar", TextUtils.concat("foo", "bar"));
- assertEquals("foobarbaz", TextUtils.concat("foo", "bar", "baz"));
-
- SpannableString foo = new SpannableString("foo");
- foo.setSpan("foo", 1, 2, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
-
- SpannableString bar = new SpannableString("bar");
- bar.setSpan("bar", 1, 2, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
-
- SpannableString baz = new SpannableString("baz");
- baz.setSpan("baz", 1, 2, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
-
- assertEquals("foo", TextUtils.concat(foo).toString());
- assertEquals("foobar", TextUtils.concat(foo, bar).toString());
- assertEquals("foobarbaz", TextUtils.concat(foo, bar, baz).toString());
-
- assertEquals(1, ((Spanned) TextUtils.concat(foo)).getSpanStart("foo"));
-
- assertEquals(1, ((Spanned) TextUtils.concat(foo, bar)).getSpanStart("foo"));
- assertEquals(4, ((Spanned) TextUtils.concat(foo, bar)).getSpanStart("bar"));
-
- assertEquals(1, ((Spanned) TextUtils.concat(foo, bar, baz)).getSpanStart("foo"));
- assertEquals(4, ((Spanned) TextUtils.concat(foo, bar, baz)).getSpanStart("bar"));
- assertEquals(7, ((Spanned) TextUtils.concat(foo, bar, baz)).getSpanStart("baz"));
-
- assertTrue(TextUtils.concat("foo", "bar") instanceof String);
- assertTrue(TextUtils.concat(foo, bar) instanceof SpannedString);
- }
-
- @SmallTest
- public void testTemplateString() throws Exception {
- CharSequence result;
-
- result = TextUtils.expandTemplate("This is a ^1 of the ^2 broadcast ^3.",
- "test", "emergency", "system");
- assertEquals("This is a test of the emergency broadcast system.",
- result.toString());
-
- result = TextUtils.expandTemplate("^^^1^^^2^3^a^1^^b^^^c",
- "one", "two", "three");
- assertEquals("^one^twothree^aone^b^^c",
- result.toString());
-
- result = TextUtils.expandTemplate("^");
- assertEquals("^", result.toString());
-
- result = TextUtils.expandTemplate("^^");
- assertEquals("^", result.toString());
-
- result = TextUtils.expandTemplate("^^^");
- assertEquals("^^", result.toString());
-
- result = TextUtils.expandTemplate("shorter ^1 values ^2.", "a", "");
- assertEquals("shorter a values .", result.toString());
-
- try {
- TextUtils.expandTemplate("Only ^1 value given, but ^2 used.", "foo");
- fail();
- } catch (IllegalArgumentException e) {
- }
-
- try {
- TextUtils.expandTemplate("^1 value given, and ^0 used.", "foo");
- fail();
- } catch (IllegalArgumentException e) {
- }
-
- result = TextUtils.expandTemplate("^1 value given, and ^9 used.",
- "one", "two", "three", "four", "five",
- "six", "seven", "eight", "nine");
- assertEquals("one value given, and nine used.", result.toString());
-
- try {
- TextUtils.expandTemplate("^1 value given, and ^10 used.",
- "one", "two", "three", "four", "five",
- "six", "seven", "eight", "nine", "ten");
- fail();
- } catch (IllegalArgumentException e) {
- }
-
- // putting carets in the values: expansion is not recursive.
-
- result = TextUtils.expandTemplate("^2", "foo", "^^");
- assertEquals("^^", result.toString());
-
- result = TextUtils.expandTemplate("^^2", "foo", "1");
- assertEquals("^2", result.toString());
-
- result = TextUtils.expandTemplate("^1", "value with ^2 in it", "foo");
- assertEquals("value with ^2 in it", result.toString());
- }
-
- /** Fail unless text+spans contains a span 'spanName' with the given start and end. */
- private void checkContains(Spanned text, String[] spans, String spanName,
- int start, int end) throws Exception {
- for (String i: spans) {
- if (i.equals(spanName)) {
- assertEquals(start, text.getSpanStart(i));
- assertEquals(end, text.getSpanEnd(i));
- return;
- }
- }
- fail();
- }
-
- @SmallTest
- public void testTemplateSpan() throws Exception {
- SpannableString template;
- Spanned result;
- String[] spans;
-
- // ordinary replacement
-
- template = new SpannableString("a^1b");
- template.setSpan("before", 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- template.setSpan("during", 1, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- template.setSpan("after", 3, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- template.setSpan("during+after", 1, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
-
- result = (Spanned) TextUtils.expandTemplate(template, "foo");
- assertEquals(5, result.length());
- spans = result.getSpans(0, result.length(), String.class);
-
- // value is one character longer, so span endpoints should change.
- assertEquals(4, spans.length);
- checkContains(result, spans, "before", 0, 1);
- checkContains(result, spans, "during", 1, 4);
- checkContains(result, spans, "after", 4, 5);
- checkContains(result, spans, "during+after", 1, 5);
-
-
- // replacement with empty string
-
- result = (Spanned) TextUtils.expandTemplate(template, "");
- assertEquals(2, result.length());
- spans = result.getSpans(0, result.length(), String.class);
-
- // the "during" span should disappear.
- assertEquals(3, spans.length);
- checkContains(result, spans, "before", 0, 1);
- checkContains(result, spans, "after", 1, 2);
- checkContains(result, spans, "during+after", 1, 2);
- }
-
- @SmallTest
- public void testStringSplitterSimple() {
- stringSplitterTestHelper("a,b,cde", new String[] {"a", "b", "cde"});
- }
-
- @SmallTest
- public void testStringSplitterEmpty() {
- stringSplitterTestHelper("", new String[] {});
- }
-
- @SmallTest
- public void testStringSplitterWithLeadingEmptyString() {
- stringSplitterTestHelper(",a,b,cde", new String[] {"", "a", "b", "cde"});
- }
-
- @SmallTest
- public void testStringSplitterWithInternalEmptyString() {
- stringSplitterTestHelper("a,b,,cde", new String[] {"a", "b", "", "cde"});
- }
-
- @SmallTest
- public void testStringSplitterWithTrailingEmptyString() {
- // A single trailing emtpy string should be ignored.
- stringSplitterTestHelper("a,b,cde,", new String[] {"a", "b", "cde"});
- }
-
- private void stringSplitterTestHelper(String string, String[] expectedStrings) {
- TextUtils.StringSplitter splitter = new TextUtils.SimpleStringSplitter(',');
- splitter.setString(string);
- List<String> strings = Lists.newArrayList();
- for (String s : splitter) {
- strings.add(s);
- }
- MoreAsserts.assertEquals(expectedStrings, strings.toArray(new String[]{}));
- }
-
- @SmallTest
- public void testTrim() {
- String[] strings = { "abc", " abc", " abc", "abc ", "abc ",
- " abc ", " abc ", "\nabc\n", "\nabc", "abc\n" };
-
- for (String s : strings) {
- assertEquals(s.trim().length(), TextUtils.getTrimmedLength(s));
- }
- }
-
- //==============================================================================================
- // Email validator
- //==============================================================================================
-
- @SmallTest
- public void testEmailValidator() {
- Rfc822Validator validator = new Rfc822Validator("gmail.com");
- String[] validEmails = new String[] {
- "a@b.com", "a@b.fr", "a+b@c.com", "a@b.info",
- };
-
- for (String email : validEmails) {
- assertTrue(email + " should be a valid email address", validator.isValid(email));
- }
-
- String[] invalidEmails = new String[] {
- "a", "a@b", "a b", "a@b.12"
- };
-
- for (String email : invalidEmails) {
- assertFalse(email + " should not be a valid email address", validator.isValid(email));
- }
-
- Map<String, String> fixes = Maps.newHashMap();
- fixes.put("a", "<a@gmail.com>");
- fixes.put("a b", "<ab@gmail.com>");
- fixes.put("a@b", "<a@b>");
-
- for (Map.Entry<String, String> e : fixes.entrySet()) {
- assertEquals(e.getValue(), validator.fixText(e.getKey()).toString());
- }
- }
-
- @LargeTest
- public void testEllipsize() {
- CharSequence s1 = "The quick brown fox jumps over \u00FEhe lazy dog.";
- CharSequence s2 = new Wrapper(s1);
- Spannable s3 = new SpannableString(s1);
- s3.setSpan(new StyleSpan(0), 5, 10, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- TextPaint p = new TextPaint();
-
- for (int i = 0; i < 100; i++) {
- for (int j = 0; j < 3; j++) {
- TextUtils.TruncateAt kind = null;
-
- switch (j) {
- case 0:
- kind = TextUtils.TruncateAt.START;
- break;
-
- case 1:
- kind = TextUtils.TruncateAt.END;
- break;
-
- case 2:
- kind = TextUtils.TruncateAt.MIDDLE;
- break;
- }
-
- String out1 = TextUtils.ellipsize(s1, p, i, kind).toString();
- String out2 = TextUtils.ellipsize(s2, p, i, kind).toString();
- String out3 = TextUtils.ellipsize(s3, p, i, kind).toString();
-
- String keep1 = TextUtils.ellipsize(s1, p, i, kind, true, null).toString();
- String keep2 = TextUtils.ellipsize(s2, p, i, kind, true, null).toString();
- String keep3 = TextUtils.ellipsize(s3, p, i, kind, true, null).toString();
-
- String trim1 = keep1.replace("\uFEFF", "");
-
- // Are all normal output strings identical?
- assertEquals("wid " + i + " pass " + j, out1, out2);
- assertEquals("wid " + i + " pass " + j, out2, out3);
-
- // Are preserved output strings identical?
- assertEquals("wid " + i + " pass " + j, keep1, keep2);
- assertEquals("wid " + i + " pass " + j, keep2, keep3);
-
- // Does trimming padding from preserved yield normal?
- assertEquals("wid " + i + " pass " + j, out1, trim1);
-
- // Did preserved output strings preserve length?
- assertEquals("wid " + i + " pass " + j, keep1.length(), s1.length());
-
- // Does the output string actually fit in the space?
- assertTrue("wid " + i + " pass " + j, p.measureText(out1) <= i);
-
- // Is the padded output the same width as trimmed output?
- assertTrue("wid " + i + " pass " + j, p.measureText(keep1) == p.measureText(out1));
- }
- }
- }
-
- /**
- * CharSequence wrapper for testing the cases where text is copied into
- * a char array instead of working from a String or a Spanned.
- */
- private static class Wrapper implements CharSequence {
- private CharSequence mString;
-
- public Wrapper(CharSequence s) {
- mString = s;
- }
-
- public int length() {
- return mString.length();
- }
-
- public char charAt(int off) {
- return mString.charAt(off);
- }
-
- public String toString() {
- return mString.toString();
- }
-
- public CharSequence subSequence(int start, int end) {
- return new Wrapper(mString.subSequence(start, end));
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/TextViewPerformanceTest.java b/tests/AndroidTests/src/com/android/unit_tests/TextViewPerformanceTest.java
deleted file mode 100644
index 6fa8f4f..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/TextViewPerformanceTest.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
-import android.graphics.Paint;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.text.SpannedString;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-public class TextViewPerformanceTest extends AndroidTestCase {
-
- private String mString = "The quick brown fox";
- private Canvas mCanvas;
- private PerformanceTextView mTextView;
- private Paint mPaint;
- private PerformanceLabelView mLabelView;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- Bitmap mBitmap = Bitmap.createBitmap(320, 240, Bitmap.Config.RGB_565);
- mCanvas = new Canvas(mBitmap);
-
- ViewGroup.LayoutParams p = new ViewGroup.LayoutParams(320, 240);
-
- mLabelView = new PerformanceLabelView(mContext);
- mLabelView.setText(mString);
- mLabelView.measure(View.MeasureSpec.AT_MOST | 320, View.MeasureSpec.AT_MOST | 240);
- mLabelView.mySetFrame(320, 240);
- mLabelView.setLayoutParams(p);
- mLabelView.myDraw(mCanvas);
-
- mPaint = new Paint();
- mCanvas.save();
- mTextView = new PerformanceTextView(mContext);
- mTextView.setLayoutParams(p);
- mTextView.setText(mString);
- mTextView.mySetFrame(320, 240);
- mTextView.measure(View.MeasureSpec.AT_MOST | 320, View.MeasureSpec.AT_MOST | 240);
- }
-
- @MediumTest
- public void testDrawTextViewLine() throws Exception {
- mTextView.myDraw(mCanvas);
- mTextView.myDraw(mCanvas);
- mTextView.myDraw(mCanvas);
- mTextView.myDraw(mCanvas);
- mTextView.myDraw(mCanvas);
- mTextView.myDraw(mCanvas);
- mTextView.myDraw(mCanvas);
- mTextView.myDraw(mCanvas);
- mTextView.myDraw(mCanvas);
- mTextView.myDraw(mCanvas);
- }
-
- @SmallTest
- public void testSpan() throws Exception {
- CharSequence charSeq = new SpannedString(mString);
- mTextView.setText(charSeq);
-
- mTextView.myDraw(mCanvas);
- mTextView.myDraw(mCanvas);
- mTextView.myDraw(mCanvas);
- mTextView.myDraw(mCanvas);
- mTextView.myDraw(mCanvas);
- mTextView.myDraw(mCanvas);
- mTextView.myDraw(mCanvas);
- mTextView.myDraw(mCanvas);
- mTextView.myDraw(mCanvas);
- mTextView.myDraw(mCanvas);
- }
-
- @SmallTest
- public void testCanvasDrawText() throws Exception {
- mCanvas.drawText(mString, 30, 30, mPaint);
- }
-
- @SmallTest
- public void testLabelViewDraw() throws Exception {
- mLabelView.myDraw(mCanvas);
- }
-
- private class PerformanceTextView extends TextView {
- public PerformanceTextView(Context context) {
- super(context);
- }
-
- final void myDraw(Canvas c) {
- super.onDraw(c);
- }
-
- final void mySetFrame(int w, int h) {
- super.setFrame(0, 0, w, h);
- }
- }
-
- private class PerformanceLabelView extends LabelView {
- public PerformanceLabelView(Context context) {
- super(context);
- }
-
- final void myDraw(Canvas c) {
- super.onDraw(c);
- }
-
- final void mySetFrame(int w, int h) {
- super.setFrame(0, 0, w, h);
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/TextViewTest.java b/tests/AndroidTests/src/com/android/unit_tests/TextViewTest.java
deleted file mode 100644
index 8e49118..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/TextViewTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import com.google.android.collect.Lists;
-import com.google.android.collect.Maps;
-
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.text.GetChars;
-import android.widget.TextView;
-
-/**
- * TextViewTest tests {@link TextView}.
- */
-public class TextViewTest extends AndroidTestCase {
-
- @SmallTest
- public void testArray() throws Exception {
- TextView tv = new TextView(mContext);
-
- char[] c = new char[] { 'H', 'e', 'l', 'l', 'o', ' ',
- 'W', 'o', 'r', 'l', 'd', '!' };
-
- tv.setText(c, 1, 4);
- CharSequence oldText = tv.getText();
-
- tv.setText(c, 4, 5);
- CharSequence newText = tv.getText();
-
- assertTrue(newText == oldText);
-
- assertEquals(5, newText.length());
- assertEquals('o', newText.charAt(0));
- assertEquals("o Wor", newText.toString());
-
- assertEquals(" Wo", newText.subSequence(1, 4));
-
- char[] c2 = new char[7];
- ((GetChars) newText).getChars(1, 4, c2, 2);
- assertEquals('\0', c2[1]);
- assertEquals(' ', c2[2]);
- assertEquals('W', c2[3]);
- assertEquals('o', c2[4]);
- assertEquals('\0', c2[5]);
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/ThreadBitmapTest.java b/tests/AndroidTests/src/com/android/unit_tests/ThreadBitmapTest.java
deleted file mode 100644
index 220bc99..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/ThreadBitmapTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import junit.framework.TestCase;
-import android.graphics.Bitmap;
-import android.test.suitebuilder.annotation.LargeTest;
-
-public class ThreadBitmapTest extends TestCase {
-
- @Override
- protected void setUp() throws Exception {
- }
-
- @LargeTest
- public void testCreation() {
- for (int i = 0; i < 200; i++) {
-
- new MThread().start();
- }
- }
-
- class MThread extends Thread {
- public Bitmap b;
-
- public MThread() {
- b = Bitmap.createBitmap(300, 300, Bitmap.Config.RGB_565);
- }
-
- public void run() {}
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/TimeTest.java b/tests/AndroidTests/src/com/android/unit_tests/TimeTest.java
deleted file mode 100644
index 110caa4..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/TimeTest.java
+++ /dev/null
@@ -1,525 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.test.suitebuilder.annotation.SmallTest;
-import android.test.suitebuilder.annotation.Suppress;
-import android.text.format.Time;
-import android.util.Log;
-
-import junit.framework.TestCase;
-
-public class TimeTest extends TestCase {
-
- @SmallTest
- public void testNormalize0() throws Exception {
- Time t = new Time(Time.TIMEZONE_UTC);
- t.parse("20060432T010203");
- t.normalize(false /* use isDst */);
-// System.out.println("got: " + t.year + '-'
-// + t.month + '-' + t.monthDay
-// + ' ' + t.hour + ':' + t.minute
-// + ':' + t.second
-// + "( " + t.isDst + ',' + t.gmtoff
-// + ',' + t.weekDay
-// + ',' + t.yearDay + ')');
- }
-
- private static class DateTest {
- public int year1;
- public int month1;
- public int day1;
- public int hour1;
- public int minute1;
- public int dst1;
-
- public int offset;
-
- public int year2;
- public int month2;
- public int day2;
- public int hour2;
- public int minute2;
- public int dst2;
-
- public DateTest(int year1, int month1, int day1, int hour1, int minute1, int dst1,
- int offset, int year2, int month2, int day2, int hour2, int minute2,
- int dst2) {
- this.year1 = year1;
- this.month1 = month1;
- this.day1 = day1;
- this.hour1 = hour1;
- this.minute1 = minute1;
- this.dst1 = dst1;
- this.offset = offset;
- this.year2 = year2;
- this.month2 = month2;
- this.day2 = day2;
- this.hour2 = hour2;
- this.minute2 = minute2;
- this.dst2 = dst2;
- }
-
- public DateTest(int year1, int month1, int day1, int hour1, int minute1,
- int offset, int year2, int month2, int day2, int hour2, int minute2) {
- this.year1 = year1;
- this.month1 = month1;
- this.day1 = day1;
- this.hour1 = hour1;
- this.minute1 = minute1;
- this.dst1 = -1;
- this.offset = offset;
- this.year2 = year2;
- this.month2 = month2;
- this.day2 = day2;
- this.hour2 = hour2;
- this.minute2 = minute2;
- this.dst2 = -1;
- }
- }
-
- // These tests assume that DST changes on Nov 4, 2007 at 2am (to 1am).
-
- // The "offset" field in "dayTests" represents days.
- // Use normalize(true) with these tests to change the date by 1 day.
- private DateTest[] dayTests = {
- // The month numbers are 0-relative, so Jan=0, Feb=1,...Dec=11
-
- // Nov 4, 12am + 0 day = Nov 4, 12am
- // Nov 5, 12am + 0 day = Nov 5, 12am
- new DateTest(2007, 10, 4, 0, 0, 0, 2007, 10, 4, 0, 0),
- new DateTest(2007, 10, 5, 0, 0, 0, 2007, 10, 5, 0, 0),
-
- // Nov 3, 12am + 1 day = Nov 4, 12am
- // Nov 4, 12am + 1 day = Nov 5, 12am
- // Nov 5, 12am + 1 day = Nov 6, 12am
- new DateTest(2007, 10, 3, 0, 0, 1, 2007, 10, 4, 0, 0),
- new DateTest(2007, 10, 4, 0, 0, 1, 2007, 10, 5, 0, 0),
- new DateTest(2007, 10, 5, 0, 0, 1, 2007, 10, 6, 0, 0),
-
- // Nov 3, 1am + 1 day = Nov 4, 1am
- // Nov 4, 1am + 1 day = Nov 5, 1am
- // Nov 5, 1am + 1 day = Nov 6, 1am
- new DateTest(2007, 10, 3, 1, 0, 1, 2007, 10, 4, 1, 0),
- new DateTest(2007, 10, 4, 1, 0, 1, 2007, 10, 5, 1, 0),
- new DateTest(2007, 10, 5, 1, 0, 1, 2007, 10, 6, 1, 0),
-
- // Nov 3, 2am + 1 day = Nov 4, 2am
- // Nov 4, 2am + 1 day = Nov 5, 2am
- // Nov 5, 2am + 1 day = Nov 6, 2am
- new DateTest(2007, 10, 3, 2, 0, 1, 2007, 10, 4, 2, 0),
- new DateTest(2007, 10, 4, 2, 0, 1, 2007, 10, 5, 2, 0),
- new DateTest(2007, 10, 5, 2, 0, 1, 2007, 10, 6, 2, 0),
- };
-
- // The "offset" field in "minuteTests" represents minutes.
- // Use normalize(false) with these tests.
- private DateTest[] minuteTests = {
- // The month numbers are 0-relative, so Jan=0, Feb=1,...Dec=11
-
- // Nov 4, 12am + 0 minutes = Nov 4, 12am
- // Nov 5, 12am + 0 minutes = Nov 5, 12am
- new DateTest(2007, 10, 4, 0, 0, 0, 2007, 10, 4, 0, 0),
- new DateTest(2007, 10, 5, 0, 0, 0, 2007, 10, 5, 0, 0),
-
- // Nov 3, 12am + 60 minutes = Nov 3, 1am
- // Nov 4, 12am + 60 minutes = Nov 4, 1am
- // Nov 5, 12am + 60 minutes = Nov 5, 1am
- new DateTest(2007, 10, 3, 0, 0, 60, 2007, 10, 3, 1, 0),
- new DateTest(2007, 10, 4, 0, 0, 60, 2007, 10, 4, 1, 0),
- new DateTest(2007, 10, 5, 0, 0, 60, 2007, 10, 5, 1, 0),
-
- // Nov 3, 1am + 60 minutes = Nov 3, 2am
- // Nov 4, 1am (PDT) + 30 minutes = Nov 4, 1:30am (PDT)
- // Nov 4, 1am (PDT) + 60 minutes = Nov 4, 1am (PST)
- new DateTest(2007, 10, 3, 1, 0, 60, 2007, 10, 3, 2, 0),
- new DateTest(2007, 10, 4, 1, 0, 1, 30, 2007, 10, 4, 1, 30, 1),
- new DateTest(2007, 10, 4, 1, 0, 1, 60, 2007, 10, 4, 1, 0, 0),
-
- // Nov 4, 1:30am (PDT) + 15 minutes = Nov 4, 1:45am (PDT)
- // Nov 4, 1:30am (PDT) + 30 minutes = Nov 4, 1:00am (PST)
- // Nov 4, 1:30am (PDT) + 60 minutes = Nov 4, 1:30am (PST)
- new DateTest(2007, 10, 4, 1, 30, 1, 15, 2007, 10, 4, 1, 45, 1),
- new DateTest(2007, 10, 4, 1, 30, 1, 30, 2007, 10, 4, 1, 0, 0),
- new DateTest(2007, 10, 4, 1, 30, 1, 60, 2007, 10, 4, 1, 30, 0),
-
- // Nov 4, 1:30am (PST) + 15 minutes = Nov 4, 1:45am (PST)
- // Nov 4, 1:30am (PST) + 30 minutes = Nov 4, 2:00am (PST)
- // Nov 5, 1am + 60 minutes = Nov 5, 2am
- new DateTest(2007, 10, 4, 1, 30, 0, 15, 2007, 10, 4, 1, 45, 0),
- new DateTest(2007, 10, 4, 1, 30, 0, 30, 2007, 10, 4, 2, 0, 0),
- new DateTest(2007, 10, 5, 1, 0, 60, 2007, 10, 5, 2, 0),
-
- // Nov 3, 2am + 60 minutes = Nov 3, 3am
- // Nov 4, 2am + 30 minutes = Nov 4, 2:30am
- // Nov 4, 2am + 60 minutes = Nov 4, 3am
- // Nov 5, 2am + 60 minutes = Nov 5, 3am
- new DateTest(2007, 10, 3, 2, 0, 60, 2007, 10, 3, 3, 0),
- new DateTest(2007, 10, 4, 2, 0, 30, 2007, 10, 4, 2, 30),
- new DateTest(2007, 10, 4, 2, 0, 60, 2007, 10, 4, 3, 0),
- new DateTest(2007, 10, 5, 2, 0, 60, 2007, 10, 5, 3, 0),
- };
-
- @SmallTest
- public void testNormalize1() throws Exception {
- Time local = new Time("America/Los_Angeles");
-
- int len = dayTests.length;
- for (int index = 0; index < len; index++) {
- DateTest test = dayTests[index];
- local.set(0, test.minute1, test.hour1, test.day1, test.month1, test.year1);
- // call normalize() to make sure that isDst is set
- local.normalize(false /* use isDst */);
- local.monthDay += test.offset;
- local.normalize(true /* ignore isDst */);
- if (local.year != test.year2 || local.month != test.month2
- || local.monthDay != test.day2 || local.hour != test.hour2
- || local.minute != test.minute2) {
- String expectedTime = String.format("%d-%02d-%02d %02d:%02d",
- test.year2, test.month2, test.day2, test.hour2, test.minute2);
- String actualTime = String.format("%d-%02d-%02d %02d:%02d",
- local.year, local.month, local.monthDay, local.hour, local.minute);
- throw new RuntimeException(
- "day test index " + index + ", normalize(): expected local " + expectedTime
- + " got: " + actualTime);
- }
-
- local.set(0, test.minute1, test.hour1, test.day1, test.month1, test.year1);
- // call normalize() to make sure that isDst is set
- local.normalize(false /* use isDst */);
- local.monthDay += test.offset;
- long millis = local.toMillis(true /* ignore isDst */);
- local.set(millis);
- if (local.year != test.year2 || local.month != test.month2
- || local.monthDay != test.day2 || local.hour != test.hour2
- || local.minute != test.minute2) {
- String expectedTime = String.format("%d-%02d-%02d %02d:%02d",
- test.year2, test.month2, test.day2, test.hour2, test.minute2);
- String actualTime = String.format("%d-%02d-%02d %02d:%02d",
- local.year, local.month, local.monthDay, local.hour, local.minute);
- throw new RuntimeException(
- "day test index " + index + ", toMillis(): expected local " + expectedTime
- + " got: " + actualTime);
- }
- }
-
- len = minuteTests.length;
- for (int index = 0; index < len; index++) {
- DateTest test = minuteTests[index];
- local.set(0, test.minute1, test.hour1, test.day1, test.month1, test.year1);
- local.isDst = test.dst1;
- // call normalize() to make sure that isDst is set
- local.normalize(false /* use isDst */);
- if (test.dst2 == -1) test.dst2 = local.isDst;
- local.minute += test.offset;
- local.normalize(false /* use isDst */);
- if (local.year != test.year2 || local.month != test.month2
- || local.monthDay != test.day2 || local.hour != test.hour2
- || local.minute != test.minute2 || local.isDst != test.dst2) {
- String expectedTime = String.format("%d-%02d-%02d %02d:%02d isDst: %d",
- test.year2, test.month2, test.day2, test.hour2, test.minute2,
- test.dst2);
- String actualTime = String.format("%d-%02d-%02d %02d:%02d isDst: %d",
- local.year, local.month, local.monthDay, local.hour, local.minute,
- local.isDst);
- throw new RuntimeException(
- "minute test index " + index + ", normalize(): expected local " + expectedTime
- + " got: " + actualTime);
- }
-
- local.set(0, test.minute1, test.hour1, test.day1, test.month1, test.year1);
- local.isDst = test.dst1;
- // call normalize() to make sure that isDst is set
- local.normalize(false /* use isDst */);
- if (test.dst2 == -1) test.dst2 = local.isDst;
- local.minute += test.offset;
- long millis = local.toMillis(false /* use isDst */);
- local.set(millis);
- if (local.year != test.year2 || local.month != test.month2
- || local.monthDay != test.day2 || local.hour != test.hour2
- || local.minute != test.minute2 || local.isDst != test.dst2) {
- String expectedTime = String.format("%d-%02d-%02d %02d:%02d isDst: %d",
- test.year2, test.month2, test.day2, test.hour2, test.minute2,
- test.dst2);
- String actualTime = String.format("%d-%02d-%02d %02d:%02d isDst: %d",
- local.year, local.month, local.monthDay, local.hour, local.minute,
- local.isDst);
- throw new RuntimeException(
- "minute test index " + index + ", toMillis(): expected local " + expectedTime
- + " got: " + actualTime);
- }
- }
- }
-
- @SmallTest
- public void testSwitchTimezone0() throws Exception {
- Time t = new Time(Time.TIMEZONE_UTC);
- t.parse("20061005T120000");
- t.switchTimezone("America/Los_Angeles");
- // System.out.println("got: " + t);
- }
-
- @SmallTest
- public void testCtor0() throws Exception {
- Time t = new Time(Time.TIMEZONE_UTC);
- assertEquals(Time.TIMEZONE_UTC, t.timezone);
- }
-
- @SmallTest
- public void testGetActualMaximum0() throws Exception {
- Time t = new Time(Time.TIMEZONE_UTC);
- int r = t.getActualMaximum(Time.SECOND);
- // System.out.println("r=" + r);
- }
-
- @SmallTest
- public void testClear0() throws Exception {
- Time t = new Time(Time.TIMEZONE_UTC);
- t.clear(Time.TIMEZONE_UTC);
- }
-
- @SmallTest
- public void testCompare0() throws Exception {
- Time a = new Time(Time.TIMEZONE_UTC);
- Time b = new Time("America/Los_Angeles");
- int r = Time.compare(a, b);
- // System.out.println("r=" + r);
- }
-
- @SmallTest
- public void testFormat0() throws Exception {
- Time t = new Time(Time.TIMEZONE_UTC);
- String r = t.format("%Y%m%dT%H%M%S");
- // System.out.println("r='" + r + "'");
- }
-
- @SmallTest
- public void testToString0() throws Exception {
- Time t = new Time(Time.TIMEZONE_UTC);
- String r = t.toString();
- // System.out.println("r='" + r + "'");
- }
-
- @SmallTest
- public void testGetCurrentTimezone0() throws Exception {
- String r = Time.getCurrentTimezone();
- // System.out.println("r='" + r + "'");
- }
-
- @SmallTest
- public void testSetToNow0() throws Exception {
- Time t = new Time(Time.TIMEZONE_UTC);
- t.setToNow();
- // System.out.println("t=" + t);
- }
-
- @SmallTest
- public void testMillis0() throws Exception {
- Time t = new Time(Time.TIMEZONE_UTC);
- t.set(0, 0, 0, 1, 1, 2006);
- long r = t.toMillis(true /* ignore isDst */);
- // System.out.println("r=" + r);
- t.set(1, 0, 0, 1, 1, 2006);
- r = t.toMillis(true /* ignore isDst */);
- // System.out.println("r=" + r);
- }
-
- @SmallTest
- public void testMillis1() throws Exception {
- Time t = new Time(Time.TIMEZONE_UTC);
- t.set(1, 0, 0, 1, 0, 1970);
- long r = t.toMillis(true /* ignore isDst */);
- // System.out.println("r=" + r);
- }
-
- @SmallTest
- public void testParse0() throws Exception {
- Time t = new Time(Time.TIMEZONE_UTC);
- t.parse("12345678T901234");
- // System.out.println("t=" + t);
- }
-
- @SmallTest
- public void testSet0() throws Exception {
- Time t = new Time(Time.TIMEZONE_UTC);
- t.set(1000L);
- // System.out.println("t.year=" + t.year);
- // System.out.println("t=" + t);
- t.set(2000L);
- // System.out.println("t=" + t);
- t.set(1000L * 60);
- // System.out.println("t=" + t);
- t.set((1000L * 60 * 60 * 24) + 1000L);
- // System.out.println("t=" + t);
- }
-
- @SmallTest
- public void testSet1() throws Exception {
- Time t = new Time(Time.TIMEZONE_UTC);
- t.set(1, 2, 3, 4, 5, 6);
- // System.out.println("t=" + t);
- }
-
- // Timezones that cover the world. Some GMT offsets occur more than
- // once in case some cities decide to change their GMT offset.
- private static final String[] mTimeZones = {
- "Pacific/Kiritimati",
- "Pacific/Enderbury",
- "Pacific/Fiji",
- "Antarctica/South_Pole",
- "Pacific/Norfolk",
- "Pacific/Ponape",
- "Asia/Magadan",
- "Australia/Lord_Howe",
- "Australia/Sydney",
- "Australia/Adelaide",
- "Asia/Tokyo",
- "Asia/Seoul",
- "Asia/Taipei",
- "Asia/Singapore",
- "Asia/Hong_Kong",
- "Asia/Saigon",
- "Asia/Bangkok",
- "Indian/Cocos",
- "Asia/Rangoon",
- "Asia/Omsk",
- "Antarctica/Mawson",
- "Asia/Colombo",
- "Asia/Calcutta",
- "Asia/Oral",
- "Asia/Kabul",
- "Asia/Dubai",
- "Asia/Tehran",
- "Europe/Moscow",
- "Asia/Baghdad",
- "Africa/Mogadishu",
- "Europe/Athens",
- "Africa/Cairo",
- "Europe/Rome",
- "Europe/Berlin",
- "Europe/Amsterdam",
- "Africa/Tunis",
- "Europe/London",
- "Europe/Dublin",
- "Atlantic/St_Helena",
- "Africa/Monrovia",
- "Africa/Accra",
- "Atlantic/Azores",
- "Atlantic/South_Georgia",
- "America/Noronha",
- "America/Sao_Paulo",
- "America/Cayenne",
- "America/St_Johns",
- "America/Puerto_Rico",
- "America/Aruba",
- "America/New_York",
- "America/Chicago",
- "America/Denver",
- "America/Los_Angeles",
- "America/Anchorage",
- "Pacific/Marquesas",
- "America/Adak",
- "Pacific/Honolulu",
- "Pacific/Midway",
- };
-
- @Suppress
- public void disableTestGetJulianDay() throws Exception {
- Time time = new Time();
-
- // For each day of the year, and for each timezone, get the Julian
- // day for 12am and then check that if we change the time we get the
- // same Julian day.
- for (int monthDay = 1; monthDay <= 366; monthDay++) {
- for (int zoneIndex = 0; zoneIndex < mTimeZones.length; zoneIndex++) {
- // We leave the "month" as zero because we are changing the
- // "monthDay" from 1 to 366. The call to normalize() will
- // then change the "month" (but we don't really care).
- time.set(0, 0, 0, monthDay, 0, 2008);
- time.timezone = mTimeZones[zoneIndex];
- long millis = time.normalize(true);
- if (zoneIndex == 0) {
- Log.i("TimeTest", time.format("%B %d, %Y"));
- }
-
- // This is the Julian day for 12am for this day of the year
- int julianDay = Time.getJulianDay(millis, time.gmtoff);
-
- // Change the time during the day and check that we get the same
- // Julian day.
- for (int hour = 0; hour < 24; hour++) {
- for (int minute = 0; minute < 60; minute += 15) {
- time.set(0, minute, hour, monthDay, 0, 2008);
- millis = time.normalize(true);
- int day = Time.getJulianDay(millis, time.gmtoff);
- if (day != julianDay) {
- Log.e("TimeTest", "Julian day: " + day + " at time "
- + time.hour + ":" + time.minute
- + " != today's Julian day: " + julianDay
- + " timezone: " + time.timezone);
- }
- assertEquals(day, julianDay);
- }
- }
- }
- }
- }
-
- @Suppress
- public void disableTestSetJulianDay() throws Exception {
- Time time = new Time();
-
- // For each day of the year in 2008, and for each timezone,
- // test that we can set the Julian day correctly.
- for (int monthDay = 1; monthDay <= 366; monthDay++) {
- for (int zoneIndex = 0; zoneIndex < mTimeZones.length; zoneIndex++) {
- // We leave the "month" as zero because we are changing the
- // "monthDay" from 1 to 366. The call to normalize() will
- // then change the "month" (but we don't really care).
- time.set(0, 0, 0, monthDay, 0, 2008);
- time.timezone = mTimeZones[zoneIndex];
- long millis = time.normalize(true);
- if (zoneIndex == 0) {
- Log.i("TimeTest", time.format("%B %d, %Y"));
- }
- int julianDay = Time.getJulianDay(millis, time.gmtoff);
-
- time.setJulianDay(julianDay);
-
- // Some places change daylight saving time at 12am and so there
- // is no 12am on some days in some timezones. In those cases,
- // the time is set to 1am.
- // Examples: Africa/Cairo on April 25, 2008
- // America/Sao_Paulo on October 12, 2008
- // Atlantic/Azores on March 30, 2008
- assertTrue(time.hour == 0 || time.hour == 1);
- assertEquals(0, time.minute);
- assertEquals(0, time.second);
-
- millis = time.toMillis(false);
- int day = Time.getJulianDay(millis, time.gmtoff);
- if (day != julianDay) {
- Log.i("TimeTest", "Error: gmtoff " + (time.gmtoff / 3600.0)
- + " day " + julianDay
- + " millis " + millis
- + " " + time.format("%B %d, %Y") + " " + time.timezone);
- }
- assertEquals(day, julianDay);
- }
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/TimeUtilsTest.java b/tests/AndroidTests/src/com/android/unit_tests/TimeUtilsTest.java
deleted file mode 100644
index 6ba64fd..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/TimeUtilsTest.java
+++ /dev/null
@@ -1,432 +0,0 @@
-/*
- * Copyright (C) 2008 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import junit.framework.TestCase;
-
-import android.util.TimeUtils;
-
-import java.util.Calendar;
-import java.util.TimeZone;
-
-/**
- * TimeUtilsTest tests the time zone guesser.
- */
-public class TimeUtilsTest extends TestCase {
- public void testMainstream() throws Exception {
- String[] mainstream = new String[] {
- "America/New_York", // Eastern
- "America/Chicago", // Central
- "America/Denver", // Mountain
- "America/Los_Angeles", // Pacific
- "America/Anchorage", // Alaska
- "Pacific/Honolulu", // Hawaii, no DST
- };
-
- for (String name : mainstream) {
- TimeZone tz = TimeZone.getTimeZone(name);
- Calendar c = Calendar.getInstance(tz);
- TimeZone guess;
-
- c.set(2008, Calendar.OCTOBER, 20, 12, 00, 00);
- guess = guess(c, "us");
- assertEquals(name, guess.getID());
-
- c.set(2009, Calendar.JANUARY, 20, 12, 00, 00);
- guess = guess(c, "us");
- assertEquals(name, guess.getID());
- }
- }
-
- public void testWeird() throws Exception {
- String[] weird = new String[] {
- "America/Phoenix", // Mountain, no DST
- "America/Adak", // Same as Hawaii, but with DST
- };
-
- for (String name : weird) {
- TimeZone tz = TimeZone.getTimeZone(name);
- Calendar c = Calendar.getInstance(tz);
- TimeZone guess;
-
- c.set(2008, Calendar.OCTOBER, 20, 12, 00, 00);
- guess = guess(c, "us");
- assertEquals(name, guess.getID());
- }
- }
-
- public void testOld() throws Exception {
- String[] old = new String[] {
- "America/Indiana/Indianapolis", // Eastern, formerly no DST
- };
-
- for (String name : old) {
- TimeZone tz = TimeZone.getTimeZone(name);
- Calendar c = Calendar.getInstance(tz);
- TimeZone guess;
-
- c.set(2005, Calendar.OCTOBER, 20, 12, 00, 00);
- guess = guess(c, "us");
- assertEquals(name, guess.getID());
- }
- }
-
- public void testWorld() throws Exception {
- String[] world = new String[] {
- "ad", "Europe/Andorra",
- "ae", "Asia/Dubai",
- "af", "Asia/Kabul",
- "ag", "America/Antigua",
- "ai", "America/Anguilla",
- "al", "Europe/Tirane",
- "am", "Asia/Yerevan",
- "an", "America/Curacao",
- "ao", "Africa/Luanda",
- "aq", "Antarctica/McMurdo",
- "aq", "Antarctica/DumontDUrville",
- "aq", "Antarctica/Casey",
- "aq", "Antarctica/Davis",
- "aq", "Antarctica/Mawson",
- "aq", "Antarctica/Syowa",
- "aq", "Antarctica/Rothera",
- "aq", "Antarctica/Palmer",
- "ar", "America/Argentina/Buenos_Aires",
- "as", "Pacific/Pago_Pago",
- "at", "Europe/Vienna",
- "au", "Australia/Sydney",
- "au", "Australia/Adelaide",
- "au", "Australia/Perth",
- "au", "Australia/Eucla",
- "aw", "America/Aruba",
- "ax", "Europe/Mariehamn",
- "az", "Asia/Baku",
- "ba", "Europe/Sarajevo",
- "bb", "America/Barbados",
- "bd", "Asia/Dhaka",
- "be", "Europe/Brussels",
- "bf", "Africa/Ouagadougou",
- "bg", "Europe/Sofia",
- "bh", "Asia/Bahrain",
- "bi", "Africa/Bujumbura",
- "bj", "Africa/Porto-Novo",
- "bm", "Atlantic/Bermuda",
- "bn", "Asia/Brunei",
- "bo", "America/La_Paz",
- "br", "America/Noronha",
- "br", "America/Sao_Paulo",
- "br", "America/Manaus",
- "bs", "America/Nassau",
- "bt", "Asia/Thimphu",
- "bw", "Africa/Gaborone",
- "by", "Europe/Minsk",
- "bz", "America/Belize",
- "ca", "America/St_Johns",
- "ca", "America/Halifax",
- "ca", "America/Toronto",
- "ca", "America/Winnipeg",
- "ca", "America/Edmonton",
- "ca", "America/Vancouver",
- "cc", "Indian/Cocos",
- "cd", "Africa/Lubumbashi",
- "cd", "Africa/Kinshasa",
- "cf", "Africa/Bangui",
- "cg", "Africa/Brazzaville",
- "ch", "Europe/Zurich",
- "ci", "Africa/Abidjan",
- "ck", "Pacific/Rarotonga",
- "cl", "America/Santiago",
- "cl", "Pacific/Easter",
- "cm", "Africa/Douala",
- "cn", "Asia/Shanghai",
- "co", "America/Bogota",
- "cr", "America/Costa_Rica",
- "cu", "America/Havana",
- "cv", "Atlantic/Cape_Verde",
- "cx", "Indian/Christmas",
- "cy", "Asia/Nicosia",
- "cz", "Europe/Prague",
- "de", "Europe/Berlin",
- "dj", "Africa/Djibouti",
- "dk", "Europe/Copenhagen",
- "dm", "America/Dominica",
- "do", "America/Santo_Domingo",
- "dz", "Africa/Algiers",
- "ec", "America/Guayaquil",
- "ec", "Pacific/Galapagos",
- "ee", "Europe/Tallinn",
- "eg", "Africa/Cairo",
- "eh", "Africa/El_Aaiun",
- "er", "Africa/Asmara",
- "es", "Europe/Madrid",
- "es", "Atlantic/Canary",
- "et", "Africa/Addis_Ababa",
- "fi", "Europe/Helsinki",
- "fj", "Pacific/Fiji",
- "fk", "Atlantic/Stanley",
- "fm", "Pacific/Ponape",
- "fm", "Pacific/Truk",
- "fo", "Atlantic/Faroe",
- "fr", "Europe/Paris",
- "ga", "Africa/Libreville",
- "gb", "Europe/London",
- "gd", "America/Grenada",
- "ge", "Asia/Tbilisi",
- "gf", "America/Cayenne",
- "gg", "Europe/Guernsey",
- "gh", "Africa/Accra",
- "gi", "Europe/Gibraltar",
- "gl", "America/Danmarkshavn",
- "gl", "America/Scoresbysund",
- "gl", "America/Godthab",
- "gl", "America/Thule",
- "gm", "Africa/Banjul",
- "gn", "Africa/Conakry",
- "gp", "America/Guadeloupe",
- "gq", "Africa/Malabo",
- "gr", "Europe/Athens",
- "gs", "Atlantic/South_Georgia",
- "gt", "America/Guatemala",
- "gu", "Pacific/Guam",
- "gw", "Africa/Bissau",
- "gy", "America/Guyana",
- "hk", "Asia/Hong_Kong",
- "hn", "America/Tegucigalpa",
- "hr", "Europe/Zagreb",
- "ht", "America/Port-au-Prince",
- "hu", "Europe/Budapest",
- "id", "Asia/Jayapura",
- "id", "Asia/Makassar",
- "id", "Asia/Jakarta",
- "ie", "Europe/Dublin",
- "il", "Asia/Jerusalem",
- "im", "Europe/Isle_of_Man",
- "in", "Asia/Calcutta",
- "io", "Indian/Chagos",
- "iq", "Asia/Baghdad",
- "ir", "Asia/Tehran",
- "is", "Atlantic/Reykjavik",
- "it", "Europe/Rome",
- "je", "Europe/Jersey",
- "jm", "America/Jamaica",
- "jo", "Asia/Amman",
- "jp", "Asia/Tokyo",
- "ke", "Africa/Nairobi",
- "kg", "Asia/Bishkek",
- "kh", "Asia/Phnom_Penh",
- "ki", "Pacific/Kiritimati",
- "ki", "Pacific/Enderbury",
- "ki", "Pacific/Tarawa",
- "km", "Indian/Comoro",
- "kn", "America/St_Kitts",
- "kp", "Asia/Pyongyang",
- "kr", "Asia/Seoul",
- "kw", "Asia/Kuwait",
- "ky", "America/Cayman",
- "kz", "Asia/Almaty",
- "kz", "Asia/Aqtau",
- "la", "Asia/Vientiane",
- "lb", "Asia/Beirut",
- "lc", "America/St_Lucia",
- "li", "Europe/Vaduz",
- "lk", "Asia/Colombo",
- "lr", "Africa/Monrovia",
- "ls", "Africa/Maseru",
- "lt", "Europe/Vilnius",
- "lu", "Europe/Luxembourg",
- "lv", "Europe/Riga",
- "ly", "Africa/Tripoli",
- "ma", "Africa/Casablanca",
- "mc", "Europe/Monaco",
- "md", "Europe/Chisinau",
- "me", "Europe/Podgorica",
- "mg", "Indian/Antananarivo",
- "mh", "Pacific/Majuro",
- "mk", "Europe/Skopje",
- "ml", "Africa/Bamako",
- "mm", "Asia/Rangoon",
- "mn", "Asia/Choibalsan",
- "mn", "Asia/Hovd",
- "mo", "Asia/Macau",
- "mp", "Pacific/Saipan",
- "mq", "America/Martinique",
- "mr", "Africa/Nouakchott",
- "ms", "America/Montserrat",
- "mt", "Europe/Malta",
- "mu", "Indian/Mauritius",
- "mv", "Indian/Maldives",
- "mw", "Africa/Blantyre",
- "mx", "America/Mexico_City",
- "mx", "America/Chihuahua",
- "mx", "America/Tijuana",
- "my", "Asia/Kuala_Lumpur",
- "mz", "Africa/Maputo",
- "na", "Africa/Windhoek",
- "nc", "Pacific/Noumea",
- "ne", "Africa/Niamey",
- "nf", "Pacific/Norfolk",
- "ng", "Africa/Lagos",
- "ni", "America/Managua",
- "nl", "Europe/Amsterdam",
- "no", "Europe/Oslo",
- "np", "Asia/Katmandu",
- "nr", "Pacific/Nauru",
- "nu", "Pacific/Niue",
- "nz", "Pacific/Auckland",
- "nz", "Pacific/Chatham",
- "om", "Asia/Muscat",
- "pa", "America/Panama",
- "pe", "America/Lima",
- "pf", "Pacific/Gambier",
- "pf", "Pacific/Marquesas",
- "pf", "Pacific/Tahiti",
- "pg", "Pacific/Port_Moresby",
- "ph", "Asia/Manila",
- "pk", "Asia/Karachi",
- "pl", "Europe/Warsaw",
- "pm", "America/Miquelon",
- "pn", "Pacific/Pitcairn",
- "pr", "America/Puerto_Rico",
- "ps", "Asia/Gaza",
- "pt", "Europe/Lisbon",
- "pt", "Atlantic/Azores",
- "pw", "Pacific/Palau",
- "py", "America/Asuncion",
- "qa", "Asia/Qatar",
- "re", "Indian/Reunion",
- "ro", "Europe/Bucharest",
- "rs", "Europe/Belgrade",
- "ru", "Asia/Kamchatka",
- "ru", "Asia/Magadan",
- "ru", "Asia/Vladivostok",
- "ru", "Asia/Yakutsk",
- "ru", "Asia/Irkutsk",
- "ru", "Asia/Krasnoyarsk",
- "ru", "Asia/Novosibirsk",
- "ru", "Asia/Yekaterinburg",
- "ru", "Europe/Samara",
- "ru", "Europe/Moscow",
- "ru", "Europe/Kaliningrad",
- "rw", "Africa/Kigali",
- "sa", "Asia/Riyadh",
- "sb", "Pacific/Guadalcanal",
- "sc", "Indian/Mahe",
- "sd", "Africa/Khartoum",
- "se", "Europe/Stockholm",
- "sg", "Asia/Singapore",
- "sh", "Atlantic/St_Helena",
- "si", "Europe/Ljubljana",
- "sj", "Arctic/Longyearbyen",
- "sk", "Europe/Bratislava",
- "sl", "Africa/Freetown",
- "sm", "Europe/San_Marino",
- "sn", "Africa/Dakar",
- "so", "Africa/Mogadishu",
- "sr", "America/Paramaribo",
- "st", "Africa/Sao_Tome",
- "sv", "America/El_Salvador",
- "sy", "Asia/Damascus",
- "sz", "Africa/Mbabane",
- "tc", "America/Grand_Turk",
- "td", "Africa/Ndjamena",
- "tf", "Indian/Kerguelen",
- "tg", "Africa/Lome",
- "th", "Asia/Bangkok",
- "tj", "Asia/Dushanbe",
- "tk", "Pacific/Fakaofo",
- "tl", "Asia/Dili",
- "tm", "Asia/Ashgabat",
- "tn", "Africa/Tunis",
- "to", "Pacific/Tongatapu",
- "tr", "Europe/Istanbul",
- "tt", "America/Port_of_Spain",
- "tv", "Pacific/Funafuti",
- "tw", "Asia/Taipei",
- "tz", "Africa/Dar_es_Salaam",
- "ua", "Europe/Kiev",
- "ug", "Africa/Kampala",
- "um", "Pacific/Wake",
- "um", "Pacific/Johnston",
- "um", "Pacific/Midway",
- "us", "America/New_York",
- "us", "America/Chicago",
- "us", "America/Denver",
- "us", "America/Los_Angeles",
- "us", "America/Anchorage",
- "us", "Pacific/Honolulu",
- "uy", "America/Montevideo",
- "uz", "Asia/Tashkent",
- "va", "Europe/Vatican",
- "vc", "America/St_Vincent",
- "ve", "America/Caracas",
- "vg", "America/Tortola",
- "vi", "America/St_Thomas",
- "vn", "Asia/Saigon",
- "vu", "Pacific/Efate",
- "wf", "Pacific/Wallis",
- "ws", "Pacific/Apia",
- "ye", "Asia/Aden",
- "yt", "Indian/Mayotte",
- "za", "Africa/Johannesburg",
- "zm", "Africa/Lusaka",
- "zw", "Africa/Harare",
- };
-
- for (int i = 0; i < world.length; i += 2) {
- String country = world[i];
- String name = world[i + 1];
-
- TimeZone tz = TimeZone.getTimeZone(name);
- Calendar c = Calendar.getInstance(tz);
- TimeZone guess;
-
- c.set(2009, Calendar.JULY, 20, 12, 00, 00);
- guess = guess(c, country);
- assertEquals(name, guess.getID());
-
- c.set(2009, Calendar.JANUARY, 20, 12, 00, 00);
- guess = guess(c, country);
- assertEquals(name, guess.getID());
- }
- }
-
- public void testWorldWeird() throws Exception {
- String[] world = new String[] {
- // Distinguisable from Sydney only when DST not in effect
- "au", "Australia/Lord_Howe",
- };
-
- for (int i = 0; i < world.length; i += 2) {
- String country = world[i];
- String name = world[i + 1];
-
- TimeZone tz = TimeZone.getTimeZone(name);
- Calendar c = Calendar.getInstance(tz);
- TimeZone guess;
-
- c.set(2009, Calendar.JULY, 20, 12, 00, 00);
- guess = guess(c, country);
- assertEquals(name, guess.getID());
- }
- }
-
- private static TimeZone guess(Calendar c, String country) {
- return TimeUtils.getTimeZone(c.get(c.ZONE_OFFSET) + c.get(c.DST_OFFSET),
- c.get(c.DST_OFFSET) != 0,
- c.getTimeInMillis(),
- country);
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/TraceTest.java b/tests/AndroidTests/src/com/android/unit_tests/TraceTest.java
deleted file mode 100644
index 6705080..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/TraceTest.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.os.Debug;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.test.suitebuilder.annotation.Suppress;
-import android.util.Log;
-
-/**
- * This class is used to test the native tracing support. Run this test
- * while tracing on the emulator and then run traceview to view the trace.
- */
-public class TraceTest extends AndroidTestCase
-{
- private static final String TAG = "TraceTest";
- private int eMethodCalls = 0;
- private int fMethodCalls = 0;
- private int gMethodCalls = 0;
-
- @SmallTest
- public void testNativeTracingFromJava()
- {
- long start = System.currentTimeMillis();
- Debug.startNativeTracing();
- //nativeMethod();
- int count = 0;
- for (int ii = 0; ii < 20; ii++) {
- count = eMethod();
- }
- Debug.stopNativeTracing();
- long end = System.currentTimeMillis();
- long elapsed = end - start;
- Log.i(TAG, "elapsed millis: " + elapsed);
- Log.i(TAG, "eMethod calls: " + eMethodCalls
- + " fMethod calls: " + fMethodCalls
- + " gMethod calls: " + gMethodCalls);
- }
-
- // This should not run in the automated suite.
- @Suppress
- public void disableTestNativeTracingFromC()
- {
- long start = System.currentTimeMillis();
- nativeMethodAndStartTracing();
- long end = System.currentTimeMillis();
- long elapsed = end - start;
- Log.i(TAG, "elapsed millis: " + elapsed);
- }
-
- native void nativeMethod();
- native void nativeMethodAndStartTracing();
-
- @LargeTest
- public void testMethodTracing()
- {
- long start = System.currentTimeMillis();
- Debug.startMethodTracing("traceTest");
- topMethod();
- Debug.stopMethodTracing();
- long end = System.currentTimeMillis();
- long elapsed = end - start;
- Log.i(TAG, "elapsed millis: " + elapsed);
- }
-
- private void topMethod() {
- aMethod();
- bMethod();
- cMethod();
- dMethod(5);
-
- Thread t1 = new aThread();
- t1.start();
- Thread t2 = new aThread();
- t2.start();
- Thread t3 = new aThread();
- t3.start();
- try {
- t1.join();
- t2.join();
- t3.join();
- } catch (InterruptedException e) {
- }
- }
-
- private class aThread extends Thread {
- @Override
- public void run() {
- aMethod();
- bMethod();
- cMethod();
- }
- }
-
- /** Calls other methods to make some interesting trace data.
- *
- * @return a meaningless value
- */
- private int aMethod() {
- int count = 0;
- for (int ii = 0; ii < 6; ii++) {
- count += bMethod();
- }
- for (int ii = 0; ii < 5; ii++) {
- count += cMethod();
- }
- for (int ii = 0; ii < 4; ii++) {
- count += dMethod(ii);
- }
- return count;
- }
-
- /** Calls another method to make some interesting trace data.
- *
- * @return a meaningless value
- */
- private int bMethod() {
- int count = 0;
- for (int ii = 0; ii < 4; ii++) {
- count += cMethod();
- }
- return count;
- }
-
- /** Executes a simple loop to make some interesting trace data.
- *
- * @return a meaningless value
- */
- private int cMethod() {
- int count = 0;
- for (int ii = 0; ii < 1000; ii++) {
- count += ii;
- }
- return count;
- }
-
- /** Calls itself recursively to make some interesting trace data.
- *
- * @return a meaningless value
- */
- private int dMethod(int level) {
- int count = 0;
- if (level > 0) {
- count = dMethod(level - 1);
- }
- for (int ii = 0; ii < 100; ii++) {
- count += ii;
- }
- if (level == 0) {
- return count;
- }
- return dMethod(level - 1);
- }
-
- public int eMethod() {
- eMethodCalls += 1;
- int count = fMethod();
- count += gMethod(3);
- return count;
- }
-
- public int fMethod() {
- fMethodCalls += 1;
- int count = 0;
- for (int ii = 0; ii < 10; ii++) {
- count += ii;
- }
- return count;
- }
-
- public int gMethod(int level) {
- gMethodCalls += 1;
- int count = level;
- if (level > 1)
- count += gMethod(level - 1);
- return count;
- }
-
- /*
- * This causes the native shared library to be loaded when the
- * class is first used. The library is only loaded once, even if
- * multiple classes include this line.
- *
- * The library must be in java.library.path, which is derived from
- * LD_LIBRARY_PATH. The actual library name searched for will be
- * "libtrace_test.so" under Linux, but may be different on other
- * platforms.
- */
- static {
- Log.i(TAG, "Loading trace_test native library...");
- try {
- System.loadLibrary("trace_test");
- Log.i(TAG, "Successfully loaded trace_test native library");
- }
- catch (UnsatisfiedLinkError ule) {
- Log.w(TAG, "Could not load trace_test native library");
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/TreeMapTest.java b/tests/AndroidTests/src/com/android/unit_tests/TreeMapTest.java
deleted file mode 100644
index d77a819..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/TreeMapTest.java
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.test.PerformanceTestBase;
-import android.test.PerformanceTestCase;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.SortedMap;
-import java.util.TreeMap;
-
-/**
- * Implements basic performance test functionality for java.util.TreeMap
- */
-
-public class TreeMapTest extends PerformanceTestBase {
- public static final int ITERATIONS = 1000;
- public static TreeMap<String, Integer> sMap;
- public static String[] sKeys;
-
- @Override
- @SuppressWarnings("unchecked")
- protected void setUp() throws Exception {
- super.setUp();
- sMap = new TreeMap();
- sKeys = new String[ITERATIONS];
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- sKeys[i] = Integer.toString(i, 16);
- sMap.put(sKeys[i], i);
- }
- }
-
- @Override
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS);
- return 0;
- }
-
- @SuppressWarnings("unchecked")
- public void testTreeMapPut() {
- TreeMap map = new TreeMap();
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- map.put(i, i);
- map.put(i, i);
- map.put(i, i);
- map.put(i, i);
- map.put(i, i);
- map.put(i, i);
- map.put(i, i);
- map.put(i, i);
- map.put(i, i);
- map.put(i, i);
- }
- }
-
- public void testTreeMapGet() {
- int value;
- TreeMap<String, Integer> map = sMap;
- String[] keys = sKeys;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- value = map.get(keys[i]);
- value = map.get(keys[i]);
- value = map.get(keys[i]);
- value = map.get(keys[i]);
- value = map.get(keys[i]);
- value = map.get(keys[i]);
- value = map.get(keys[i]);
- value = map.get(keys[i]);
- value = map.get(keys[i]);
- value = map.get(keys[i]);
- }
- }
-
- public void testTreeMapFirstKey() {
- String key;
- TreeMap<String, Integer> map = sMap;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- key = map.firstKey();
- key = map.firstKey();
- key = map.firstKey();
- key = map.firstKey();
- key = map.firstKey();
- key = map.firstKey();
- key = map.firstKey();
- key = map.firstKey();
- key = map.firstKey();
- key = map.firstKey();
- }
- }
-
- public void testTreeMapKeySet() {
- Set keyset;
- TreeMap<String, Integer> map = sMap;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- keyset = map.keySet();
- keyset = map.keySet();
- keyset = map.keySet();
- keyset = map.keySet();
- keyset = map.keySet();
- keyset = map.keySet();
- keyset = map.keySet();
- keyset = map.keySet();
- keyset = map.keySet();
- keyset = map.keySet();
- }
- }
-
- public void testTreeMapEntrySet() {
- Set keyset;
- TreeMap<String, Integer> map = sMap;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- keyset = map.entrySet();
- keyset = map.entrySet();
- keyset = map.entrySet();
- keyset = map.entrySet();
- keyset = map.entrySet();
- keyset = map.entrySet();
- keyset = map.entrySet();
- keyset = map.entrySet();
- keyset = map.entrySet();
- keyset = map.entrySet();
- }
- }
-
- public void testTreeMapValues() {
- Collection collection;
- TreeMap<String, Integer> map = sMap;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- collection = map.values();
- collection = map.values();
- collection = map.values();
- collection = map.values();
- collection = map.values();
- collection = map.values();
- collection = map.values();
- collection = map.values();
- collection = map.values();
- collection = map.values();
- }
- }
-
- public void testTreeMapSize() {
- int len;
- TreeMap<String, Integer> map = sMap;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- len = map.size();
- len = map.size();
- len = map.size();
- len = map.size();
- len = map.size();
- len = map.size();
- len = map.size();
- len = map.size();
- len = map.size();
- len = map.size();
- }
- }
-
- public void testTreeMapContainsKey() {
- boolean flag;
- String key = sKeys[525];
- TreeMap<String, Integer> map = sMap;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- flag = map.containsKey(key);
- flag = map.containsKey(key);
- flag = map.containsKey(key);
- flag = map.containsKey(key);
- flag = map.containsKey(key);
- flag = map.containsKey(key);
- flag = map.containsKey(key);
- flag = map.containsKey(key);
- flag = map.containsKey(key);
- flag = map.containsKey(key);
- }
- }
-
- public void testTreeMapContainsValue() {
- boolean flag;
- TreeMap<String, Integer> map = sMap;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- flag = map.containsValue(i);
- flag = map.containsValue(i);
- flag = map.containsValue(i);
- flag = map.containsValue(i);
- flag = map.containsValue(i);
- flag = map.containsValue(i);
- flag = map.containsValue(i);
- flag = map.containsValue(i);
- flag = map.containsValue(i);
- flag = map.containsValue(i);
- }
- }
-
- public void testTreeMapHeadMap() {
- SortedMap map;
- String str = sKeys[100];
- TreeMap<String, Integer> tMap = sMap;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- map = tMap.headMap(str);
- map = tMap.headMap(str);
- map = tMap.headMap(str);
- map = tMap.headMap(str);
- map = tMap.headMap(str);
- map = tMap.headMap(str);
- map = tMap.headMap(str);
- map = tMap.headMap(str);
- map = tMap.headMap(str);
- map = tMap.headMap(str);
- }
- }
-
- public void testTreeMapSubMap() {
- String str1 = sKeys[400];
- String str2 = sKeys[500];
- SortedMap map;
- TreeMap<String, Integer> tMap = sMap;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- map = tMap.subMap(str1, str2);
- map = tMap.subMap(str1, str2);
- map = tMap.subMap(str1, str2);
- map = tMap.subMap(str1, str2);
- map = tMap.subMap(str1, str2);
- map = tMap.subMap(str1, str2);
- map = tMap.subMap(str1, str2);
- map = tMap.subMap(str1, str2);
- map = tMap.subMap(str1, str2);
- map = tMap.subMap(str1, str2);
- }
- }
-
- public void testTreeMapTailMap() {
- String str = sKeys[900];
- TreeMap<String, Integer> tMap = sMap;
- SortedMap map;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- map = tMap.tailMap(str);
- map = tMap.tailMap(str);
- map = tMap.tailMap(str);
- map = tMap.tailMap(str);
- map = tMap.tailMap(str);
- map = tMap.tailMap(str);
- map = tMap.tailMap(str);
- map = tMap.tailMap(str);
- map = tMap.tailMap(str);
- map = tMap.tailMap(str);
- }
- }
-
- @SuppressWarnings("unchecked")
- public void testTreeMapRemove() {
- TreeMap<String, Integer> tMap = new TreeMap(sMap);
- String[] keys = sKeys;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- tMap.remove(keys[i]);
- tMap.remove(keys[i]);
- tMap.remove(keys[i]);
- tMap.remove(keys[i]);
- tMap.remove(keys[i]);
- tMap.remove(keys[i]);
- tMap.remove(keys[i]);
- tMap.remove(keys[i]);
- tMap.remove(keys[i]);
- tMap.remove(keys[i]);
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/TreeSetTest.java b/tests/AndroidTests/src/com/android/unit_tests/TreeSetTest.java
deleted file mode 100644
index 60dfe9a..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/TreeSetTest.java
+++ /dev/null
@@ -1,349 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.test.PerformanceTestBase;
-import android.test.PerformanceTestCase;
-
-import java.util.TreeSet;
-import java.util.SortedSet;
-import java.util.Iterator;
-import java.util.Comparator;
-
-/**
- * Implements basic performance test functionality for java.util.TreeSet
- */
-
-public class TreeSetTest extends PerformanceTestBase {
- public static final int ITERATIONS = 1000;
- public static TreeSet<Integer> sSet;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- sSet = new TreeSet<Integer>();
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- sSet.add(i);
- }
- }
-
- @Override
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS);
- return 0;
- }
-
- /**
- *
- * Tests performance for the java.util.TreeSet method Add(Object arg 0)
- *
- */
-
- @SuppressWarnings("unchecked")
- public void testTreeSetAdd() {
- TreeSet<Integer> set = new TreeSet();
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- set.add(i);
- set.add(i);
- set.add(i);
- set.add(i);
- set.add(i);
- set.add(i);
- set.add(i);
- set.add(i);
- set.add(i);
- set.add(i);
- }
- }
-
- /**
- *
- * Tests performance for the java.util.TreeSet method - first()
- *
- */
-
- public void testTreeSetFirst() {
- int value;
- TreeSet<Integer> set = sSet;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- value = set.first();
- value = set.first();
- value = set.first();
- value = set.first();
- value = set.first();
- value = set.first();
- value = set.first();
- value = set.first();
- value = set.first();
- }
- }
-
- /**
- *
- * Tests performance for the java.util.TreeSet method - last()
- *
- */
-
- public void testTreeSetLast() {
- int value;
- TreeSet<Integer> set = sSet;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- value = set.last();
- value = set.last();
- value = set.last();
- value = set.last();
- value = set.last();
- value = set.last();
- value = set.last();
- value = set.last();
- value = set.last();
- }
- }
-
- /**
- *
- * Tests performance of the java.util.TreeSet method- contains(Object arg0)
- *
- */
-
- public void testTreeSetContains() {
- Integer index = new Integer(500);
- boolean flag;
- TreeSet<Integer> set = sSet;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- flag = set.contains(index);
- flag = set.contains(index);
- flag = set.contains(index);
- flag = set.contains(index);
- flag = set.contains(index);
- flag = set.contains(index);
- flag = set.contains(index);
- flag = set.contains(index);
- flag = set.contains(index);
- }
- }
-
- /**
- *
- * Tests performance for the java.util.TreeSet method - size()
- *
- */
-
- public void testTreeSetSize() {
- int value;
- TreeSet<Integer> set = sSet;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- value = set.size();
- value = set.size();
- value = set.size();
- value = set.size();
- value = set.size();
- value = set.size();
- value = set.size();
- value = set.size();
- value = set.size();
- }
- }
-
- /**
- *
- * Tests performance for the java.util.TreeSet method - iterator()
- *
- */
-
- public void testTreeSetIterator() {
- Iterator iterator;
- TreeSet<Integer> set = sSet;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- iterator = set.iterator();
- iterator = set.iterator();
- iterator = set.iterator();
- iterator = set.iterator();
- iterator = set.iterator();
- iterator = set.iterator();
- iterator = set.iterator();
- iterator = set.iterator();
- iterator = set.iterator();
- }
- }
-
- /**
- *
- * Tests performance for the java.util.TreeSet method - comparator()
- *
- */
-
- public void testTreeSetComparator() {
- Comparator comparator;
- TreeSet<Integer> set = sSet;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- comparator = set.comparator();
- comparator = set.comparator();
- comparator = set.comparator();
- comparator = set.comparator();
- comparator = set.comparator();
- comparator = set.comparator();
- comparator = set.comparator();
- comparator = set.comparator();
- comparator = set.comparator();
- }
- }
-
- /**
- *
- * Tests performance for the java.util.TreeSet method - clone()
- *
- */
-
- public void testTreeSetClone() {
- Object obj;
- TreeSet<Integer> set = sSet;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- obj = set.clone();
- obj = set.clone();
- obj = set.clone();
- obj = set.clone();
- obj = set.clone();
- obj = set.clone();
- obj = set.clone();
- obj = set.clone();
- obj = set.clone();
- obj = set.clone();
- }
- }
-
- /**
- *
- * Tests performance of the java.util.TreeSet method - remove(Object arg0)
- *
- */
-
- @SuppressWarnings("unchecked")
- public void testTreeSetRemove() {
- TreeSet<Integer> set = new TreeSet(sSet);
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- set.remove(i);
- set.remove(i);
- set.remove(i);
- set.remove(i);
- set.remove(i);
- set.remove(i);
- set.remove(i);
- set.remove(i);
- set.remove(i);
- set.remove(i);
- }
- }
-
- /**
- *
- * Tests performance of the java.util.TreeSet method- headSet(Integer arg0)
- *
- */
-
- public void testTreeSetHeadSet() {
- Integer value = new Integer(100);
- SortedSet set;
- TreeSet<Integer> tSet = sSet;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- set = tSet.headSet(value);
- set = tSet.headSet(value);
- set = tSet.headSet(value);
- set = tSet.headSet(value);
- set = tSet.headSet(value);
- set = tSet.headSet(value);
- set = tSet.headSet(value);
- set = tSet.headSet(value);
- set = tSet.headSet(value);
- set = tSet.headSet(value);
- }
- }
-
- /**
- *
- * Tests performance of subSet(Integer arg0, Integer arg1) - TreeSet
- *
- */
-
- public void testTreeSetSubSet() {
- Integer value = new Integer(400);
- Integer nInt = new Integer(500);
- SortedSet set;
- TreeSet<Integer> tSet = sSet;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- set = tSet.subSet(value, nInt);
- set = tSet.subSet(value, nInt);
- set = tSet.subSet(value, nInt);
- set = tSet.subSet(value, nInt);
- set = tSet.subSet(value, nInt);
- set = tSet.subSet(value, nInt);
- set = tSet.subSet(value, nInt);
- set = tSet.subSet(value, nInt);
- set = tSet.subSet(value, nInt);
- set = tSet.subSet(value, nInt);
-
- }
-
- }
-
- /**
- *
- * Tests performance of tailSet(Integer arg0) - TreeSet
- *
- */
-
- public void testTreeSetTailSet() {
- Integer value = new Integer(900);
- SortedSet set;
- TreeSet<Integer> tSet = sSet;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- set = tSet.tailSet(value);
- set = tSet.tailSet(value);
- set = tSet.tailSet(value);
- set = tSet.tailSet(value);
- set = tSet.tailSet(value);
- set = tSet.tailSet(value);
- set = tSet.tailSet(value);
- set = tSet.tailSet(value);
- set = tSet.tailSet(value);
- set = tSet.tailSet(value);
- }
- }
-
- /**
- *
- * Tests performance for the java.util.TreeSet method - isEmpty()
- *
- */
-
- public void testTreeSetIsEmpty() {
- boolean flag;
- TreeSet<Integer> tSet = sSet;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- flag = tSet.isEmpty();
- flag = tSet.isEmpty();
- flag = tSet.isEmpty();
- flag = tSet.isEmpty();
- flag = tSet.isEmpty();
- flag = tSet.isEmpty();
- flag = tSet.isEmpty();
- flag = tSet.isEmpty();
- flag = tSet.isEmpty();
- flag = tSet.isEmpty();
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/UriMatcherTest.java b/tests/AndroidTests/src/com/android/unit_tests/UriMatcherTest.java
deleted file mode 100644
index ce3ea75..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/UriMatcherTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.content.UriMatcher;
-import android.net.Uri;
-import android.test.suitebuilder.annotation.SmallTest;
-import junit.framework.TestCase;
-
-public class UriMatcherTest extends TestCase
-{
- static final int ROOT = 0;
- static final int PEOPLE = 1;
- static final int PEOPLE_ID = 2;
- static final int PEOPLE_PHONES = 3;
- static final int PEOPLE_PHONES_ID = 4;
- static final int PEOPLE_ADDRESSES = 5;
- static final int PEOPLE_ADDRESSES_ID = 6;
- static final int PEOPLE_CONTACTMETH = 7;
- static final int PEOPLE_CONTACTMETH_ID = 8;
- static final int CALLS = 9;
- static final int CALLS_ID = 10;
- static final int CALLERID = 11;
- static final int CALLERID_TEXT = 12;
- static final int FILTERRECENT = 13;
-
- @SmallTest
- public void testContentUris() {
- check("content://asdf", UriMatcher.NO_MATCH);
- check("content://people", PEOPLE);
- check("content://people/1", PEOPLE_ID);
- check("content://people/asdf", UriMatcher.NO_MATCH);
- check("content://people/2/phones", PEOPLE_PHONES);
- check("content://people/2/phones/3", PEOPLE_PHONES_ID);
- check("content://people/2/phones/asdf", UriMatcher.NO_MATCH);
- check("content://people/2/addresses", PEOPLE_ADDRESSES);
- check("content://people/2/addresses/3", PEOPLE_ADDRESSES_ID);
- check("content://people/2/addresses/asdf", UriMatcher.NO_MATCH);
- check("content://people/2/contact-methods", PEOPLE_CONTACTMETH);
- check("content://people/2/contact-methods/3", PEOPLE_CONTACTMETH_ID);
- check("content://people/2/contact-methods/asdf", UriMatcher.NO_MATCH);
- check("content://calls", CALLS);
- check("content://calls/1", CALLS_ID);
- check("content://calls/asdf", UriMatcher.NO_MATCH);
- check("content://caller-id", CALLERID);
- check("content://caller-id/asdf", CALLERID_TEXT);
- check("content://caller-id/1", CALLERID_TEXT);
- check("content://filter-recent", FILTERRECENT);
- }
-
- private static final UriMatcher mURLMatcher = new UriMatcher(ROOT);
-
- static
- {
- mURLMatcher.addURI("people", null, PEOPLE);
- mURLMatcher.addURI("people", "#", PEOPLE_ID);
- mURLMatcher.addURI("people", "#/phones", PEOPLE_PHONES);
- mURLMatcher.addURI("people", "#/phones/blah", PEOPLE_PHONES_ID);
- mURLMatcher.addURI("people", "#/phones/#", PEOPLE_PHONES_ID);
- mURLMatcher.addURI("people", "#/addresses", PEOPLE_ADDRESSES);
- mURLMatcher.addURI("people", "#/addresses/#", PEOPLE_ADDRESSES_ID);
- mURLMatcher.addURI("people", "#/contact-methods", PEOPLE_CONTACTMETH);
- mURLMatcher.addURI("people", "#/contact-methods/#", PEOPLE_CONTACTMETH_ID);
- mURLMatcher.addURI("calls", null, CALLS);
- mURLMatcher.addURI("calls", "#", CALLS_ID);
- mURLMatcher.addURI("caller-id", null, CALLERID);
- mURLMatcher.addURI("caller-id", "*", CALLERID_TEXT);
- mURLMatcher.addURI("filter-recent", null, FILTERRECENT);
- }
-
- void check(String uri, int expected)
- {
- int result = mURLMatcher.match(Uri.parse(uri));
- if (result != expected) {
- String msg = "failed on " + uri;
- msg += " expected " + expected + " got " + result;
- throw new RuntimeException(msg);
- }
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/UriTest.java b/tests/AndroidTests/src/com/android/unit_tests/UriTest.java
deleted file mode 100644
index 130beeb..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/UriTest.java
+++ /dev/null
@@ -1,502 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.net.Uri;
-import android.content.ContentUris;
-import android.os.Parcel;
-import android.test.suitebuilder.annotation.SmallTest;
-import junit.framework.TestCase;
-
-import java.io.File;
-import java.util.Arrays;
-
-public class UriTest extends TestCase {
-
- @SmallTest
- public void testToStringWithPathOnly() {
- Uri.Builder builder = new Uri.Builder();
-
- // Not a valid path, but this came from a user's test case.
- builder.path("//foo");
- Uri uri = builder.build();
- assertEquals("//foo", uri.toString());
- }
-
- @SmallTest
- public void testParcelling() {
- parcelAndUnparcel(Uri.parse("foo:bob%20lee"));
- parcelAndUnparcel(Uri.fromParts("foo", "bob lee", "fragment"));
- parcelAndUnparcel(new Uri.Builder()
- .scheme("http")
- .authority("crazybob.org")
- .path("/rss/")
- .encodedQuery("a=b")
- .fragment("foo")
- .build());
- }
-
- private void parcelAndUnparcel(Uri u) {
- Parcel p = Parcel.obtain();
- Uri.writeToParcel(p, u);
- p.setDataPosition(0);
- assertEquals(u, Uri.CREATOR.createFromParcel(p));
-
- p.setDataPosition(0);
- u = u.buildUpon().build();
- Uri.writeToParcel(p, u);
- p.setDataPosition(0);
- assertEquals(u, Uri.CREATOR.createFromParcel(p));
- }
-
- @SmallTest
- public void testBuildUponOpaqueStringUri() {
- Uri u = Uri.parse("bob:lee").buildUpon().scheme("robert").build();
- assertEquals("robert", u.getScheme());
- assertEquals("lee", u.getEncodedSchemeSpecificPart());
- assertEquals("lee", u.getSchemeSpecificPart());
- assertNull(u.getQuery());
- assertNull(u.getPath());
- assertNull(u.getAuthority());
- assertNull(u.getHost());
- }
-
- @SmallTest
- public void testStringUri() {
- assertEquals("bob lee",
- Uri.parse("foo:bob%20lee").getSchemeSpecificPart());
- assertEquals("bob%20lee",
- Uri.parse("foo:bob%20lee").getEncodedSchemeSpecificPart());
- assertEquals("/bob%20lee",
- Uri.parse("foo:/bob%20lee").getEncodedPath());
- assertNull(Uri.parse("foo:bob%20lee").getPath());
- assertEquals("bob%20lee",
- Uri.parse("foo:?bob%20lee").getEncodedQuery());
- assertNull(Uri.parse("foo:bar#?bob%20lee").getQuery());
- assertEquals("bob%20lee",
- Uri.parse("foo:#bob%20lee").getEncodedFragment());
- }
-
- @SmallTest
- public void testStringUriIsHierarchical() {
- assertTrue(Uri.parse("bob").isHierarchical());
- assertFalse(Uri.parse("bob:").isHierarchical());
- }
-
- @SmallTest
- public void testNullUriString() {
- try {
- Uri.parse(null);
- fail();
- } catch (NullPointerException e) {}
- }
-
- @SmallTest
- public void testNullFile() {
- try {
- Uri.fromFile(null);
- fail();
- } catch (NullPointerException e) {}
- }
-
- @SmallTest
- public void testCompareTo() {
- Uri a = Uri.parse("foo:a");
- Uri b = Uri.parse("foo:b");
- Uri b2 = Uri.parse("foo:b");
-
- assertTrue(a.compareTo(b) < 0);
- assertTrue(b.compareTo(a) > 0);
- assertEquals(0, b.compareTo(b2));
- }
-
- @SmallTest
- public void testEqualsAndHashCode() {
-
- Uri a = Uri.parse("http://crazybob.org/test/?foo=bar#tee");
-
- Uri b = new Uri.Builder()
- .scheme("http")
- .authority("crazybob.org")
- .path("/test/")
- .encodedQuery("foo=bar")
- .fragment("tee")
- .build();
-
- // Try alternate builder methods.
- Uri c = new Uri.Builder()
- .scheme("http")
- .encodedAuthority("crazybob.org")
- .encodedPath("/test/")
- .encodedQuery("foo=bar")
- .encodedFragment("tee")
- .build();
-
- assertFalse(Uri.EMPTY.equals(null));
-
- assertEquals(a, b);
- assertEquals(b, c);
- assertEquals(c, a);
-
- assertEquals(a.hashCode(), b.hashCode());
- assertEquals(b.hashCode(), c.hashCode());
- }
-
- @SmallTest
- public void testAuthorityParsing() {
- Uri uri = Uri.parse("http://localhost:42");
- assertEquals("localhost", uri.getHost());
- assertEquals(42, uri.getPort());
-
- uri = Uri.parse("http://bob@localhost:42");
- assertEquals("bob", uri.getUserInfo());
- assertEquals("localhost", uri.getHost());
- assertEquals(42, uri.getPort());
-
- uri = Uri.parse("http://bob%20lee@localhost:42");
- assertEquals("bob lee", uri.getUserInfo());
- assertEquals("bob%20lee", uri.getEncodedUserInfo());
-
- uri = Uri.parse("http://localhost");
- assertEquals("localhost", uri.getHost());
- assertEquals(-1, uri.getPort());
- }
-
- @SmallTest
- public void testBuildUponOpaqueUri() {
- Uri a = Uri.fromParts("foo", "bar", "tee");
- Uri b = a.buildUpon().fragment("new").build();
- assertEquals("new", b.getFragment());
- assertEquals("bar", b.getSchemeSpecificPart());
- assertEquals("foo", b.getScheme());
- }
-
- @SmallTest
- public void testBuildUponEncodedOpaqueUri() {
- Uri a = new Uri.Builder()
- .scheme("foo")
- .encodedOpaquePart("bar")
- .fragment("tee")
- .build();
- Uri b = a.buildUpon().fragment("new").build();
- assertEquals("new", b.getFragment());
- assertEquals("bar", b.getSchemeSpecificPart());
- assertEquals("foo", b.getScheme());
- }
-
- @SmallTest
- public void testPathSegmentDecoding() {
- Uri uri = Uri.parse("foo://bar/a%20a/b%20b");
- assertEquals("a a", uri.getPathSegments().get(0));
- assertEquals("b b", uri.getPathSegments().get(1));
- }
-
- @SmallTest
- public void testSms() {
- Uri base = Uri.parse("content://sms");
- Uri appended = base.buildUpon()
- .appendEncodedPath("conversations/addr=555-1212")
- .build();
- assertEquals("content://sms/conversations/addr=555-1212",
- appended.toString());
- assertEquals(2, appended.getPathSegments().size());
- assertEquals("conversations", appended.getPathSegments().get(0));
- assertEquals("addr=555-1212", appended.getPathSegments().get(1));
- }
-
- @SmallTest
- public void testEncodeWithAllowedChars() {
- String encoded = Uri.encode("Bob:/", "/");
- assertEquals(-1, encoded.indexOf(':'));
- assertTrue(encoded.indexOf('/') > -1);
- }
-
- @SmallTest
- public void testEncodeDecode() {
- code(null);
- code("");
- code("Bob");
- code(":Bob");
- code("::Bob");
- code("Bob::Lee");
- code("Bob:Lee");
- code("Bob::");
- code("Bob:");
- code("::Bob::");
- }
-
- private void code(String s) {
- assertEquals(s, Uri.decode(Uri.encode(s, null)));
- }
-
- @SmallTest
- public void testFile() {
- File f = new File("/tmp/bob");
-
- Uri uri = Uri.fromFile(f);
-
- assertEquals("file:///tmp/bob", uri.toString());
- }
-
- @SmallTest
- public void testQueryParameters() {
- Uri uri = Uri.parse("content://user");
-
- assertEquals(null, uri.getQueryParameter("a"));
-
- uri = uri.buildUpon().appendQueryParameter("a", "b").build();
-
- assertEquals("b", uri.getQueryParameter("a"));
-
- uri = uri.buildUpon().appendQueryParameter("a", "b2").build();
-
- assertEquals(Arrays.asList("b", "b2"), uri.getQueryParameters("a"));
-
- uri = uri.buildUpon().appendQueryParameter("c", "d").build();
-
- assertEquals(Arrays.asList("b", "b2"), uri.getQueryParameters("a"));
- assertEquals("d", uri.getQueryParameter("c"));
- }
-
- @SmallTest
- public void testSchemeOnly() {
- Uri uri = Uri.parse("empty:");
- assertEquals("empty", uri.getScheme());
- assertTrue(uri.isAbsolute());
- assertNull(uri.getPath());
- }
-
- @SmallTest
- public void testEmptyPath() {
- Uri uri = Uri.parse("content://user");
- assertEquals(0, uri.getPathSegments().size());
- }
-
- @SmallTest
- public void testPathOperations() {
- Uri uri = Uri.parse("content://user/a/b");
-
- assertEquals(2, uri.getPathSegments().size());
- assertEquals("b", uri.getLastPathSegment());
-
- Uri first = uri;
- uri = uri.buildUpon().appendPath("c").build();
-
- assertEquals(3, uri.getPathSegments().size());
- assertEquals("c", uri.getLastPathSegment());
- assertEquals("content://user/a/b/c", uri.toString());
-
- uri = ContentUris.withAppendedId(uri, 100);
-
- assertEquals(4, uri.getPathSegments().size());
- assertEquals("100", uri.getLastPathSegment());
- assertEquals(100, ContentUris.parseId(uri));
- assertEquals("content://user/a/b/c/100", uri.toString());
-
- // Make sure the original URI is still intact.
- assertEquals(2, first.getPathSegments().size());
- assertEquals("b", first.getLastPathSegment());
-
- try {
- first.getPathSegments().get(2);
- fail();
- } catch (IndexOutOfBoundsException e) {}
-
- assertEquals(null, Uri.EMPTY.getLastPathSegment());
-
- Uri withC = Uri.parse("foo:/a/b/").buildUpon().appendPath("c").build();
- assertEquals("/a/b/c", withC.getPath());
- }
-
- @SmallTest
- public void testOpaqueUri() {
- Uri uri = Uri.parse("mailto:nobody");
- testOpaqueUri(uri);
-
- uri = uri.buildUpon().build();
- testOpaqueUri(uri);
-
- uri = Uri.fromParts("mailto", "nobody", null);
- testOpaqueUri(uri);
-
- uri = uri.buildUpon().build();
- testOpaqueUri(uri);
-
- uri = new Uri.Builder()
- .scheme("mailto")
- .opaquePart("nobody")
- .build();
- testOpaqueUri(uri);
-
- uri = uri.buildUpon().build();
- testOpaqueUri(uri);
- }
-
- private void testOpaqueUri(Uri uri) {
- assertEquals("mailto", uri.getScheme());
- assertEquals("nobody", uri.getSchemeSpecificPart());
- assertEquals("nobody", uri.getEncodedSchemeSpecificPart());
-
- assertNull(uri.getFragment());
- assertTrue(uri.isAbsolute());
- assertTrue(uri.isOpaque());
- assertFalse(uri.isRelative());
- assertFalse(uri.isHierarchical());
-
- assertNull(uri.getAuthority());
- assertNull(uri.getEncodedAuthority());
- assertNull(uri.getPath());
- assertNull(uri.getEncodedPath());
- assertNull(uri.getUserInfo());
- assertNull(uri.getEncodedUserInfo());
- assertNull(uri.getQuery());
- assertNull(uri.getEncodedQuery());
- assertNull(uri.getHost());
- assertEquals(-1, uri.getPort());
-
- assertTrue(uri.getPathSegments().isEmpty());
- assertNull(uri.getLastPathSegment());
-
- assertEquals("mailto:nobody", uri.toString());
-
- Uri withFragment = uri.buildUpon().fragment("top").build();
- assertEquals("mailto:nobody#top", withFragment.toString());
- }
-
- @SmallTest
- public void testHierarchicalUris() {
- testHierarchical("http", "google.com", "/p1/p2", "query", "fragment");
- testHierarchical("file", null, "/p1/p2", null, null);
- testHierarchical("content", "contact", "/p1/p2", null, null);
- testHierarchical("http", "google.com", "/p1/p2", null, "fragment");
- testHierarchical("http", "google.com", "", null, "fragment");
- testHierarchical("http", "google.com", "", "query", "fragment");
- testHierarchical("http", "google.com", "", "query", null);
- testHierarchical("http", null, "/", "query", null);
- }
-
- private static void testHierarchical(String scheme, String authority,
- String path, String query, String fragment) {
- StringBuilder sb = new StringBuilder();
-
- if (authority != null) {
- sb.append("//").append(authority);
- }
- if (path != null) {
- sb.append(path);
- }
- if (query != null) {
- sb.append('?').append(query);
- }
-
- String ssp = sb.toString();
-
- if (scheme != null) {
- sb.insert(0, scheme + ":");
- }
- if (fragment != null) {
- sb.append('#').append(fragment);
- }
-
- String uriString = sb.toString();
-
- Uri uri = Uri.parse(uriString);
-
- // Run these twice to test caching.
- compareHierarchical(
- uriString, ssp, uri, scheme, authority, path, query, fragment);
- compareHierarchical(
- uriString, ssp, uri, scheme, authority, path, query, fragment);
-
- // Test rebuilt version.
- uri = uri.buildUpon().build();
-
- // Run these twice to test caching.
- compareHierarchical(
- uriString, ssp, uri, scheme, authority, path, query, fragment);
- compareHierarchical(
- uriString, ssp, uri, scheme, authority, path, query, fragment);
-
- // The decoded and encoded versions of the inputs are all the same.
- // We'll test the actual encoding decoding separately.
-
- // Test building with encoded versions.
- Uri built = new Uri.Builder()
- .scheme(scheme)
- .encodedAuthority(authority)
- .encodedPath(path)
- .encodedQuery(query)
- .encodedFragment(fragment)
- .build();
-
- compareHierarchical(
- uriString, ssp, built, scheme, authority, path, query, fragment);
- compareHierarchical(
- uriString, ssp, built, scheme, authority, path, query, fragment);
-
- // Test building with decoded versions.
- built = new Uri.Builder()
- .scheme(scheme)
- .authority(authority)
- .path(path)
- .query(query)
- .fragment(fragment)
- .build();
-
- compareHierarchical(
- uriString, ssp, built, scheme, authority, path, query, fragment);
- compareHierarchical(
- uriString, ssp, built, scheme, authority, path, query, fragment);
-
- // Rebuild.
- built = built.buildUpon().build();
-
- compareHierarchical(
- uriString, ssp, built, scheme, authority, path, query, fragment);
- compareHierarchical(
- uriString, ssp, built, scheme, authority, path, query, fragment);
- }
-
- private static void compareHierarchical(String uriString, String ssp,
- Uri uri,
- String scheme, String authority, String path, String query,
- String fragment) {
- assertEquals(scheme, uri.getScheme());
- assertEquals(authority, uri.getAuthority());
- assertEquals(authority, uri.getEncodedAuthority());
- assertEquals(path, uri.getPath());
- assertEquals(path, uri.getEncodedPath());
- assertEquals(query, uri.getQuery());
- assertEquals(query, uri.getEncodedQuery());
- assertEquals(fragment, uri.getFragment());
- assertEquals(fragment, uri.getEncodedFragment());
- assertEquals(ssp, uri.getSchemeSpecificPart());
-
- if (scheme != null) {
- assertTrue(uri.isAbsolute());
- assertFalse(uri.isRelative());
- } else {
- assertFalse(uri.isAbsolute());
- assertTrue(uri.isRelative());
- }
-
- assertFalse(uri.isOpaque());
- assertTrue(uri.isHierarchical());
-
- assertEquals(uriString, uri.toString());
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/UrlRulesTest.java b/tests/AndroidTests/src/com/android/unit_tests/UrlRulesTest.java
deleted file mode 100644
index a7c19a7..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/UrlRulesTest.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.content.ContentResolver;
-import android.provider.Settings;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import com.google.android.net.UrlRules;
-import static com.google.android.net.UrlRules.Rule;
-
-/** Test loading and matching URL rewrite rules for UrlRules. */
-public class UrlRulesTest extends AndroidTestCase {
- @SmallTest
- public void testEmptyRules() {
- UrlRules rules = new UrlRules(new Rule[] { });
- assertTrue(rules.matchRule("http://foo.bar/") == Rule.DEFAULT);
- }
-
- @SmallTest
- public void testInvalidRule() throws Exception {
- try {
- new Rule("rule", "foo bar");
- } catch (Exception e) {
- // Re-throw any exception except the one we're looking for.
- if (!e.toString().contains("Illegal rule: foo bar")) throw e;
- }
- }
-
- @SmallTest
- public void testRewriteRule() throws UrlRules.RuleFormatException {
- Rule rule = new Rule("test_rule",
- "http://foo.bar/ rewrite http://bar.foo/");
- assertEquals("test_rule", rule.mName);
- assertEquals("http://foo.bar/", rule.mPrefix);
- assertEquals("http://bar.foo/", rule.mRewrite);
- assertFalse(rule.mBlock);
- assertEquals("http://bar.foo/bat", rule.apply("http://foo.bar/bat"));
- }
-
- @SmallTest
- public void testBlockRule() throws UrlRules.RuleFormatException {
- Rule rule = new Rule("test_rule",
- "http://foo.bar/ block");
- assertEquals("test_rule", rule.mName);
- assertEquals("http://foo.bar/", rule.mPrefix);
- assertTrue(rule.mRewrite == null);
- assertTrue(rule.mBlock);
- assertTrue(rule.apply("http://foo.bar/bat") == null);
- }
-
- @SmallTest
- public void testMatchRule() throws UrlRules.RuleFormatException {
- UrlRules rules = new UrlRules(new Rule[] {
- new Rule("12", "http://one.two/ rewrite http://buckle.my.shoe/"),
- new Rule("34", "http://three.four/ rewrite http://close.the.door/"),
- new Rule("56", "http://five.six/ rewrite http://pick.up.sticks/"),
- });
-
- assertTrue(rules.matchRule("https://one.two/") == Rule.DEFAULT);
- assertTrue(rules.matchRule("http://one.two") == Rule.DEFAULT);
- assertEquals("12", rules.matchRule("http://one.two/foo").mName);
-
- String u = "http://five.six/bar";
- assertEquals("http://pick.up.sticks/bar", rules.matchRule(u).apply(u));
- }
-
- @SmallTest
- public void testAmbiguousMatch() throws UrlRules.RuleFormatException {
- // Rule is the longest match wins.
- UrlRules rules = new UrlRules(new Rule[] {
- new Rule("1", "http://xyz/one rewrite http://rewrite/"),
- new Rule("123", "http://xyz/onetwothree rewrite http://rewrite/"),
- new Rule("12", "http://xyz/onetwo rewrite http://rewrite/"),
- });
-
- assertEquals("1", rules.matchRule("http://xyz/one").mName);
- assertEquals("1", rules.matchRule("http://xyz/one...").mName);
- assertEquals("12", rules.matchRule("http://xyz/onetwo...").mName);
- assertEquals("123", rules.matchRule("http://xyz/onetwothree...").mName);
-
- }
-
- @MediumTest
- public void testGservicesRules() {
- // TODO: use a MockContentProvider/MockContentResolver instead.
- ContentResolver r = getContext().getContentResolver();
-
- // Update the digest, so the UrlRules cache is reloaded.
- Settings.Gservices.putString(r, "digest", "testGservicesRules");
- Settings.Gservices.putString(r, "url:blank_test", "");
- Settings.Gservices.putString(r, "url:test",
- "http://foo.bar/ rewrite http://bar.foo/");
-
- UrlRules rules = UrlRules.getRules(r); // Don't crash, please. :)
- assertTrue(rules.matchRule("http://bar.foo/") == Rule.DEFAULT);
-
- Rule rule = rules.matchRule("http://foo.bar/bat");
- assertEquals("test", rule.mName);
- assertEquals("http://foo.bar/", rule.mPrefix);
- assertEquals("http://bar.foo/", rule.mRewrite);
- assertFalse(rule.mBlock);
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/VectorTest.java b/tests/AndroidTests/src/com/android/unit_tests/VectorTest.java
deleted file mode 100644
index 22f9771..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/VectorTest.java
+++ /dev/null
@@ -1,555 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.test.PerformanceTestBase;
-import android.test.PerformanceTestCase;
-
-import java.util.Vector;
-import java.util.Enumeration;
-
-/**
- * Basic Performance Tests for java.util.Vector
- */
-
-@SuppressWarnings("unchecked")
-public class VectorTest extends PerformanceTestBase {
- public static final int ITERATIONS = 1000;
- private Vector<Integer> mVector;
- private Vector<String> mStrVector;
- private String mTestString = "Hello Android";
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mVector = new Vector();
- mStrVector = new Vector();
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- assertTrue(mVector.add(i));
- assertTrue(mStrVector.add(Integer.toString(i)));
- }
- }
-
- @Override
- public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
- intermediates.setInternalIterations(ITERATIONS);
- return 0;
- }
-
- public void testVectorAdd() {
- Vector<Integer> vector = new Vector();
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- vector.add(i);
- vector.add(i);
- vector.add(i);
- vector.add(i);
- vector.add(i);
- vector.add(i);
- vector.add(i);
- vector.add(i);
- vector.add(i);
- vector.add(i);
- }
- }
-
- public void testVectorAdd1() {
- Vector<Integer> vector = new Vector();
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- vector.add(0, i);
- vector.add(0, i);
- vector.add(0, i);
- vector.add(0, i);
- vector.add(0, i);
- vector.add(0, i);
- vector.add(0, i);
- vector.add(0, i);
- vector.add(0, i);
- vector.add(0, i);
- }
- }
-
- public void testVectorToArray() {
- Object array;
- Vector<Integer> vector = mVector;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- array = vector.toArray();
- array = vector.toArray();
- array = vector.toArray();
- array = vector.toArray();
- array = vector.toArray();
- array = vector.toArray();
- array = vector.toArray();
- array = vector.toArray();
- array = vector.toArray();
- array = vector.toArray();
- }
- }
-
- /**
- *
- */
- public void testVectorSize() {
- Vector<Integer> vector = mVector;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- int mLen;
- mLen = vector.size();
- mLen = vector.size();
- mLen = vector.size();
- mLen = vector.size();
- mLen = vector.size();
- mLen = vector.size();
- mLen = vector.size();
- mLen = vector.size();
- mLen = vector.size();
- mLen = vector.size();
- }
- }
-
- public void testVectorGet() {
- int element;
- Vector<Integer> vector = mVector;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- element = vector.get(i);
- element = vector.get(i);
- element = vector.get(i);
- element = vector.get(i);
- element = vector.get(i);
- element = vector.get(i);
- element = vector.get(i);
- element = vector.get(i);
- element = vector.get(i);
- element = vector.get(i);
- }
-
- }
-
- public void testVectorContains() {
- boolean flag;
- Vector<Integer> vector = mVector;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- flag = vector.contains(i);
- flag = vector.contains(i);
- flag = vector.contains(i);
- flag = vector.contains(i);
- flag = vector.contains(i);
- flag = vector.contains(i);
- flag = vector.contains(i);
- flag = vector.contains(i);
- flag = vector.contains(i);
- flag = vector.contains(i);
- }
- }
-
- public void testVectorToArray1() {
- Integer[] rArray = new Integer[100];
- Integer[] array;
- Vector<Integer> vector = mVector;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- array = vector.toArray(rArray);
- array = vector.toArray(rArray);
- array = vector.toArray(rArray);
- array = vector.toArray(rArray);
- array = vector.toArray(rArray);
- array = vector.toArray(rArray);
- array = vector.toArray(rArray);
- array = vector.toArray(rArray);
- array = vector.toArray(rArray);
- array = vector.toArray(rArray);
- }
- }
-
- public void testVectorSet() {
- Vector<Integer> vector = mVector;
- int pos = 5, value = 0;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- vector.set(pos, value);
- vector.set(pos, value);
- vector.set(pos, value);
- vector.set(pos, value);
- vector.set(pos, value);
- vector.set(pos, value);
- vector.set(pos, value);
- vector.set(pos, value);
- vector.set(pos, value);
- vector.set(pos, value);
- }
- }
-
- public void testVectorIndexOf() {
- int index, value = 0;
- Vector<Integer> vector = mVector;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- index = vector.indexOf(value);
- index = vector.indexOf(value);
- index = vector.indexOf(value);
- index = vector.indexOf(value);
- index = vector.indexOf(value);
- index = vector.indexOf(value);
- index = vector.indexOf(value);
- index = vector.indexOf(value);
- index = vector.indexOf(value);
- index = vector.indexOf(value);
- }
- }
-
- public void testVectorLastIndexOf() {
- int index, value = 0;
- Vector<Integer> vector = mVector;
- for (int i = ITERATIONS - 1; i >= 0; i--) {
- index = vector.lastIndexOf(value);
- index = vector.lastIndexOf(value);
- index = vector.lastIndexOf(value);
- index = vector.lastIndexOf(value);
- index = vector.lastIndexOf(value);
- index = vector.lastIndexOf(value);
- index = vector.lastIndexOf(value);
- index = vector.lastIndexOf(value);
- index = vector.lastIndexOf(value);
- index = vector.lastIndexOf(value);
- }
- }
-
- public void testVectorRemove() {
- int index, value = 0;
- Vector<Integer> vector = new Vector(mVector);
- for (int i = 10; i > 0; i--) {
- index = vector.remove(value);
- index = vector.remove(value);
- index = vector.remove(value);
- index = vector.remove(value);
- index = vector.remove(value);
- index = vector.remove(value);
- index = vector.remove(value);
- index = vector.remove(value);
- index = vector.remove(value);
- index = vector.remove(value);
- }
- }
-
- public void testVectorRemoveElement() {
- Vector<Integer> vector = new Vector(mVector);
- for (int i = 10; i > 0; i--) {
- vector.removeElement(i);
- vector.removeElement(i);
- vector.removeElement(i);
- vector.removeElement(i);
- vector.removeElement(i);
- vector.removeElement(i);
- vector.removeElement(i);
- vector.removeElement(i);
- vector.removeElement(i);
- vector.removeElement(i);
- }
- }
-
- public void VectorRemoveElementAt() {
- Vector<Integer> vector = new Vector(mVector);
- for (int i = 10; i > 0; i--) {
- vector.removeElementAt(i);
- vector.removeElementAt(i);
- vector.removeElementAt(i);
- vector.removeElementAt(i);
- vector.removeElementAt(i);
- vector.removeElementAt(i);
- vector.removeElementAt(i);
- vector.removeElementAt(i);
- vector.removeElementAt(i);
- vector.removeElementAt(i);
- }
- }
-
- public void VectorAddAll() {
- Vector<Integer> vector = new Vector(), vector1 = mVector;
-
- boolean flag;
- for (int i = 10; i > 0; i--) {
- flag = vector.addAll(vector1);
- flag = vector.addAll(vector1);
- flag = vector.addAll(vector1);
- flag = vector.addAll(vector1);
- flag = vector.addAll(vector1);
- flag = vector.addAll(vector1);
- flag = vector.addAll(vector1);
- flag = vector.addAll(vector1);
- flag = vector.addAll(vector1);
- flag = vector.addAll(vector1);
- }
- }
-
- public void VectorRemove1() {
- Vector<String> vector = mStrVector;
- for (int j = 1000; j > 0; j--) {
- vector.add("a");
- vector.add("b");
- }
- String s = new String("a");
- boolean flag;
- for (int i = 10; i > 0; i--) {
- flag = vector.remove(s);
- flag = vector.remove(s);
- flag = vector.remove(s);
- flag = vector.remove(s);
- flag = vector.remove(s);
- flag = vector.remove(s);
- flag = vector.remove(s);
- flag = vector.remove(s);
- flag = vector.remove(s);
- flag = vector.remove(s);
- }
- }
-
- public void testVectorAddAll1() {
- Vector<Integer> mEmptyVector = new Vector();
- boolean flag;
- int pos = 0;
- Vector<Integer> vector1 = mVector;
- Vector<Integer> vector = mEmptyVector;
- for (int i = 10; i > 0; i--) {
- flag = vector.addAll(pos, vector1);
- flag = vector.addAll(pos, vector1);
- flag = vector.addAll(pos, vector1);
- flag = vector.addAll(pos, vector1);
- flag = vector.addAll(pos, vector1);
- flag = vector.addAll(pos, vector1);
- flag = vector.addAll(pos, vector1);
- flag = vector.addAll(pos, vector1);
- flag = vector.addAll(pos, vector1);
- flag = vector.addAll(pos, vector1);
- }
- }
-
- public void testVectorClone() {
- Object obj;
- Vector<Integer> vector = mVector;
- for (int i = ITERATIONS - 1; i > 0; i--) {
- obj = vector.clone();
- obj = vector.clone();
- obj = vector.clone();
- obj = vector.clone();
- obj = vector.clone();
- obj = vector.clone();
- obj = vector.clone();
- obj = vector.clone();
- obj = vector.clone();
- obj = vector.clone();
- }
- }
-
- public void testVectorCapacity() {
- int capacity;
- Vector<Integer> vector = mVector;
- for (int i = ITERATIONS - 1; i > 0; i--) {
- capacity = vector.capacity();
- capacity = vector.capacity();
- capacity = vector.capacity();
- capacity = vector.capacity();
- capacity = vector.capacity();
- capacity = vector.capacity();
- capacity = vector.capacity();
- capacity = vector.capacity();
- capacity = vector.capacity();
- capacity = vector.capacity();
- }
- }
-
- public void testVectorHashcode() {
- int element;
- Vector<Integer> vector = mVector;
- for (int i = ITERATIONS - 1; i > 0; i--) {
- element = vector.hashCode();
- element = vector.hashCode();
- element = vector.hashCode();
- element = vector.hashCode();
- element = vector.hashCode();
- element = vector.hashCode();
- element = vector.hashCode();
- element = vector.hashCode();
- element = vector.hashCode();
- element = vector.hashCode();
- }
- }
-
- public void testVectorElements() {
- Enumeration<Integer> elements;
- Vector<Integer> vector = mVector;
- for (int i = ITERATIONS - 1; i > 0; i--) {
- elements = vector.elements();
- elements = vector.elements();
- elements = vector.elements();
- elements = vector.elements();
- elements = vector.elements();
- elements = vector.elements();
- elements = vector.elements();
- elements = vector.elements();
- elements = vector.elements();
- elements = vector.elements();
- }
- }
-
- public void testVectorToString() {
- String str;
- Vector<Integer> vector = mVector;
- for (int i = ITERATIONS - 1; i > 0; i--) {
- str = vector.toString();
- str = vector.toString();
- str = vector.toString();
- str = vector.toString();
- str = vector.toString();
- str = vector.toString();
- str = vector.toString();
- str = vector.toString();
- str = vector.toString();
- str = vector.toString();
- }
- }
-
- public void testVectorElementAt() {
- int element;
- Vector<Integer> vector = mVector;
- for (int i = ITERATIONS - 1; i > 0; i--) {
- element = vector.elementAt(50);
- element = vector.elementAt(50);
- element = vector.elementAt(50);
- element = vector.elementAt(50);
- element = vector.elementAt(50);
- element = vector.elementAt(50);
- element = vector.elementAt(50);
- element = vector.elementAt(50);
- element = vector.elementAt(50);
- element = vector.elementAt(50);
- }
- }
-
- public void testVectorAddElement() {
- int element;
- Vector<String> vector = mStrVector;
- for (int i = ITERATIONS - 1; i > 0; i--) {
- vector.addElement(mTestString);
- vector.addElement(mTestString);
- vector.addElement(mTestString);
- vector.addElement(mTestString);
- vector.addElement(mTestString);
- vector.addElement(mTestString);
- vector.addElement(mTestString);
- vector.addElement(mTestString);
- vector.addElement(mTestString);
- vector.addElement(mTestString);
- }
- }
-
- public void testVectorFirstElement() {
- int element;
- Vector<Integer> vector = mVector;
- for (int i = ITERATIONS - 1; i > 0; i--) {
- element = vector.firstElement();
- element = vector.firstElement();
- element = vector.firstElement();
- element = vector.firstElement();
- element = vector.firstElement();
- element = vector.firstElement();
- element = vector.firstElement();
- element = vector.firstElement();
- element = vector.firstElement();
- element = vector.firstElement();
- }
- }
-
- public void testVectorLastElement() {
- int element;
- Vector<Integer> vector = mVector;
- for (int i = ITERATIONS - 1; i > 0; i--) {
- element = vector.lastElement();
- element = vector.lastElement();
- element = vector.lastElement();
- element = vector.lastElement();
- element = vector.lastElement();
- element = vector.lastElement();
- element = vector.lastElement();
- element = vector.lastElement();
- element = vector.lastElement();
- element = vector.lastElement();
- }
- }
-
- public void testVectorSetElementAt() {
- Vector<Integer> vector = mVector;
- int value1 = 500, value2 = 50;
- for (int i = ITERATIONS - 1; i > 0; i--) {
- vector.setElementAt(value1, value2);
- vector.setElementAt(value1, value2);
- vector.setElementAt(value1, value2);
- vector.setElementAt(value1, value2);
- vector.setElementAt(value1, value2);
- vector.setElementAt(value1, value2);
- vector.setElementAt(value1, value2);
- vector.setElementAt(value1, value2);
- vector.setElementAt(value1, value2);
- vector.setElementAt(value1, value2);
- }
- }
-
- public void testVectorIsEmpty() {
- boolean flag;
- Vector<Integer> vector = mVector;
- for (int i = ITERATIONS - 1; i > 0; i--) {
- flag = vector.isEmpty();
- flag = vector.isEmpty();
- flag = vector.isEmpty();
- flag = vector.isEmpty();
- flag = vector.isEmpty();
- flag = vector.isEmpty();
- flag = vector.isEmpty();
- flag = vector.isEmpty();
- flag = vector.isEmpty();
- flag = vector.isEmpty();
- }
- }
-
- public void testVectorCopyInto() {
- Integer[] rArray = new Integer[ITERATIONS];
- Vector<Integer> vector = mVector;
- for (int i = ITERATIONS - 1; i > 0; i--) {
- vector.copyInto(rArray);
- vector.copyInto(rArray);
- vector.copyInto(rArray);
- vector.copyInto(rArray);
- vector.copyInto(rArray);
- vector.copyInto(rArray);
- vector.copyInto(rArray);
- vector.copyInto(rArray);
- vector.copyInto(rArray);
- vector.copyInto(rArray);
- }
- }
-
- public void testVectorInsertElementAt() {
- Vector<String> vector = mStrVector;
- String string = mTestString;
- for (int i = ITERATIONS - 1; i > 0; i--) {
- vector.insertElementAt(string, i);
- vector.insertElementAt(string, i);
- vector.insertElementAt(string, i);
- vector.insertElementAt(string, i);
- vector.insertElementAt(string, i);
- vector.insertElementAt(string, i);
- vector.insertElementAt(string, i);
- vector.insertElementAt(string, i);
- vector.insertElementAt(string, i);
- vector.insertElementAt(string, i);
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/WebkitTest.java b/tests/AndroidTests/src/com/android/unit_tests/WebkitTest.java
deleted file mode 100644
index 4a0519e..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/WebkitTest.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests;
-
-import android.test.AndroidTestCase;
-import android.text.format.DateFormat;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.util.Log;
-import android.webkit.DateSorter;
-
-import java.util.Calendar;
-import java.util.Date;
-
-public class WebkitTest extends AndroidTestCase {
-
- private static final String LOGTAG = WebkitTest.class.getName();
-
- @MediumTest
- public void testDateSorter() throws Exception {
- /**
- * Note: check the logging output manually to test
- * nothing automated yet, besides object creation
- */
- DateSorter dateSorter = new DateSorter(mContext);
- Date date = new Date();
-
- for (int i = 0; i < DateSorter.DAY_COUNT; i++) {
- Log.i(LOGTAG, "Boundary " + i + " " + dateSorter.getBoundary(i));
- Log.i(LOGTAG, "Label " + i + " " + dateSorter.getLabel(i));
- }
-
- Calendar c = Calendar.getInstance();
- long time = c.getTimeInMillis();
- int index;
- Log.i(LOGTAG, "now: " + dateSorter.getIndex(time));
- for (int i = 0; i < 20; i++) {
- time -= 8 * 60 * 60 * 1000; // 8 hours
- date.setTime(time);
- c.setTime(date);
- index = dateSorter.getIndex(time);
- Log.i(LOGTAG, "time: " + DateFormat.format("yyyy/MM/dd kk:mm:ss", c).toString() +
- " " + index + " " + dateSorter.getLabel(index));
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/AbortReceiver.java b/tests/AndroidTests/src/com/android/unit_tests/activity/AbortReceiver.java
deleted file mode 100644
index d9d6101..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/AbortReceiver.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.content.Context;
-import android.content.Intent;
-import android.content.BroadcastReceiver;
-import android.os.RemoteException;
-import android.os.IBinder;
-import android.os.Parcel;
-import android.util.Log;
-
-public class AbortReceiver extends BroadcastReceiver
-{
- public AbortReceiver()
- {
- }
-
- public void onReceive(Context context, Intent intent)
- {
- //Log.i("AbortReceiver", "onReceiveIntent!");
- try {
- IBinder caller = intent.getIBinderExtra("caller");
- Parcel data = Parcel.obtain();
- data.writeInterfaceToken(LaunchpadActivity.LAUNCH);
- data.writeString(LaunchpadActivity.RECEIVER_ABORT);
- caller.transact(LaunchpadActivity.GOT_RECEIVE_TRANSACTION, data, null, 0);
- data.recycle();
- } catch (RemoteException ex) {
- }
-
- // abort the broadcast!!!
- abortBroadcast();
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/ActivityManagerTest.java b/tests/AndroidTests/src/com/android/unit_tests/activity/ActivityManagerTest.java
deleted file mode 100644
index ab91761..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/ActivityManagerTest.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.app.ActivityManager;
-import android.content.Context;
-import android.content.pm.ConfigurationInfo;
-import android.content.res.Configuration;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.test.suitebuilder.annotation.Suppress;
-
-import java.util.Iterator;
-import java.util.List;
-
-public class ActivityManagerTest extends AndroidTestCase {
-
- protected Context mContext;
- protected ActivityManager mActivityManager;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mContext = getContext();
- mActivityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
- }
-
- // TODO should write a test for getRecentTasks()
- // TODO should write a test for getRunningTasks()
- // TODO should write a test for getMemoryInfo()
-
- // TODO: Find a way to re-enable this. It fails if any other app has failed during startup.
- // This is probably an OK assumption given the desired system status when we run unit tests,
- // but it's not necessarily the right assumption for a unit test.
- @Suppress
- public void disabledTestErrorTasksEmpty() throws Exception {
-
- List<ActivityManager.ProcessErrorStateInfo> errList;
-
- errList = mActivityManager.getProcessesInErrorState();
-
- // test: confirm list is empty
- assertNull(errList);
- }
-
- // TODO: Force an activity into an error state - then see if we can catch it here?
- @SmallTest
- public void testErrorTasksWithError() throws Exception {
-
- List<ActivityManager.ProcessErrorStateInfo> errList;
-
- // TODO force another process into an error condition. How?
-
- // test: confirm error list length is at least 1 under varying query lengths
-// checkErrorListMax(1,-1);
-
- errList = mActivityManager.getProcessesInErrorState();
-
- // test: the list itself is healthy
- checkErrorListSanity(errList);
-
- // test: confirm our application shows up in the list
- }
-
- // TODO: Force an activity into an ANR state - then see if we can catch it here?
- @SmallTest
- public void testErrorTasksWithANR() throws Exception {
-
- List<ActivityManager.ProcessErrorStateInfo> errList;
-
- // TODO: force an application into an ANR state
-
- errList = mActivityManager.getProcessesInErrorState();
-
- // test: the list itself is healthy
- checkErrorListSanity(errList);
-
- // test: confirm our ANR'ing application shows up in the list
- }
-
- @SmallTest
- public void testGetDeviceConfigurationInfo() throws Exception {
- ConfigurationInfo config = mActivityManager.getDeviceConfigurationInfo();
- assertNotNull(config);
- // Validate values against configuration retrieved from resources
- Configuration vconfig = mContext.getResources().getConfiguration();
- assertNotNull(vconfig);
- assertEquals(config.reqKeyboardType, vconfig.keyboard);
- assertEquals(config.reqTouchScreen, vconfig.touchscreen);
- assertEquals(config.reqNavigation, vconfig.navigation);
- if (vconfig.navigation == Configuration.NAVIGATION_NONAV) {
- assertNotNull(config.reqInputFeatures & ConfigurationInfo.INPUT_FEATURE_FIVE_WAY_NAV);
- }
- if (vconfig.keyboard != Configuration.KEYBOARD_UNDEFINED) {
- assertNotNull(config.reqInputFeatures & ConfigurationInfo.INPUT_FEATURE_HARD_KEYBOARD);
- }
- }
-
- // If any entries in appear in the list, sanity check them against all running applications
- private void checkErrorListSanity(List<ActivityManager.ProcessErrorStateInfo> errList) {
- if (errList == null) return;
-
- Iterator<ActivityManager.ProcessErrorStateInfo> iter = errList.iterator();
- while (iter.hasNext()) {
- ActivityManager.ProcessErrorStateInfo info = iter.next();
- assertNotNull(info);
- // sanity checks
- assertTrue((info.condition == ActivityManager.ProcessErrorStateInfo.CRASHED) ||
- (info.condition == ActivityManager.ProcessErrorStateInfo.NOT_RESPONDING));
- // TODO look at each of these and consider a stronger test
- // TODO can we cross-check at the process name via some other API?
- // TODO is there a better test for strings, e.g. "assertIsLegalString")
- assertNotNull(info.processName);
- // reasonableness test for info.pid ?
- assertNotNull(info.longMsg);
- assertNotNull(info.shortMsg);
- // is there any reasonable test for the crashData? Probably not.
- }
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/ActivityTests.java b/tests/AndroidTests/src/com/android/unit_tests/activity/ActivityTests.java
deleted file mode 100644
index cffc60a..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/ActivityTests.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import junit.framework.TestSuite;
-
-public class ActivityTests {
- public static final boolean DEBUG_LIFECYCLE = false;
-
- public static TestSuite suite() {
- TestSuite suite = new TestSuite(ActivityTests.class.getName());
-
- suite.addTestSuite(BroadcastTest.class);
- suite.addTestSuite(IntentSenderTest.class);
- suite.addTestSuite(ActivityManagerTest.class);
- suite.addTestSuite(LaunchTest.class);
- suite.addTestSuite(LifecycleTest.class);
- suite.addTestSuite(ServiceTest.class);
- suite.addTestSuite(MetaDataTest.class);
- // Remove temporarily until bug 1171309 is fixed.
- //suite.addTestSuite(SubActivityTest.class);
- suite.addTestSuite(SetTimeZonePermissionsTest.class);
-
- return suite;
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/ActivityTestsBase.java b/tests/AndroidTests/src/com/android/unit_tests/activity/ActivityTestsBase.java
deleted file mode 100644
index f960969..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/ActivityTestsBase.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.test.AndroidTestCase;
-import android.test.PerformanceTestCase;
-
-public class ActivityTestsBase extends AndroidTestCase
- implements PerformanceTestCase, LaunchpadActivity.CallingTest {
- public static final String PERMISSION_GRANTED =
- "com.android.unit_tests.permission.TEST_GRANTED";
- public static final String PERMISSION_DENIED =
- "com.android.unit_tests.permission.TEST_DENIED";
-
- protected Intent mIntent;
-
- private PerformanceTestCase.Intermediates mIntermediates;
- private String mExpecting;
-
- // Synchronization of activity result.
- private boolean mFinished;
- private int mResultCode = 0;
- private Intent mData;
- private RuntimeException mResultStack = null;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mIntent = new Intent(mContext, LaunchpadActivity.class);
- mIntermediates = null;
- }
-
- @Override
- protected void tearDown() throws Exception {
- mIntermediates = null;
- super.tearDown();
- }
-
- public boolean isPerformanceOnly() {
- return false;
- }
-
- public void setInternalIterations(int count) {
- }
-
- public void startTiming(boolean realTime) {
- if (mIntermediates != null) {
- mIntermediates.startTiming(realTime);
- }
- }
-
- public void addIntermediate(String name) {
- if (mIntermediates != null) {
- mIntermediates.addIntermediate(name);
- }
- }
-
- public void addIntermediate(String name, long timeInNS) {
- if (mIntermediates != null) {
- mIntermediates.addIntermediate(name, timeInNS);
- }
- }
-
- public void finishTiming(boolean realTime) {
- if (mIntermediates != null) {
- mIntermediates.finishTiming(realTime);
- }
- }
-
- public void activityFinished(int resultCode, Intent data, RuntimeException where) {
- finishWithResult(resultCode, data, where);
- }
-
- public Intent editIntent() {
- return mIntent;
- }
-
- public Context getContext() {
- return mContext;
- }
-
- public int startPerformance(Intermediates intermediates) {
- mIntermediates = intermediates;
- return 1;
- }
-
- public void finishGood() {
- finishWithResult(Activity.RESULT_OK, null);
- }
-
- public void finishBad(String error) {
- finishWithResult(Activity.RESULT_CANCELED, (new Intent()).setAction(error));
- }
-
- public void finishWithResult(int resultCode, Intent data) {
- RuntimeException where = new RuntimeException("Original error was here");
- where.fillInStackTrace();
- finishWithResult(resultCode, data, where);
- }
-
- public void finishWithResult(int resultCode, Intent data, RuntimeException where) {
- synchronized (this) {
- //System.out.println("*** Activity finished!!");
- mResultCode = resultCode;
- mData = data;
- mResultStack = where;
- mFinished = true;
- notifyAll();
- }
- }
-
- public int runLaunchpad(String action) {
- LaunchpadActivity.setCallingTest(this);
-
- synchronized (this) {
- mIntent.setAction(action);
- mFinished = false;
- //System.out.println("*** Starting: " + mIntent);
- mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- mContext.startActivity(mIntent);
- }
-
- return waitForResultOrThrow(60 * 1000);
- }
-
- public int waitForResultOrThrow(int timeoutMs) {
- return waitForResultOrThrow(timeoutMs, null);
- }
-
- public int waitForResultOrThrow(int timeoutMs, String expected) {
- int res = waitForResult(timeoutMs, expected);
-
- if (res == Activity.RESULT_CANCELED) {
- if (mResultStack != null) {
- throw new RuntimeException(
- mData != null ? mData.toString() : "Unable to launch",
- mResultStack);
- } else {
- throw new RuntimeException(
- mData != null ? mData.toString() : "Unable to launch");
- }
- }
- return res;
- }
-
- public int waitForResult(int timeoutMs, String expected) {
- mExpecting = expected;
-
- long endTime = System.currentTimeMillis() + timeoutMs;
-
- boolean timeout = false;
- synchronized (this) {
- while (!mFinished) {
- long delay = endTime - System.currentTimeMillis();
- if (delay < 0) {
- timeout = true;
- break;
- }
-
- try {
- wait(delay);
- } catch (java.lang.InterruptedException e) {
- // do nothing
- }
- }
- }
-
- mFinished = false;
-
- if (timeout) {
- mResultCode = Activity.RESULT_CANCELED;
- onTimeout();
- }
- return mResultCode;
- }
-
- public int getResultCode() {
- return mResultCode;
- }
-
- public Intent getResultData() {
- return mData;
- }
-
- public RuntimeException getResultStack() {
- return mResultStack;
- }
-
- public void onTimeout() {
- String msg = mExpecting == null
- ? "Timeout" : ("Timeout while expecting " + mExpecting);
- finishWithResult(Activity.RESULT_CANCELED, (new Intent()).setAction(msg));
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/BroadcastTest.java b/tests/AndroidTests/src/com/android/unit_tests/activity/BroadcastTest.java
deleted file mode 100644
index 7f6db3c..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/BroadcastTest.java
+++ /dev/null
@@ -1,536 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.app.Activity;
-import android.app.ActivityManagerNative;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.os.Binder;
-import android.os.Bundle;
-import android.os.IBinder;
-import android.os.Parcel;
-import android.test.FlakyTest;
-import android.test.suitebuilder.annotation.Suppress;
-import android.util.Log;
-
-import java.util.Arrays;
-
-public class BroadcastTest extends ActivityTestsBase {
- public static final int BROADCAST_TIMEOUT = 5 * 1000;
-
- public static final String BROADCAST_REGISTERED =
- "com.android.unit_tests.activity.BROADCAST_REGISTERED";
- public static final String BROADCAST_LOCAL =
- "com.android.unit_tests.activity.BROADCAST_LOCAL";
- public static final String BROADCAST_LOCAL_GRANTED =
- "com.android.unit_tests.activity.BROADCAST_LOCAL_GRANTED";
- public static final String BROADCAST_LOCAL_DENIED =
- "com.android.unit_tests.activity.BROADCAST_LOCAL_DENIED";
- public static final String BROADCAST_REMOTE =
- "com.android.unit_tests.activity.BROADCAST_REMOTE";
- public static final String BROADCAST_REMOTE_GRANTED =
- "com.android.unit_tests.activity.BROADCAST_REMOTE_GRANTED";
- public static final String BROADCAST_REMOTE_DENIED =
- "com.android.unit_tests.activity.BROADCAST_REMOTE_DENIED";
- public static final String BROADCAST_ALL =
- "com.android.unit_tests.activity.BROADCAST_ALL";
- public static final String BROADCAST_MULTI =
- "com.android.unit_tests.activity.BROADCAST_MULTI";
- public static final String BROADCAST_ABORT =
- "com.android.unit_tests.activity.BROADCAST_ABORT";
-
- public static final String BROADCAST_STICKY1 =
- "com.android.unit_tests.activity.BROADCAST_STICKY1";
- public static final String BROADCAST_STICKY2 =
- "com.android.unit_tests.activity.BROADCAST_STICKY2";
-
- public static final String BROADCAST_FAIL_REGISTER =
- "com.android.unit_tests.activity.BROADCAST_FAIL_REGISTER";
- public static final String BROADCAST_FAIL_BIND =
- "com.android.unit_tests.activity.BROADCAST_FAIL_BIND";
-
- public static final String RECEIVER_REG = "receiver-reg";
- public static final String RECEIVER_LOCAL = "receiver-local";
- public static final String RECEIVER_REMOTE = "receiver-remote";
- public static final String RECEIVER_ABORT = "receiver-abort";
- public static final String RECEIVER_RESULTS = "receiver-results";
-
- public static final String DATA_1 = "one";
- public static final String DATA_2 = "two";
-
- public static final int GOT_RECEIVE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION;
- public static final int ERROR_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION + 1;
-
- private String[] mExpectedReceivers = null;
- private int mNextReceiver;
-
- private String[] mExpectedData = null;
- private boolean[] mReceivedData = null;
-
- boolean mReceiverRegistered = false;
-
- public void setExpectedReceivers(String[] receivers) {
- mExpectedReceivers = receivers;
- mNextReceiver = 0;
- }
-
- public void setExpectedData(String[] data) {
- mExpectedData = data;
- mReceivedData = new boolean[data.length];
- }
-
- public void onTimeout() {
- String msg = "Timeout";
- if (mExpectedReceivers != null && mNextReceiver < mExpectedReceivers.length) {
- msg = msg + " waiting for " + mExpectedReceivers[mNextReceiver];
- }
- finishBad(msg);
- }
-
- public Intent makeBroadcastIntent(String action) {
- Intent intent = new Intent(action, null);
- intent.putExtra("caller", mCallTarget);
- return intent;
- }
-
- public void finishWithResult(int resultCode, Intent data) {
- unregisterMyReceiver();
- super.finishWithResult(resultCode, data);
- }
-
- public final void gotReceive(String name, Intent intent) {
- synchronized (this) {
-
- //System.out.println("Got receive: " + name);
- //System.out.println(mNextReceiver + " in " + mExpectedReceivers);
- //new RuntimeException("stack").printStackTrace();
-
- addIntermediate(name);
-
- if (mExpectedData != null) {
- int n = mExpectedData.length;
- int i;
- boolean prev = false;
- for (i = 0; i < n; i++) {
- if (mExpectedData[i].equals(intent.getStringExtra("test"))) {
- if (mReceivedData[i]) {
- prev = true;
- continue;
- }
- mReceivedData[i] = true;
- break;
- }
- }
- if (i >= n) {
- if (prev) {
- finishBad("Receive got data too many times: "
- + intent.getStringExtra("test"));
- } else {
- finishBad("Receive got unexpected data: "
- + intent.getStringExtra("test"));
- }
- new RuntimeException("stack").printStackTrace();
- return;
- }
- }
-
- if (mNextReceiver >= mExpectedReceivers.length) {
- finishBad("Got too many onReceiveIntent() calls!");
-// System.out.println("Too many intents received: now at "
-// + mNextReceiver + ", expect list: "
-// + Arrays.toString(mExpectedReceivers));
- fail("Got too many onReceiveIntent() calls!");
- } else if (!mExpectedReceivers[mNextReceiver].equals(name)) {
- finishBad("Receive out of order: got " + name
- + " but expected "
- + mExpectedReceivers[mNextReceiver]);
- fail("Receive out of order: got " + name
- + " but expected "
- + mExpectedReceivers[mNextReceiver]);
- } else {
- mNextReceiver++;
- if (mNextReceiver == mExpectedReceivers.length) {
- finishTest();
- }
- }
- }
- }
-
- public void registerMyReceiver(IntentFilter filter, String permission) {
- mReceiverRegistered = true;
- //System.out.println("Registering: " + mReceiver);
- getContext().registerReceiver(mReceiver, filter, permission, null);
- }
-
- public void unregisterMyReceiver() {
- if (mReceiverRegistered) {
- unregisterMyReceiverNoCheck();
- }
- }
-
- public void unregisterMyReceiverNoCheck() {
- mReceiverRegistered = false;
- //System.out.println("Unregistering: " + mReceiver);
- getContext().unregisterReceiver(mReceiver);
- }
-
- public void onRegisteredReceiver(Intent intent) {
- gotReceive(RECEIVER_REG, intent);
- }
-
- private Binder mCallTarget = new Binder() {
- public boolean onTransact(int code, Parcel data, Parcel reply,
- int flags) {
- data.setDataPosition(0);
- data.enforceInterface(LaunchpadActivity.LAUNCH);
- if (code == GOT_RECEIVE_TRANSACTION) {
- String name = data.readString();
- gotReceive(name, null);
- return true;
- } else if (code == ERROR_TRANSACTION) {
- finishBad(data.readString());
- return true;
- }
- return false;
- }
- };
-
- private void finishTest() {
- if (mReceiverRegistered) {
- addIntermediate("before-unregister");
- unregisterMyReceiver();
- }
- finishTiming(true);
- finishGood();
- }
-
- private BroadcastReceiver mReceiver = new BroadcastReceiver() {
- public void onReceive(Context context, Intent intent) {
- //System.out.println("Receive in: " + this + ": " + intent);
- onRegisteredReceiver(intent);
- }
- };
-
- // Mark flaky until http://b/issue?id=1191607 is resolved.
- @FlakyTest(tolerance=2)
- public void testRegistered() throws Exception {
- runLaunchpad(LaunchpadActivity.BROADCAST_REGISTERED);
- }
-
- public void testLocal() throws Exception {
- runLaunchpad(LaunchpadActivity.BROADCAST_LOCAL);
- }
-
- public void testRemote() throws Exception {
- runLaunchpad(LaunchpadActivity.BROADCAST_REMOTE);
- }
-
- public void testAbort() throws Exception {
- runLaunchpad(LaunchpadActivity.BROADCAST_ABORT);
- }
-
- @FlakyTest(tolerance=2)
- public void testAll() throws Exception {
- runLaunchpad(LaunchpadActivity.BROADCAST_ALL);
- }
-
- @FlakyTest(tolerance=2)
- public void testMulti() throws Exception {
- runLaunchpad(LaunchpadActivity.BROADCAST_MULTI);
- }
-
- private class TestBroadcastReceiver extends BroadcastReceiver {
- public boolean mHaveResult = false;
-
- @Override
- public void onReceive(Context context, Intent intent) {
- synchronized (BroadcastTest.this) {
- mHaveResult = true;
- BroadcastTest.this.notifyAll();
- }
- }
- }
-
- public void testResult() throws Exception {
- TestBroadcastReceiver broadcastReceiver = new TestBroadcastReceiver();
-
- synchronized (this) {
- Bundle map = new Bundle();
- map.putString("foo", "you");
- map.putString("remove", "me");
- getContext().sendOrderedBroadcast(
- new Intent("com.android.unit_tests.activity.BROADCAST_RESULT"),
- null, broadcastReceiver, null, 1, "foo", map);
- while (!broadcastReceiver.mHaveResult) {
- try {
- wait();
- } catch (InterruptedException e) {
- }
- }
-
- //System.out.println("Code: " + mResultCode + ", data: " + mResultData);
- //System.out.println("Extras: " + mResultExtras);
-
- assertEquals("Incorrect code: " + broadcastReceiver.getResultCode(),
- 3, broadcastReceiver.getResultCode());
-
- assertEquals("bar", broadcastReceiver.getResultData());
-
- Bundle resultExtras = broadcastReceiver.getResultExtras(false);
- assertEquals("them", resultExtras.getString("bar"));
- assertEquals("you", resultExtras.getString("foo"));
- assertNull(resultExtras.getString("remove"));
- }
- }
-
- public void testSetSticky() throws Exception {
- Intent intent = new Intent(LaunchpadActivity.BROADCAST_STICKY1, null);
- intent.putExtra("test", LaunchpadActivity.DATA_1);
- ActivityManagerNative.getDefault().unbroadcastIntent(null, intent);
-
- ActivityManagerNative.broadcastStickyIntent(intent, null);
- addIntermediate("finished-broadcast");
-
- IntentFilter filter = new IntentFilter(LaunchpadActivity.BROADCAST_STICKY1);
- Intent sticky = getContext().registerReceiver(null, filter);
- assertNotNull("Sticky not found", sticky);
- assertEquals(LaunchpadActivity.DATA_1, sticky.getStringExtra("test"));
- }
-
- public void testClearSticky() throws Exception {
- Intent intent = new Intent(LaunchpadActivity.BROADCAST_STICKY1, null);
- intent.putExtra("test", LaunchpadActivity.DATA_1);
- ActivityManagerNative.broadcastStickyIntent(intent, null);
-
- ActivityManagerNative.getDefault().unbroadcastIntent(
- null, new Intent(LaunchpadActivity.BROADCAST_STICKY1, null));
- addIntermediate("finished-unbroadcast");
-
- IntentFilter filter = new IntentFilter(LaunchpadActivity.BROADCAST_STICKY1);
- Intent sticky = getContext().registerReceiver(null, filter);
- assertNull("Sticky not found", sticky);
- }
-
- public void testReplaceSticky() throws Exception {
- Intent intent = new Intent(LaunchpadActivity.BROADCAST_STICKY1, null);
- intent.putExtra("test", LaunchpadActivity.DATA_1);
- ActivityManagerNative.broadcastStickyIntent(intent, null);
- intent.putExtra("test", LaunchpadActivity.DATA_2);
-
- ActivityManagerNative.broadcastStickyIntent(intent, null);
- addIntermediate("finished-broadcast");
-
- IntentFilter filter = new IntentFilter(LaunchpadActivity.BROADCAST_STICKY1);
- Intent sticky = getContext().registerReceiver(null, filter);
- assertNotNull("Sticky not found", sticky);
- assertEquals(LaunchpadActivity.DATA_2, sticky.getStringExtra("test"));
- }
-
- // Marking flaky until http://b/issue?id=1191337 is resolved
- @FlakyTest(tolerance=2)
- public void testReceiveSticky() throws Exception {
- Intent intent = new Intent(LaunchpadActivity.BROADCAST_STICKY1, null);
- intent.putExtra("test", LaunchpadActivity.DATA_1);
- ActivityManagerNative.broadcastStickyIntent(intent, null);
-
- runLaunchpad(LaunchpadActivity.BROADCAST_STICKY1);
- }
-
- // Marking flaky until http://b/issue?id=1191337 is resolved
- @FlakyTest(tolerance=2)
- public void testReceive2Sticky() throws Exception {
- Intent intent = new Intent(LaunchpadActivity.BROADCAST_STICKY1, null);
- intent.putExtra("test", LaunchpadActivity.DATA_1);
- ActivityManagerNative.broadcastStickyIntent(intent, null);
- intent = new Intent(LaunchpadActivity.BROADCAST_STICKY2, null);
- intent.putExtra("test", LaunchpadActivity.DATA_2);
- ActivityManagerNative.broadcastStickyIntent(intent, null);
-
- runLaunchpad(LaunchpadActivity.BROADCAST_STICKY2);
- }
-
- public void testRegisteredReceivePermissionGranted() throws Exception {
- setExpectedReceivers(new String[]{RECEIVER_REG});
- registerMyReceiver(new IntentFilter(BROADCAST_REGISTERED), PERMISSION_GRANTED);
- addIntermediate("after-register");
- getContext().sendBroadcast(makeBroadcastIntent(BROADCAST_REGISTERED));
- waitForResultOrThrow(BROADCAST_TIMEOUT);
- }
-
- public void testRegisteredReceivePermissionDenied() throws Exception {
- setExpectedReceivers(new String[]{RECEIVER_RESULTS});
- registerMyReceiver(new IntentFilter(BROADCAST_REGISTERED), PERMISSION_DENIED);
- addIntermediate("after-register");
-
- BroadcastReceiver finish = new BroadcastReceiver() {
- public void onReceive(Context context, Intent intent) {
- gotReceive(RECEIVER_RESULTS, intent);
- }
- };
-
- getContext().sendOrderedBroadcast(
- makeBroadcastIntent(BROADCAST_REGISTERED),
- null, finish, null, Activity.RESULT_CANCELED, null, null);
- waitForResultOrThrow(BROADCAST_TIMEOUT);
- }
-
- public void testRegisteredBroadcastPermissionGranted() throws Exception {
- setExpectedReceivers(new String[]{RECEIVER_REG});
- registerMyReceiver(new IntentFilter(BROADCAST_REGISTERED), null);
- addIntermediate("after-register");
- getContext().sendBroadcast(
- makeBroadcastIntent(BROADCAST_REGISTERED),
- PERMISSION_GRANTED);
- waitForResultOrThrow(BROADCAST_TIMEOUT);
- }
-
- public void testRegisteredBroadcastPermissionDenied() throws Exception {
- setExpectedReceivers(new String[]{RECEIVER_RESULTS});
- registerMyReceiver(new IntentFilter(BROADCAST_REGISTERED), null);
- addIntermediate("after-register");
-
- BroadcastReceiver finish = new BroadcastReceiver() {
- public void onReceive(Context context, Intent intent) {
- gotReceive(RECEIVER_RESULTS, intent);
- }
- };
-
- getContext().sendOrderedBroadcast(
- makeBroadcastIntent(BROADCAST_REGISTERED),
- PERMISSION_DENIED, finish, null, Activity.RESULT_CANCELED,
- null, null);
- waitForResultOrThrow(BROADCAST_TIMEOUT);
- }
-
- public void testLocalReceivePermissionGranted() throws Exception {
- setExpectedReceivers(new String[]{RECEIVER_LOCAL});
- getContext().sendBroadcast(makeBroadcastIntent(BROADCAST_LOCAL_GRANTED));
- waitForResultOrThrow(BROADCAST_TIMEOUT);
- }
-
- public void testLocalReceivePermissionDenied() throws Exception {
- setExpectedReceivers(new String[]{RECEIVER_RESULTS});
-
- BroadcastReceiver finish = new BroadcastReceiver() {
- public void onReceive(Context context, Intent intent) {
- gotReceive(RECEIVER_RESULTS, intent);
- }
- };
-
- getContext().sendOrderedBroadcast(
- makeBroadcastIntent(BROADCAST_LOCAL_DENIED),
- null, finish, null, Activity.RESULT_CANCELED,
- null, null);
- waitForResultOrThrow(BROADCAST_TIMEOUT);
- }
-
- public void testLocalBroadcastPermissionGranted() throws Exception {
- setExpectedReceivers(new String[]{RECEIVER_LOCAL});
- getContext().sendBroadcast(
- makeBroadcastIntent(BROADCAST_LOCAL),
- PERMISSION_GRANTED);
- waitForResultOrThrow(BROADCAST_TIMEOUT);
- }
-
- public void testLocalBroadcastPermissionDenied() throws Exception {
- setExpectedReceivers(new String[]{RECEIVER_RESULTS});
-
- BroadcastReceiver finish = new BroadcastReceiver() {
- public void onReceive(Context context, Intent intent) {
- gotReceive(RECEIVER_RESULTS, intent);
- }
- };
-
- getContext().sendOrderedBroadcast(
- makeBroadcastIntent(BROADCAST_LOCAL),
- PERMISSION_DENIED, finish, null, Activity.RESULT_CANCELED,
- null, null);
- waitForResultOrThrow(BROADCAST_TIMEOUT);
- }
-
- public void testRemoteReceivePermissionGranted() throws Exception {
- setExpectedReceivers(new String[]{RECEIVER_REMOTE});
- getContext().sendBroadcast(makeBroadcastIntent(BROADCAST_REMOTE_GRANTED));
- waitForResultOrThrow(BROADCAST_TIMEOUT);
- }
-
- public void testRemoteReceivePermissionDenied() throws Exception {
- setExpectedReceivers(new String[]{RECEIVER_RESULTS});
-
- BroadcastReceiver finish = new BroadcastReceiver() {
- public void onReceive(Context context, Intent intent) {
- gotReceive(RECEIVER_RESULTS, intent);
- }
- };
-
- getContext().sendOrderedBroadcast(
- makeBroadcastIntent(BROADCAST_REMOTE_DENIED),
- null, finish, null, Activity.RESULT_CANCELED,
- null, null);
- waitForResultOrThrow(BROADCAST_TIMEOUT);
- }
-
- public void testRemoteBroadcastPermissionGranted() throws Exception {
- setExpectedReceivers(new String[]{RECEIVER_REMOTE});
- getContext().sendBroadcast(
- makeBroadcastIntent(BROADCAST_REMOTE),
- PERMISSION_GRANTED);
- waitForResultOrThrow(BROADCAST_TIMEOUT);
- }
-
- public void testRemoteBroadcastPermissionDenied() throws Exception {
- setExpectedReceivers(new String[]{RECEIVER_RESULTS});
-
- BroadcastReceiver finish = new BroadcastReceiver() {
- public void onReceive(Context context, Intent intent) {
- gotReceive(RECEIVER_RESULTS, intent);
- }
- };
-
- getContext().sendOrderedBroadcast(
- makeBroadcastIntent(BROADCAST_REMOTE),
- PERMISSION_DENIED, finish, null, Activity.RESULT_CANCELED,
- null, null);
- waitForResultOrThrow(BROADCAST_TIMEOUT);
- }
-
- public void testReceiverCanNotRegister() throws Exception {
- setExpectedReceivers(new String[]{RECEIVER_LOCAL});
- getContext().sendBroadcast(makeBroadcastIntent(BROADCAST_FAIL_REGISTER));
- waitForResultOrThrow(BROADCAST_TIMEOUT);
- }
-
- public void testReceiverCanNotBind() throws Exception {
- setExpectedReceivers(new String[]{RECEIVER_LOCAL});
- getContext().sendBroadcast(makeBroadcastIntent(BROADCAST_FAIL_BIND));
- waitForResultOrThrow(BROADCAST_TIMEOUT);
- }
-
- public void testLocalUnregisterTwice() throws Exception {
- registerMyReceiver(new IntentFilter(BROADCAST_REGISTERED), null);
- unregisterMyReceiverNoCheck();
- try {
- unregisterMyReceiverNoCheck();
- fail("No exception thrown on second unregister");
- } catch (IllegalArgumentException e) {
- Log.i("foo", "Unregister exception", e);
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/ClearTop.java b/tests/AndroidTests/src/com/android/unit_tests/activity/ClearTop.java
deleted file mode 100644
index dd5274a..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/ClearTop.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.util.Log;
-
-public class ClearTop extends Activity {
- public static final String WAIT_CLEAR_TASK = "waitClearTask";
-
- public ClearTop() {
- }
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- //Log.i("foo", "Creating: " + this);
- Intent intent = new Intent(getIntent()).setAction(LocalScreen.CLEAR_TASK)
- .setClass(this, LocalScreen.class);
- startActivity(intent);
- }
-
- @Override
- public void onNewIntent(Intent intent) {
- //Log.i("foo", "New intent in " + this + ": " + intent);
- if (LocalScreen.CLEAR_TASK.equals(intent.getAction())) {
- setResult(RESULT_OK);
- } else {
- setResult(RESULT_CANCELED, new Intent().setAction(
- "New intent received " + intent + ", expecting action "
- + TestedScreen.CLEAR_TASK));
- }
- finish();
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/IntentSenderTest.java b/tests/AndroidTests/src/com/android/unit_tests/activity/IntentSenderTest.java
deleted file mode 100644
index a30c1cb..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/IntentSenderTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.app.Activity;
-import android.app.PendingIntent;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.test.suitebuilder.annotation.Suppress;
-import android.os.Bundle;
-import android.test.suitebuilder.annotation.Suppress;
-
-public class IntentSenderTest extends BroadcastTest {
-
- public void testRegisteredReceivePermissionGranted() throws Exception {
- setExpectedReceivers(new String[]{RECEIVER_REG});
- registerMyReceiver(new IntentFilter(BROADCAST_REGISTERED), PERMISSION_GRANTED);
- addIntermediate("after-register");
- PendingIntent is = PendingIntent.getBroadcast(getContext(), 0,
- makeBroadcastIntent(BROADCAST_REGISTERED), 0);
- is.send();
- waitForResultOrThrow(BROADCAST_TIMEOUT);
- is.cancel();
- }
-
- public void testRegisteredReceivePermissionDenied() throws Exception {
- final Intent intent = makeBroadcastIntent(BROADCAST_REGISTERED);
-
- setExpectedReceivers(new String[]{RECEIVER_RESULTS});
- registerMyReceiver(new IntentFilter(BROADCAST_REGISTERED), PERMISSION_DENIED);
- addIntermediate("after-register");
-
- PendingIntent.OnFinished finish = new PendingIntent.OnFinished() {
- public void onSendFinished(PendingIntent pi, Intent intent,
- int resultCode, String resultData, Bundle resultExtras) {
- gotReceive(RECEIVER_RESULTS, intent);
- }
- };
-
- PendingIntent is = PendingIntent.getBroadcast(getContext(), 0, intent, 0);
- is.send(Activity.RESULT_CANCELED, finish, null);
- waitForResultOrThrow(BROADCAST_TIMEOUT);
- is.cancel();
- }
-
- public void testLocalReceivePermissionGranted() throws Exception {
- setExpectedReceivers(new String[]{RECEIVER_LOCAL});
- PendingIntent is = PendingIntent.getBroadcast(getContext(), 0,
- makeBroadcastIntent(BROADCAST_LOCAL_GRANTED), 0);
- is.send();
- waitForResultOrThrow(BROADCAST_TIMEOUT);
- is.cancel();
- }
-
- public void testLocalReceivePermissionDenied() throws Exception {
- final Intent intent = makeBroadcastIntent(BROADCAST_LOCAL_DENIED);
-
- setExpectedReceivers(new String[]{RECEIVER_RESULTS});
-
- PendingIntent.OnFinished finish = new PendingIntent.OnFinished() {
- public void onSendFinished(PendingIntent pi, Intent intent,
- int resultCode, String resultData, Bundle resultExtras) {
- gotReceive(RECEIVER_RESULTS, intent);
- }
- };
-
- PendingIntent is = PendingIntent.getBroadcast(getContext(), 0, intent, 0);
- is.send(Activity.RESULT_CANCELED, finish, null);
- waitForResultOrThrow(BROADCAST_TIMEOUT);
- is.cancel();
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/LaunchTest.java b/tests/AndroidTests/src/com/android/unit_tests/activity/LaunchTest.java
deleted file mode 100644
index 12b1b5d..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/LaunchTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.content.ComponentName;
-import android.test.suitebuilder.annotation.LargeTest;
-
-public class LaunchTest extends ActivityTestsBase {
-
- @LargeTest
- public void testColdActivity() throws Exception {
- mIntent.putExtra("component", new ComponentName(getContext(), TestedActivity.class));
- runLaunchpad(LaunchpadActivity.LAUNCH);
- }
-
- @LargeTest
- public void testLocalActivity() throws Exception {
- mIntent.putExtra("component", new ComponentName(getContext(), LocalActivity.class));
- runLaunchpad(LaunchpadActivity.LAUNCH);
- }
-
- @LargeTest
- public void testColdScreen() throws Exception {
- mIntent.putExtra("component", new ComponentName(getContext(), TestedScreen.class));
- runLaunchpad(LaunchpadActivity.LAUNCH);
- }
-
- @LargeTest
- public void testLocalScreen() throws Exception {
- mIntent.putExtra("component", new ComponentName(getContext(), LocalScreen.class));
- runLaunchpad(LaunchpadActivity.LAUNCH);
- }
-
- @LargeTest
- public void testForwardResult() throws Exception {
- runLaunchpad(LaunchpadActivity.FORWARD_RESULT);
- }
-
- // The following is disabled until we can catch and recover from
- // application errors.
- public void xxtestBadParcelable() throws Exception {
- // All we really care about for this test is that the system
- // doesn't crash.
- runLaunchpad(LaunchpadActivity.BAD_PARCELABLE);
- }
-
- @LargeTest
- public void testClearTopInCreate() throws Exception {
- mIntent.putExtra("component", new ComponentName(getContext(), ClearTop.class));
- runLaunchpad(LaunchpadActivity.LAUNCH);
- }
-
- @LargeTest
- public void testClearTopWhileResumed() throws Exception {
- mIntent.putExtra("component", new ComponentName(getContext(), ClearTop.class));
- mIntent.putExtra(ClearTop.WAIT_CLEAR_TASK, true);
- runLaunchpad(LaunchpadActivity.LAUNCH);
- }
-}
-
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/LaunchpadActivity.java b/tests/AndroidTests/src/com/android/unit_tests/activity/LaunchpadActivity.java
deleted file mode 100644
index 06e7a84..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/LaunchpadActivity.java
+++ /dev/null
@@ -1,588 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.app.Activity;
-import android.content.BroadcastReceiver;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.os.Binder;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.Message;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.test.PerformanceTestCase;
-import android.util.Log;
-
-class MyBadParcelable implements Parcelable {
- public MyBadParcelable() {
- }
-
- public void writeToParcel(Parcel out, int flags) {
- out.writeString("I am bad");
- }
-
- public int describeContents() {
- return 0;
- }
-
- public static final Parcelable.Creator<MyBadParcelable> CREATOR
- = new Parcelable.Creator<MyBadParcelable>() {
- public MyBadParcelable createFromParcel(Parcel in) {
- return new MyBadParcelable(in);
- }
-
- public MyBadParcelable[] newArray(int size) {
- return new MyBadParcelable[size];
- }
- };
-
- public MyBadParcelable(Parcel in) {
- String nm = in.readString();
- }
-}
-
-public class LaunchpadActivity extends Activity {
- public interface CallingTest extends PerformanceTestCase.Intermediates {
- public void startTiming(boolean realTime);
- public void addIntermediate(String name);
- public void addIntermediate(String name, long timeInNS);
- public void finishTiming(boolean realTime);
- public void activityFinished(int resultCode, Intent data,
- RuntimeException where);
- }
-
- // Also used as the Binder interface descriptor string in these tests
- public static final String LAUNCH = "com.android.unit_tests.activity.LAUNCH";
-
- public static final String FORWARD_RESULT =
- "com.android.unit_tests.activity.FORWARD_RESULT";
- public static final String RETURNED_RESULT =
- "com.android.unit_tests.activity.RETURNED_RESULT";
-
- public static final String BAD_PARCELABLE =
- "com.android.unit_tests.activity.BAD_PARCELABLE";
-
- public static final int LAUNCHED_RESULT = 1;
- public static final int FORWARDED_RESULT = 2;
-
- public static final String LIFECYCLE_BASIC =
- "com.android.unit_tests.activity.LIFECYCLE_BASIC";
- public static final String LIFECYCLE_SCREEN =
- "com.android.unit_tests.activity.LIFECYCLE_SCREEN";
- public static final String LIFECYCLE_DIALOG =
- "com.android.unit_tests.activity.LIFECYCLE_DIALOG";
- public static final String LIFECYCLE_FINISH_CREATE =
- "com.android.unit_tests.activity.LIFECYCLE_FINISH_CREATE";
- public static final String LIFECYCLE_FINISH_START =
- "com.android.unit_tests.activity.LIFECYCLE_FINISH_START";
-
- public static final String BROADCAST_REGISTERED =
- "com.android.unit_tests.activity.BROADCAST_REGISTERED";
- public static final String BROADCAST_LOCAL =
- "com.android.unit_tests.activity.BROADCAST_LOCAL";
- public static final String BROADCAST_REMOTE =
- "com.android.unit_tests.activity.BROADCAST_REMOTE";
- public static final String BROADCAST_ALL =
- "com.android.unit_tests.activity.BROADCAST_ALL";
- public static final String BROADCAST_REPEAT =
- "com.android.unit_tests.activity.BROADCAST_REPEAT";
- public static final String BROADCAST_MULTI =
- "com.android.unit_tests.activity.BROADCAST_MULTI";
- public static final String BROADCAST_ABORT =
- "com.android.unit_tests.activity.BROADCAST_ABORT";
-
- public static final String BROADCAST_STICKY1 =
- "com.android.unit_tests.activity.BROADCAST_STICKY1";
- public static final String BROADCAST_STICKY2 =
- "com.android.unit_tests.activity.BROADCAST_STICKY2";
-
- public static final String RECEIVER_REG = "receiver-reg";
- public static final String RECEIVER_LOCAL = "receiver-local";
- public static final String RECEIVER_REMOTE = "receiver-remote";
- public static final String RECEIVER_ABORT = "receiver-abort";
-
- public static final String DATA_1 = "one";
- public static final String DATA_2 = "two";
-
- public static final String ON_START = "onStart";
- public static final String ON_RESTART = "onRestart";
- public static final String ON_RESUME = "onResume";
- public static final String ON_FREEZE = "onSaveInstanceState";
- public static final String ON_PAUSE = "onPause";
- public static final String ON_STOP = "onStop";
- public static final String ON_DESTROY = "onDestroy";
-
- public static final String DO_FINISH = "finish";
- public static final String DO_LOCAL_SCREEN = "local-screen";
- public static final String DO_LOCAL_DIALOG = "local-dialog";
-
- private boolean mBadParcelable = false;
-
- private boolean mStarted = false;
- private long mStartTime;
-
- private int mResultCode = RESULT_CANCELED;
- private Intent mData = (new Intent()).setAction("No result received");
- private RuntimeException mResultStack = null;
-
- private String[] mExpectedLifecycle = null;
- private int mNextLifecycle;
-
- private String[] mExpectedReceivers = null;
- private int mNextReceiver;
-
- private String[] mExpectedData = null;
- private boolean[] mReceivedData = null;
-
- boolean mReceiverRegistered = false;
-
- private static CallingTest sCallingTest = null;
-
- public static void setCallingTest(CallingTest ct) {
- sCallingTest = ct;
- }
-
- public LaunchpadActivity() {
- mStartTime = System.currentTimeMillis();
- }
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- String action = getIntent().getAction();
- if (ActivityTests.DEBUG_LIFECYCLE) Log.v("test", "CREATE lauchpad "
- + Integer.toHexString(System.identityHashCode(this)) + ": " + getIntent());
- if (LIFECYCLE_BASIC.equals(action)) {
- setExpectedLifecycle(new String[]{ON_START, ON_RESUME,
- DO_FINISH, ON_PAUSE, ON_STOP, ON_DESTROY});
- } else if (LIFECYCLE_SCREEN.equals(action)) {
- setExpectedLifecycle(new String[]{ON_START, ON_RESUME,
- DO_LOCAL_SCREEN, ON_FREEZE, ON_PAUSE, ON_STOP,
- ON_RESTART, ON_START, ON_RESUME,
- DO_FINISH, ON_PAUSE, ON_STOP, ON_DESTROY});
- } else if (LIFECYCLE_DIALOG.equals(action)) {
- setExpectedLifecycle(new String[]{ON_START, ON_RESUME,
- DO_LOCAL_DIALOG, ON_FREEZE, ON_PAUSE, ON_RESUME,
- DO_FINISH, ON_PAUSE, ON_STOP, ON_DESTROY});
- } else if (LIFECYCLE_FINISH_CREATE.equals(action)) {
- // This one behaves a little differently when running in a group.
- if (getParent() == null) {
- setExpectedLifecycle(new String[]{ON_DESTROY});
- } else {
- setExpectedLifecycle(new String[]{ON_START, ON_STOP, ON_DESTROY});
- }
- finish();
- } else if (LIFECYCLE_FINISH_START.equals(action)) {
- setExpectedLifecycle(new String[]{ON_START, DO_FINISH,
- ON_STOP, ON_DESTROY});
- }
- }
-
- @Override
- protected void onStart() {
- super.onStart();
- if (ActivityTests.DEBUG_LIFECYCLE) Log.v("test", "START lauchpad "
- + Integer.toHexString(System.identityHashCode(this)) + ": " + getIntent());
- checkLifecycle(ON_START);
- }
-
- @Override
- protected void onRestart() {
- super.onStart();
- checkLifecycle(ON_RESTART);
- }
-
- @Override
- protected void onResume() {
- super.onResume();
-
- if (ActivityTests.DEBUG_LIFECYCLE) Log.v("test", "RESUME lauchpad "
- + Integer.toHexString(System.identityHashCode(this)) + ": " + getIntent());
- checkLifecycle(ON_RESUME);
-
- if (!mStarted) {
- mStarted = true;
-
- mHandler.postDelayed(mTimeout, 5 * 1000);
-
- String action = getIntent().getAction();
-
- sCallingTest.startTiming(true);
-
- if (LAUNCH.equals(action)) {
- Intent intent = getIntent();
- intent.setFlags(0);
- intent.setComponent((ComponentName)
- intent.getParcelableExtra("component"));
- //System.out.println("*** Launchpad is starting: comp=" + intent.component);
- startActivityForResult(intent, LAUNCHED_RESULT);
- } else if (FORWARD_RESULT.equals(action)) {
- Intent intent = getIntent();
- intent.setFlags(0);
- intent.setClass(this, LocalScreen.class);
- startActivityForResult(intent, FORWARDED_RESULT);
- } else if (BAD_PARCELABLE.equals(action)) {
- mBadParcelable = true;
- Intent intent = getIntent();
- intent.setFlags(0);
- intent.setClass(this, LocalScreen.class);
- startActivityForResult(intent, LAUNCHED_RESULT);
- } else if (BROADCAST_REGISTERED.equals(action)) {
- setExpectedReceivers(new String[]{RECEIVER_REG});
- registerMyReceiver(new IntentFilter(BROADCAST_REGISTERED));
- sCallingTest.addIntermediate("after-register");
- sendBroadcast(makeBroadcastIntent(BROADCAST_REGISTERED));
- } else if (BROADCAST_LOCAL.equals(action)) {
- setExpectedReceivers(new String[]{RECEIVER_LOCAL});
- sendBroadcast(makeBroadcastIntent(BROADCAST_LOCAL));
- } else if (BROADCAST_REMOTE.equals(action)) {
- setExpectedReceivers(new String[]{RECEIVER_REMOTE});
- sendBroadcast(makeBroadcastIntent(BROADCAST_REMOTE));
- } else if (BROADCAST_ALL.equals(action)) {
- setExpectedReceivers(new String[]{
- RECEIVER_REMOTE, RECEIVER_REG, RECEIVER_LOCAL});
- registerMyReceiver(new IntentFilter(BROADCAST_ALL));
- sCallingTest.addIntermediate("after-register");
- sendOrderedBroadcast(makeBroadcastIntent(BROADCAST_ALL), null);
- } else if (BROADCAST_MULTI.equals(action)) {
- setExpectedReceivers(new String[]{
- RECEIVER_REMOTE, RECEIVER_REG, RECEIVER_LOCAL,
- RECEIVER_REMOTE, RECEIVER_REG, RECEIVER_LOCAL,
- RECEIVER_REMOTE, RECEIVER_REG, RECEIVER_LOCAL,
- RECEIVER_LOCAL, RECEIVER_REMOTE,
- RECEIVER_LOCAL, RECEIVER_REMOTE,
- RECEIVER_REMOTE, RECEIVER_REG, RECEIVER_LOCAL,
- RECEIVER_REMOTE, RECEIVER_REG, RECEIVER_LOCAL,
- RECEIVER_REMOTE, RECEIVER_REG, RECEIVER_LOCAL,
- RECEIVER_REMOTE, RECEIVER_LOCAL,
- RECEIVER_REMOTE, RECEIVER_LOCAL});
- registerMyReceiver(new IntentFilter(BROADCAST_ALL));
- sCallingTest.addIntermediate("after-register");
- sendOrderedBroadcast(makeBroadcastIntent(BROADCAST_ALL), null);
- sendOrderedBroadcast(makeBroadcastIntent(BROADCAST_ALL), null);
- sendOrderedBroadcast(makeBroadcastIntent(BROADCAST_ALL), null);
- sendOrderedBroadcast(makeBroadcastIntent(BROADCAST_LOCAL), null);
- sendOrderedBroadcast(makeBroadcastIntent(BROADCAST_REMOTE), null);
- sendOrderedBroadcast(makeBroadcastIntent(BROADCAST_LOCAL), null);
- sendOrderedBroadcast(makeBroadcastIntent(BROADCAST_REMOTE), null);
- sendOrderedBroadcast(makeBroadcastIntent(BROADCAST_ALL), null);
- sendOrderedBroadcast(makeBroadcastIntent(BROADCAST_ALL), null);
- sendOrderedBroadcast(makeBroadcastIntent(BROADCAST_ALL), null);
- sendOrderedBroadcast(makeBroadcastIntent(BROADCAST_REPEAT), null);
- } else if (BROADCAST_ABORT.equals(action)) {
- setExpectedReceivers(new String[]{
- RECEIVER_REMOTE, RECEIVER_ABORT});
- registerMyReceiver(new IntentFilter(BROADCAST_ABORT));
- sCallingTest.addIntermediate("after-register");
- sendOrderedBroadcast(makeBroadcastIntent(BROADCAST_ABORT), null);
- } else if (BROADCAST_STICKY1.equals(action)) {
- setExpectedReceivers(new String[]{RECEIVER_REG});
- setExpectedData(new String[]{DATA_1});
- registerMyReceiver(new IntentFilter(BROADCAST_STICKY1));
- sCallingTest.addIntermediate("after-register");
- } else if (BROADCAST_STICKY2.equals(action)) {
- setExpectedReceivers(new String[]{RECEIVER_REG, RECEIVER_REG});
- setExpectedData(new String[]{DATA_1, DATA_2});
- IntentFilter filter = new IntentFilter(BROADCAST_STICKY1);
- filter.addAction(BROADCAST_STICKY2);
- registerMyReceiver(filter);
- sCallingTest.addIntermediate("after-register");
- }
- }
- }
-
- @Override
- protected void onSaveInstanceState(Bundle icicle) {
- super.onSaveInstanceState(icicle);
- checkLifecycle(ON_FREEZE);
- if (mBadParcelable) {
- icicle.putParcelable("baddy", new MyBadParcelable());
- }
- }
-
- @Override
- protected void onPause() {
- super.onPause();
- if (ActivityTests.DEBUG_LIFECYCLE) Log.v("test", "PAUSE lauchpad "
- + Integer.toHexString(System.identityHashCode(this)) + ": " + getIntent());
- checkLifecycle(ON_PAUSE);
- }
-
- @Override
- protected void onStop() {
- super.onStop();
- if (ActivityTests.DEBUG_LIFECYCLE) Log.v("test", "STOP lauchpad "
- + Integer.toHexString(System.identityHashCode(this)) + ": " + getIntent());
- checkLifecycle(ON_STOP);
- }
-
- @Override
- protected void onActivityResult(int requestCode, int resultCode,
- Intent data) {
- switch (requestCode) {
- case LAUNCHED_RESULT:
- sCallingTest.finishTiming(true);
- finishWithResult(resultCode, data);
- break;
- case FORWARDED_RESULT:
- sCallingTest.finishTiming(true);
- if (RETURNED_RESULT.equals(data.getAction())) {
- finishWithResult(resultCode, data);
- } else {
- finishWithResult(RESULT_CANCELED, (new Intent()).setAction(
- "Bad data returned: " + data));
- }
- break;
- default:
- sCallingTest.finishTiming(true);
- finishWithResult(RESULT_CANCELED, (new Intent()).setAction(
- "Unexpected request code: " + requestCode));
- break;
- }
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- if (ActivityTests.DEBUG_LIFECYCLE) Log.v("test", "DESTROY lauchpad "
- + Integer.toHexString(System.identityHashCode(this)) + ": " + getIntent());
- checkLifecycle(ON_DESTROY);
- sCallingTest.activityFinished(mResultCode, mData, mResultStack);
- }
-
- private void setExpectedLifecycle(String[] lifecycle) {
- mExpectedLifecycle = lifecycle;
- mNextLifecycle = 0;
- }
-
- private void checkLifecycle(String where) {
- if (mExpectedLifecycle == null) return;
-
- if (mNextLifecycle >= mExpectedLifecycle.length) {
- finishBad("Activity lifecycle incorrect: received " + where
- + " but don't expect any more calls");
- mExpectedLifecycle = null;
- return;
- }
- if (!mExpectedLifecycle[mNextLifecycle].equals(where)) {
- finishBad("Activity lifecycle incorrect: received " + where
- + " but expected " + mExpectedLifecycle[mNextLifecycle]
- + " at " + mNextLifecycle);
- mExpectedLifecycle = null;
- return;
- }
-
- mNextLifecycle++;
-
- if (mNextLifecycle >= mExpectedLifecycle.length) {
- setTestResult(RESULT_OK, null);
- return;
- }
-
- String next = mExpectedLifecycle[mNextLifecycle];
- if (where.equals(ON_DESTROY)) {
- finishBad("Activity lifecycle incorrect: received " + where
- + " but expected more actions (next is " + next + ")");
- mExpectedLifecycle = null;
- return;
- } else if (next.equals(DO_FINISH)) {
- mNextLifecycle++;
- if (mNextLifecycle >= mExpectedLifecycle.length) {
- setTestResult(RESULT_OK, null);
- }
- if (!isFinishing()) {
- finish();
- }
- } else if (next.equals(DO_LOCAL_SCREEN)) {
- mNextLifecycle++;
- Intent intent = new Intent(TestedScreen.WAIT_BEFORE_FINISH);
- intent.setClass(this, LocalScreen.class);
- startActivity(intent);
- } else if (next.equals(DO_LOCAL_DIALOG)) {
- mNextLifecycle++;
- Intent intent = new Intent(TestedScreen.WAIT_BEFORE_FINISH);
- intent.setClass(this, LocalDialog.class);
- startActivity(intent);
- }
- }
-
- private void setExpectedReceivers(String[] receivers) {
- mExpectedReceivers = receivers;
- mNextReceiver = 0;
- }
-
- private void setExpectedData(String[] data) {
- mExpectedData = data;
- mReceivedData = new boolean[data.length];
- }
-
- private Intent makeBroadcastIntent(String action) {
- Intent intent = new Intent(action, null);
- intent.putExtra("caller", mCallTarget);
- return intent;
- }
-
- private void finishGood() {
- finishWithResult(RESULT_OK, null);
- }
-
- private void finishBad(String error) {
- finishWithResult(RESULT_CANCELED, (new Intent()).setAction(error));
- }
-
- private void finishWithResult(int resultCode, Intent data) {
- setTestResult(resultCode, data);
- finish();
- }
-
- private void setTestResult(int resultCode, Intent data) {
- mHandler.removeCallbacks(mTimeout);
- unregisterMyReceiver();
- mResultCode = resultCode;
- mData = data;
- mResultStack = new RuntimeException("Original error was here");
- mResultStack.fillInStackTrace();
- }
-
- private void registerMyReceiver(IntentFilter filter) {
- mReceiverRegistered = true;
- //System.out.println("Registering: " + mReceiver);
- registerReceiver(mReceiver, filter);
- }
-
- private void unregisterMyReceiver() {
- if (mReceiverRegistered) {
- mReceiverRegistered = false;
- //System.out.println("Unregistering: " + mReceiver);
- unregisterReceiver(mReceiver);
- }
- }
-
- private Handler mHandler = new Handler() {
- public void handleMessage(Message msg) {
- }
- };
-
- static final int GOT_RECEIVE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION;
- static final int ERROR_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION + 1;
-
- private Binder mCallTarget = new Binder() {
- public boolean onTransact(int code, Parcel data, Parcel reply, int flags) {
- data.setDataPosition(0);
- data.enforceInterface(LaunchpadActivity.LAUNCH);
- if (code == GOT_RECEIVE_TRANSACTION) {
- String name = data.readString();
- gotReceive(name, null);
- return true;
- } else if (code == ERROR_TRANSACTION) {
- finishBad(data.readString());
- return true;
- }
- return false;
- }
- };
-
- private final void gotReceive(String name, Intent intent) {
- synchronized (this) {
-
- //System.out.println("Got receive: " + name);
- //System.out.println(mNextReceiver + " in " + mExpectedReceivers);
- //new RuntimeException("stack").printStackTrace();
-
- sCallingTest.addIntermediate(mNextReceiver + "-" + name);
-
- if (mExpectedData != null) {
- int n = mExpectedData.length;
- int i;
- boolean prev = false;
- for (i = 0; i < n; i++) {
- if (mExpectedData[i].equals(intent.getStringExtra("test"))) {
- if (mReceivedData[i]) {
- prev = true;
- continue;
- }
- mReceivedData[i] = true;
- break;
- }
- }
- if (i >= n) {
- if (prev) {
- finishBad("Receive got data too many times: "
- + intent.getStringExtra("test"));
- } else {
- finishBad("Receive got unexpected data: "
- + intent.getStringExtra("test"));
- }
- return;
- }
- }
-
- if (mNextReceiver >= mExpectedReceivers.length) {
- finishBad("Got too many onReceiveIntent() calls!");
-// System.out.println("Too many intents received: now at "
-// + mNextReceiver + ", expect list: "
-// + Arrays.toString(mExpectedReceivers));
- } else if (!mExpectedReceivers[mNextReceiver].equals(name)) {
- finishBad("Receive out of order: got " + name + " but expected "
- + mExpectedReceivers[mNextReceiver] + " at "
- + mNextReceiver);
- } else {
- mNextReceiver++;
- if (mNextReceiver == mExpectedReceivers.length) {
- mHandler.post(mUnregister);
- }
- }
-
- }
- }
-
- private Runnable mUnregister = new Runnable() {
- public void run() {
- if (mReceiverRegistered) {
- sCallingTest.addIntermediate("before-unregister");
- unregisterMyReceiver();
- }
- sCallingTest.finishTiming(true);
- finishGood();
- }
- };
-
- private Runnable mTimeout = new Runnable() {
- public void run() {
- Log.i("foo", "**** TIMEOUT");
- String msg = "Timeout";
- if (mExpectedReceivers != null
- && mNextReceiver < mExpectedReceivers.length) {
- msg = msg + " waiting for " + mExpectedReceivers[mNextReceiver];
- }
- finishBad(msg);
- }
- };
-
- private BroadcastReceiver mReceiver = new BroadcastReceiver() {
- public void onReceive(Context context, Intent intent) {
- //System.out.println("Receive in: " + this + ": " + intent);
- gotReceive(RECEIVER_REG, intent);
- }
- };
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/LaunchpadTabActivity.java b/tests/AndroidTests/src/com/android/unit_tests/activity/LaunchpadTabActivity.java
deleted file mode 100644
index 1e0e4a6..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/LaunchpadTabActivity.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.app.TabActivity;
-import android.content.ComponentName;
-import android.content.Intent;
-import android.os.Bundle;
-import android.widget.TabHost;
-
-public class LaunchpadTabActivity extends TabActivity {
- public LaunchpadTabActivity() {
- }
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- Intent tabIntent = new Intent(getIntent());
- tabIntent.setComponent((ComponentName)tabIntent.getParcelableExtra("tab"));
-
- TabHost th = getTabHost();
- TabHost.TabSpec ts = th.newTabSpec("1");
- ts.setIndicator("One");
- ts.setContent(tabIntent);
- th.addTab(ts);
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/LifecycleTest.java b/tests/AndroidTests/src/com/android/unit_tests/activity/LifecycleTest.java
deleted file mode 100644
index fdc12ce..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/LifecycleTest.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.content.ComponentName;
-import android.content.Intent;
-import android.test.FlakyTest;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.test.suitebuilder.annotation.Suppress;
-
-public class LifecycleTest extends ActivityTestsBase {
- private Intent mTopIntent;
- private Intent mTabIntent;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mTopIntent = mIntent;
- mTabIntent = new Intent(mContext, LaunchpadTabActivity.class);
- mTabIntent.putExtra("tab", new ComponentName(mContext,
- LaunchpadActivity.class));
- }
-
- @LargeTest
- public void testBasic() throws Exception {
- mIntent = mTopIntent;
- runLaunchpad(LaunchpadActivity.LIFECYCLE_BASIC);
- }
-
- //Suppressing until 1285425 is fixed.
- @Suppress
- public void testTabBasic() throws Exception {
- mIntent = mTabIntent;
- runLaunchpad(LaunchpadActivity.LIFECYCLE_BASIC);
- }
-
- //Marking flaky until bug 1164344 is fixed.
- @FlakyTest(tolerance=2)
- @LargeTest
- public void testScreen() throws Exception {
- mIntent = mTopIntent;
- runLaunchpad(LaunchpadActivity.LIFECYCLE_SCREEN);
- }
-
- //Marking flaky until bug 1164344 is fixed.
- //@FlakyTest(tolerance=2)
- //Suppressing until 1285425 is fixed.
- @Suppress
- public void testTabScreen() throws Exception {
- mIntent = mTabIntent;
- runLaunchpad(LaunchpadActivity.LIFECYCLE_SCREEN);
- }
-
- @LargeTest
- public void testDialog() throws Exception {
- mIntent = mTopIntent;
- runLaunchpad(LaunchpadActivity.LIFECYCLE_DIALOG);
- }
-
- //Suppressing until 1285425 is fixed.
- @Suppress
- public void testTabDialog() throws Exception {
- mIntent = mTabIntent;
- runLaunchpad(LaunchpadActivity.LIFECYCLE_DIALOG);
- }
-
- @MediumTest
- public void testFinishCreate() throws Exception {
- mIntent = mTopIntent;
- runLaunchpad(LaunchpadActivity.LIFECYCLE_FINISH_CREATE);
- }
-
- //Suppressing until 1285425 is fixed.
- @Suppress
- public void testTabFinishCreate() throws Exception {
- mIntent = mTabIntent;
- runLaunchpad(LaunchpadActivity.LIFECYCLE_FINISH_CREATE);
- }
-
- @MediumTest
- public void testFinishStart() throws Exception {
- mIntent = mTopIntent;
- runLaunchpad(LaunchpadActivity.LIFECYCLE_FINISH_START);
- }
-
- //Suppressing until 1285425 is fixed.
- @Suppress
- public void testTabFinishStart() throws Exception {
- mIntent = mTabIntent;
- runLaunchpad(LaunchpadActivity.LIFECYCLE_FINISH_START);
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/LocalActivity.java b/tests/AndroidTests/src/com/android/unit_tests/activity/LocalActivity.java
deleted file mode 100644
index 3c107be..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/LocalActivity.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import java.util.Map;
-
-import android.app.Activity;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-import android.os.MessageQueue;
-
-public class LocalActivity extends TestedActivity
-{
- public LocalActivity()
- {
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/LocalDeniedReceiver.java b/tests/AndroidTests/src/com/android/unit_tests/activity/LocalDeniedReceiver.java
deleted file mode 100644
index ac235c0..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/LocalDeniedReceiver.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.os.RemoteException;
-import android.os.IBinder;
-import android.os.Parcel;
-
-class LocalDeniedReceiver extends BroadcastReceiver {
- public LocalDeniedReceiver() {
- }
-
- public void onReceive(Context context, Intent intent) {
- try {
- IBinder caller = intent.getIBinderExtra("caller");
- Parcel data = Parcel.obtain();
- data.writeInterfaceToken(LaunchpadActivity.LAUNCH);
- data.writeString(BroadcastTest.RECEIVER_LOCAL);
- caller.transact(BroadcastTest.GOT_RECEIVE_TRANSACTION, data, null, 0);
- data.recycle();
- } catch (RemoteException ex) {
- }
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/LocalDeniedService.java b/tests/AndroidTests/src/com/android/unit_tests/activity/LocalDeniedService.java
deleted file mode 100644
index 0473ea9..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/LocalDeniedService.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-public class LocalDeniedService extends LocalService
-{
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/LocalDialog.java b/tests/AndroidTests/src/com/android/unit_tests/activity/LocalDialog.java
deleted file mode 100644
index 3694375..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/LocalDialog.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import java.util.Map;
-
-import android.app.Activity;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-import android.os.MessageQueue;
-
-public class LocalDialog extends TestedScreen
-{
- public LocalDialog()
- {
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/LocalGrantedReceiver.java b/tests/AndroidTests/src/com/android/unit_tests/activity/LocalGrantedReceiver.java
deleted file mode 100644
index 48f5658..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/LocalGrantedReceiver.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.os.RemoteException;
-import android.os.IBinder;
-import android.os.Parcel;
-
-public class LocalGrantedReceiver extends BroadcastReceiver {
- public LocalGrantedReceiver() {
- }
-
- public void onReceive(Context context, Intent intent) {
- try {
- IBinder caller = intent.getIBinderExtra("caller");
- Parcel data = Parcel.obtain();
- data.writeInterfaceToken(LaunchpadActivity.LAUNCH);
- data.writeString(BroadcastTest.RECEIVER_LOCAL);
- caller.transact(BroadcastTest.GOT_RECEIVE_TRANSACTION, data, null, 0);
- data.recycle();
- } catch (RemoteException ex) {
- }
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/LocalGrantedService.java b/tests/AndroidTests/src/com/android/unit_tests/activity/LocalGrantedService.java
deleted file mode 100644
index 0dbcd00..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/LocalGrantedService.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-public class LocalGrantedService extends LocalService
-{
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/LocalProvider.java b/tests/AndroidTests/src/com/android/unit_tests/activity/LocalProvider.java
deleted file mode 100644
index a3375bd..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/LocalProvider.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.content.UriMatcher;
-import android.content.*;
-import android.database.Cursor;
-import android.database.sqlite.SQLiteDatabase;
-import android.database.sqlite.SQLiteOpenHelper;
-import android.database.sqlite.SQLiteQueryBuilder;
-import android.net.Uri;
-import android.util.Config;
-import android.util.Log;
-
-/** Simple test provider that runs in the local process. */
-public class LocalProvider extends ContentProvider {
- private static final String TAG = "LocalProvider";
-
- private SQLiteOpenHelper mOpenHelper;
-
- private static final int DATA = 1;
- private static final int DATA_ID = 2;
- private static final UriMatcher sURLMatcher = new UriMatcher(
- UriMatcher.NO_MATCH);
-
- static {
- sURLMatcher.addURI("*", "data", DATA);
- sURLMatcher.addURI("*", "data/#", DATA_ID);
- }
-
- private static class DatabaseHelper extends SQLiteOpenHelper {
- private static final String DATABASE_NAME = "local.db";
- private static final int DATABASE_VERSION = 1;
-
- public DatabaseHelper(Context context) {
- super(context, DATABASE_NAME, null, DATABASE_VERSION);
- }
-
- @Override
- public void onCreate(SQLiteDatabase db) {
- db.execSQL("CREATE TABLE data (" +
- "_id INTEGER PRIMARY KEY," +
- "text TEXT, " +
- "integer INTEGER);");
-
- // insert alarms
- db.execSQL("INSERT INTO data (text, integer) VALUES ('first data', 100);");
- }
-
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int currentVersion) {
- Log.w(TAG, "Upgrading test database from version " +
- oldVersion + " to " + currentVersion +
- ", which will destroy all old data");
- db.execSQL("DROP TABLE IF EXISTS data");
- onCreate(db);
- }
- }
-
-
- public LocalProvider() {
- }
-
- @Override
- public boolean onCreate() {
- mOpenHelper = new DatabaseHelper(getContext());
- return true;
- }
-
- @Override
- public Cursor query(Uri url, String[] projectionIn, String selection,
- String[] selectionArgs, String sort) {
- SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
-
- // Generate the body of the query
- int match = sURLMatcher.match(url);
- switch (match) {
- case DATA:
- qb.setTables("data");
- break;
- case DATA_ID:
- qb.setTables("data");
- qb.appendWhere("_id=");
- qb.appendWhere(url.getPathSegments().get(1));
- break;
- default:
- throw new IllegalArgumentException("Unknown URL " + url);
- }
-
- SQLiteDatabase db = mOpenHelper.getReadableDatabase();
- Cursor ret = qb.query(db, projectionIn, selection, selectionArgs,
- null, null, sort);
-
- if (ret == null) {
- if (Config.LOGD) Log.d(TAG, "Alarms.query: failed");
- } else {
- ret.setNotificationUri(getContext().getContentResolver(), url);
- }
-
- return ret;
- }
-
- @Override
- public String getType(Uri url) {
- int match = sURLMatcher.match(url);
- switch (match) {
- case DATA:
- return "vnd.android.cursor.dir/vnd.google.unit_tests.local";
- case DATA_ID:
- return "vnd.android.cursor.item/vnd.google.unit_tests.local";
- default:
- throw new IllegalArgumentException("Unknown URL");
- }
- }
-
- @Override
- public int update(Uri url, ContentValues values, String where, String[] whereArgs) {
- int count;
- long rowId = 0;
- int match = sURLMatcher.match(url);
- SQLiteDatabase db = mOpenHelper.getWritableDatabase();
- switch (match) {
- case DATA_ID: {
- String segment = url.getPathSegments().get(1);
- rowId = Long.parseLong(segment);
- count = db.update("data", values, "_id=" + rowId, null);
- break;
- }
- default: {
- throw new UnsupportedOperationException(
- "Cannot update URL: " + url);
- }
- }
- if (Config.LOGD) Log.d(TAG, "*** notifyChange() rowId: " + rowId);
- getContext().getContentResolver().notifyChange(url, null);
- return count;
- }
-
-
- @Override
- public Uri insert(Uri url, ContentValues initialValues) {
- return null;
- }
-
- @Override
- public int delete(Uri url, String where, String[] whereArgs) {
- throw new UnsupportedOperationException("delete not supported");
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/LocalReceiver.java b/tests/AndroidTests/src/com/android/unit_tests/activity/LocalReceiver.java
deleted file mode 100644
index 019c5c0..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/LocalReceiver.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.content.BroadcastReceiver;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.ReceiverCallNotAllowedException;
-import android.content.ServiceConnection;
-import android.os.RemoteException;
-import android.os.IBinder;
-import android.os.Parcel;
-
-public class LocalReceiver extends BroadcastReceiver {
- public LocalReceiver() {
- }
-
- public void onReceive(Context context, Intent intent) {
- String resultString = LaunchpadActivity.RECEIVER_LOCAL;
- if (BroadcastTest.BROADCAST_FAIL_REGISTER.equals(intent.getAction())) {
- resultString = "Successfully registered, but expected it to fail";
- try {
- context.registerReceiver(this, new IntentFilter("foo.bar"));
- context.unregisterReceiver(this);
- } catch (ReceiverCallNotAllowedException e) {
- //resultString = "This is the correct behavior but not yet implemented";
- resultString = LaunchpadActivity.RECEIVER_LOCAL;
- }
- } else if (BroadcastTest.BROADCAST_FAIL_BIND.equals(intent.getAction())) {
- resultString = "Successfully bound to service, but expected it to fail";
- try {
- ServiceConnection sc = new ServiceConnection() {
- public void onServiceConnected(ComponentName name, IBinder service) {
- }
-
- public void onServiceDisconnected(ComponentName name) {
- }
- };
- context.bindService(new Intent(context, LocalService.class), sc, 0);
- context.unbindService(sc);
- } catch (ReceiverCallNotAllowedException e) {
- //resultString = "This is the correct behavior but not yet implemented";
- resultString = LaunchpadActivity.RECEIVER_LOCAL;
- }
- } else if (LaunchpadActivity.BROADCAST_REPEAT.equals(intent.getAction())) {
- Intent newIntent = new Intent(intent);
- newIntent.setAction(LaunchpadActivity.BROADCAST_LOCAL);
- context.sendOrderedBroadcast(newIntent, null);
- }
- try {
- IBinder caller = intent.getIBinderExtra("caller");
- Parcel data = Parcel.obtain();
- data.writeInterfaceToken(LaunchpadActivity.LAUNCH);
- data.writeString(resultString);
- caller.transact(LaunchpadActivity.GOT_RECEIVE_TRANSACTION, data, null, 0);
- data.recycle();
- } catch (RemoteException ex) {
- }
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/LocalScreen.java b/tests/AndroidTests/src/com/android/unit_tests/activity/LocalScreen.java
deleted file mode 100644
index ad65fcc..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/LocalScreen.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import java.util.Map;
-
-import android.app.Activity;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-import android.os.MessageQueue;
-
-public class LocalScreen extends TestedScreen
-{
- public LocalScreen()
- {
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/LocalService.java b/tests/AndroidTests/src/com/android/unit_tests/activity/LocalService.java
deleted file mode 100644
index d79205d..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/LocalService.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.app.Service;
-import android.content.Intent;
-import android.os.Binder;
-import android.os.Bundle;
-import android.os.RemoteException;
-import android.os.IBinder;
-import android.os.Parcel;
-import android.util.Log;
-
-public class LocalService extends Service {
- private final IBinder mBinder = new Binder() {
-
- @Override
- protected boolean onTransact(int code, Parcel data, Parcel reply,
- int flags) throws RemoteException {
- if (code == ServiceTest.SET_REPORTER_CODE) {
- data.enforceInterface(ServiceTest.SERVICE_LOCAL);
- mReportObject = data.readStrongBinder();
- return true;
- } else {
- return super.onTransact(code, data, reply, flags);
- }
- }
-
- };
-
- private IBinder mReportObject;
- private int mStartCount = 1;
-
- public LocalService() {
- }
-
- @Override
- public void onStart(Intent intent, int startId) {
- //Log.i("LocalService", "onStart: " + intent);
- if (intent.getExtras() != null) {
- mReportObject = intent.getExtras().getIBinder(ServiceTest.REPORT_OBJ_NAME);
- if (mReportObject != null) {
- try {
- Parcel data = Parcel.obtain();
- data.writeInterfaceToken(ServiceTest.SERVICE_LOCAL);
- data.writeInt(mStartCount);
- mStartCount++;
- mReportObject.transact(
- ServiceTest.STARTED_CODE, data, null, 0);
- data.recycle();
- } catch (RemoteException e) {
- }
- }
- }
- }
-
- @Override
- public void onDestroy() {
- Log.i("LocalService", "onDestroy: mReportObject=" + mReportObject);
- if (mReportObject != null) {
- try {
- Parcel data = Parcel.obtain();
- data.writeInterfaceToken(ServiceTest.SERVICE_LOCAL);
- mReportObject.transact(
- ServiceTest.DESTROYED_CODE, data, null, 0);
- data.recycle();
- } catch (RemoteException e) {
- }
- }
- }
-
- @Override
- public IBinder onBind(Intent intent) {
- Log.i("LocalService", "onBind: " + intent);
- return mBinder;
- }
-
- @Override
- public boolean onUnbind(Intent intent) {
- Log.i("LocalService", "onUnbind: " + intent);
- if (mReportObject != null) {
- try {
- Parcel data = Parcel.obtain();
- data.writeInterfaceToken(ServiceTest.SERVICE_LOCAL);
- mReportObject.transact(
- ServiceTest.UNBIND_CODE, data, null, 0);
- data.recycle();
- } catch (RemoteException e) {
- }
- }
- return true;
- }
-
- @Override
- public void onRebind(Intent intent) {
- Log.i("LocalService", "onUnbind: " + intent);
- if (mReportObject != null) {
- try {
- Parcel data = Parcel.obtain();
- data.writeInterfaceToken(ServiceTest.SERVICE_LOCAL);
- mReportObject.transact(
- ServiceTest.REBIND_CODE, data, null, 0);
- data.recycle();
- } catch (RemoteException e) {
- }
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/MetaDataTest.java b/tests/AndroidTests/src/com/android/unit_tests/activity/MetaDataTest.java
deleted file mode 100644
index 4660e29..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/MetaDataTest.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.content.ComponentName;
-import android.content.pm.ActivityInfo;
-import android.content.pm.PackageItemInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.PermissionInfo;
-import android.content.pm.ProviderInfo;
-import android.content.pm.ServiceInfo;
-import android.content.res.TypedArray;
-import android.content.res.XmlResourceParser;
-import android.os.Bundle;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import com.android.unit_tests.R;
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlPullParserException;
-
-import java.io.IOException;
-
-/**
- * Tests for meta-data associated with application components.
- */
-public class MetaDataTest extends AndroidTestCase {
-
- private void checkMetaData(ComponentName cn, PackageItemInfo ci)
- throws IOException, XmlPullParserException {
- assertNotNull("Unable to find component " + cn, ci);
-
- Bundle md = ci.metaData;
- assertNotNull("No meta data found", md);
-
- assertEquals("foo", md.getString("com.android.unit_tests.string"));
- assertTrue(md.getBoolean("com.android.unit_tests.boolean"));
- assertEquals(100, md.getInt("com.android.unit_tests.integer"));
- assertEquals(0xff000000, md.getInt("com.android.unit_tests.color"));
-
- assertEquals((double) 1001,
- Math.floor(md.getFloat("com.android.unit_tests.float") * 10 + .5));
-
- assertEquals(R.xml.metadata, md.getInt("com.android.unit_tests.reference"));
-
- XmlResourceParser xml = ci.loadXmlMetaData(mContext.getPackageManager(),
- "com.android.unit_tests.reference");
- assertNotNull(xml);
-
- int type;
- while ((type = xml.next()) != XmlPullParser.START_TAG
- && type != XmlPullParser.END_DOCUMENT) {
- }
- assertEquals(XmlPullParser.START_TAG, type);
- assertEquals("thedata", xml.getName());
-
- // method 1: direct access
- final String rawAttr = xml.getAttributeValue(null, "rawText");
- assertEquals("some raw text", rawAttr);
-
- // method 2: direct access of typed value
- final int rawColorIntAttr = xml.getAttributeIntValue(null, "rawColor", 0);
- assertEquals(0xffffff00, rawColorIntAttr);
- final String rawColorStrAttr = xml.getAttributeValue(null, "rawColor");
- assertEquals("#ffffff00", rawColorStrAttr);
-
- // method 2: direct access of resource attribute
- final String nameSpace = "http://schemas.android.com/apk/res/android";
- final int colorIntAttr = xml.getAttributeIntValue(nameSpace, "color", 0);
- assertEquals(0xffff0000, colorIntAttr);
- final String colorStrAttr = xml.getAttributeValue(nameSpace, "color");
- assertEquals("#ffff0000", colorStrAttr);
-
- // method 3: styled access (borrowing an attr from view system here)
- TypedArray a = mContext.obtainStyledAttributes(xml,
- android.R.styleable.TextView);
- String styledAttr = a.getString(android.R.styleable.TextView_text);
- assertEquals("text", styledAttr);
- a.recycle();
-
- xml.close();
- }
-
- @SmallTest
- public void testActivityWithData() throws Exception {
- ComponentName cn = new ComponentName(mContext, LocalActivity.class);
- ActivityInfo ai = mContext.getPackageManager().getActivityInfo(
- cn, PackageManager.GET_META_DATA);
-
- checkMetaData(cn, ai);
-
- ai = mContext.getPackageManager().getActivityInfo(cn, 0);
-
- assertNull("Meta data returned when not requested", ai.metaData);
- }
-
- @SmallTest
- public void testReceiverWithData() throws Exception {
- ComponentName cn = new ComponentName(mContext, LocalReceiver.class);
- ActivityInfo ai = mContext.getPackageManager().getReceiverInfo(
- cn, PackageManager.GET_META_DATA);
-
- checkMetaData(cn, ai);
-
- ai = mContext.getPackageManager().getReceiverInfo(cn, 0);
-
- assertNull("Meta data returned when not requested", ai.metaData);
- }
-
- @SmallTest
- public void testServiceWithData() throws Exception {
- ComponentName cn = new ComponentName(mContext, LocalService.class);
- ServiceInfo si = mContext.getPackageManager().getServiceInfo(
- cn, PackageManager.GET_META_DATA);
-
- checkMetaData(cn, si);
-
- si = mContext.getPackageManager().getServiceInfo(cn, 0);
-
- assertNull("Meta data returned when not requested", si.metaData);
- }
-
- @MediumTest
- public void testProviderWithData() throws Exception {
- ComponentName cn = new ComponentName(mContext, LocalProvider.class);
- ProviderInfo pi = mContext.getPackageManager().resolveContentProvider(
- "com.android.unit_tests.LocalProvider",
- PackageManager.GET_META_DATA);
- checkMetaData(cn, pi);
-
- pi = mContext.getPackageManager().resolveContentProvider(
- "com.android.unit_tests.LocalProvider", 0);
-
- assertNull("Meta data returned when not requested", pi.metaData);
- }
-
- @SmallTest
- public void testPermissionWithData() throws Exception {
- ComponentName cn = new ComponentName("foo",
- "com.android.unit_tests.permission.TEST_GRANTED");
- PermissionInfo pi = mContext.getPackageManager().getPermissionInfo(
- cn.getClassName(), PackageManager.GET_META_DATA);
- checkMetaData(cn, pi);
-
- pi = mContext.getPackageManager().getPermissionInfo(
- cn.getClassName(), 0);
-
- assertNull("Meta data returned when not requested", pi.metaData);
- }
-}
-
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/RemoteDeniedReceiver.java b/tests/AndroidTests/src/com/android/unit_tests/activity/RemoteDeniedReceiver.java
deleted file mode 100644
index 7656580..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/RemoteDeniedReceiver.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.os.RemoteException;
-import android.os.IBinder;
-import android.os.Parcel;
-
-class RemoteDeniedReceiver extends BroadcastReceiver {
- public RemoteDeniedReceiver() {
- }
-
- public void onReceive(Context context, Intent intent) {
- try {
- IBinder caller = intent.getIBinderExtra("caller");
- Parcel data = Parcel.obtain();
- data.writeInterfaceToken(LaunchpadActivity.LAUNCH);
- data.writeString(BroadcastTest.RECEIVER_REMOTE);
- caller.transact(BroadcastTest.GOT_RECEIVE_TRANSACTION, data, null, 0);
- data.recycle();
- } catch (RemoteException ex) {
- }
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/RemoteGrantedReceiver.java b/tests/AndroidTests/src/com/android/unit_tests/activity/RemoteGrantedReceiver.java
deleted file mode 100644
index 034aa1d..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/RemoteGrantedReceiver.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.os.RemoteException;
-import android.os.IBinder;
-import android.os.Parcel;
-
-public class RemoteGrantedReceiver extends BroadcastReceiver {
- public RemoteGrantedReceiver() {
- }
-
- public void onReceive(Context context, Intent intent) {
- try {
- IBinder caller = intent.getIBinderExtra("caller");
- Parcel data = Parcel.obtain();
- data.writeInterfaceToken(LaunchpadActivity.LAUNCH);
- data.writeString(BroadcastTest.RECEIVER_REMOTE);
- caller.transact(BroadcastTest.GOT_RECEIVE_TRANSACTION, data, null, 0);
- data.recycle();
- } catch (RemoteException ex) {
- }
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/RemoteReceiver.java b/tests/AndroidTests/src/com/android/unit_tests/activity/RemoteReceiver.java
deleted file mode 100644
index 818bffe..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/RemoteReceiver.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.content.Context;
-import android.content.Intent;
-import android.content.BroadcastReceiver;
-import android.os.RemoteException;
-import android.os.IBinder;
-import android.os.Parcel;
-
-public class RemoteReceiver extends BroadcastReceiver
-{
- public RemoteReceiver()
- {
- }
-
- public void onReceive(Context context, Intent intent)
- {
- if (LaunchpadActivity.BROADCAST_REPEAT.equals(intent.getAction())) {
- Intent newIntent = new Intent(intent);
- newIntent.setAction(LaunchpadActivity.BROADCAST_REMOTE);
- context.sendOrderedBroadcast(newIntent, null);
- }
- try {
- IBinder caller = intent.getIBinderExtra("caller");
- Parcel data = Parcel.obtain();
- data.writeInterfaceToken(LaunchpadActivity.LAUNCH);
- data.writeString(LaunchpadActivity.RECEIVER_REMOTE);
- caller.transact(LaunchpadActivity.GOT_RECEIVE_TRANSACTION, data, null, 0);
- data.recycle();
- } catch (RemoteException ex) {
- }
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/RemoteSubActivityScreen.java b/tests/AndroidTests/src/com/android/unit_tests/activity/RemoteSubActivityScreen.java
deleted file mode 100644
index e750ed6..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/RemoteSubActivityScreen.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/* //device/apps/AndroidTests/src/com.android.unit_tests/activity/TestedScreen.java
-**
-** Copyright 2006, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
-
-package com.android.unit_tests.activity;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Process;
-import android.util.Log;
-
-public class RemoteSubActivityScreen extends SubActivityScreen {
- Handler mHandler = new Handler();
- boolean mFirst = false;
-
- public RemoteSubActivityScreen() {
- }
-
- @Override
- public void onCreate(Bundle icicle) {
- // We are running in a remote process, so want to have the sub-activity
- // sending the result back in the original process.
- Intent intent = getIntent();
- intent.setClass(this, SubActivityScreen.class);
-
- super.onCreate(icicle);
-
- boolean kill = intent.getBooleanExtra("kill", false);
- //Log.i("foo", "RemoteSubActivityScreen pid=" + Process.myPid()
- // + " kill=" + kill);
-
- if (kill) {
- // After finishing initialization, kill the process! But only if
- // this is the first time...
- if (icicle == null) {
- mHandler.post(new Runnable() {
- public void run() {
- handleBeforeStopping();
- Process.killProcess(Process.myPid());
- }
- });
- }
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/ResultReceiver.java b/tests/AndroidTests/src/com/android/unit_tests/activity/ResultReceiver.java
deleted file mode 100644
index 4b5d468..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/ResultReceiver.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.content.Context;
-import android.content.Intent;
-import android.content.BroadcastReceiver;
-import android.os.IBinder;
-import android.os.Parcel;
-import android.os.Bundle;
-
-import java.util.Map;
-
-public class ResultReceiver extends BroadcastReceiver
-{
- public ResultReceiver()
- {
- }
-
- public void onReceive(Context context, Intent intent)
- {
- setResultCode(3);
- setResultData("bar");
- Bundle map = getResultExtras(false);
- map.remove("remove");
- map.putString("bar", "them");
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/ServiceTest.java b/tests/AndroidTests/src/com/android/unit_tests/activity/ServiceTest.java
deleted file mode 100644
index db523dc..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/ServiceTest.java
+++ /dev/null
@@ -1,465 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.ServiceConnection;
-import android.os.Binder;
-import android.os.Bundle;
-import android.os.RemoteException;
-import android.os.IBinder;
-import android.os.Parcel;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.util.Log;
-
-// These test binders purport to support an interface whose canonical
-// interface name is ServiceTest.SERVICE_LOCAL
-public class ServiceTest extends ActivityTestsBase {
-
- public static final String SERVICE_LOCAL =
- "com.android.unit_tests.activity.SERVICE_LOCAL";
- public static final String SERVICE_LOCAL_GRANTED =
- "com.android.unit_tests.activity.SERVICE_LOCAL_GRANTED";
- public static final String SERVICE_LOCAL_DENIED =
- "com.android.unit_tests.activity.SERVICE_LOCAL_DENIED";
-
- public static final String REPORT_OBJ_NAME = "report";
-
- public static final int STARTED_CODE = 1;
- public static final int DESTROYED_CODE = 2;
- public static final int SET_REPORTER_CODE = 3;
- public static final int UNBIND_CODE = 4;
- public static final int REBIND_CODE = 5;
-
- public static final int STATE_START_1 = 0;
- public static final int STATE_START_2 = 1;
- public static final int STATE_UNBIND = 2;
- public static final int STATE_DESTROY = 3;
- public static final int STATE_REBIND = 4;
- public static final int STATE_UNBIND_ONLY = 5;
- public int mStartState;
-
- public IBinder mStartReceiver = new Binder() {
- @Override
- protected boolean onTransact(int code, Parcel data, Parcel reply,
- int flags) throws RemoteException {
- //Log.i("ServiceTest", "Received code " + code + " in state " + mStartState);
- if (code == STARTED_CODE) {
- data.enforceInterface(SERVICE_LOCAL);
- int count = data.readInt();
- if (mStartState == STATE_START_1) {
- if (count == 1) {
- finishGood();
- } else {
- finishBad("onStart() again on an object when it should have been the first time");
- }
- } else if (mStartState == STATE_START_2) {
- if (count == 2) {
- finishGood();
- } else {
- finishBad("onStart() the first time on an object when it should have been the second time");
- }
- } else {
- finishBad("onStart() was called when not expected (state="+mStartState+")");
- }
- return true;
- } else if (code == DESTROYED_CODE) {
- data.enforceInterface(SERVICE_LOCAL);
- if (mStartState == STATE_DESTROY) {
- finishGood();
- } else {
- finishBad("onDestroy() was called when not expected (state="+mStartState+")");
- }
- return true;
- } else if (code == UNBIND_CODE) {
- data.enforceInterface(SERVICE_LOCAL);
- if (mStartState == STATE_UNBIND) {
- mStartState = STATE_DESTROY;
- } else if (mStartState == STATE_UNBIND_ONLY) {
- finishGood();
- } else {
- finishBad("onUnbind() was called when not expected (state="+mStartState+")");
- }
- return true;
- } else if (code == REBIND_CODE) {
- data.enforceInterface(SERVICE_LOCAL);
- if (mStartState == STATE_REBIND) {
- finishGood();
- } else {
- finishBad("onRebind() was called when not expected (state="+mStartState+")");
- }
- return true;
- } else {
- return super.onTransact(code, data, reply, flags);
- }
- }
- };
-
- public class EmptyConnection implements ServiceConnection {
- public void onServiceConnected(ComponentName name, IBinder service) {
- }
-
- public void onServiceDisconnected(ComponentName name) {
- }
- }
-
- public class TestConnection implements ServiceConnection {
- private final boolean mExpectDisconnect;
- private final boolean mSetReporter;
- private boolean mMonitor;
- private int mCount;
-
- public TestConnection(boolean expectDisconnect, boolean setReporter) {
- mExpectDisconnect = expectDisconnect;
- mSetReporter = setReporter;
- mMonitor = !setReporter;
- }
-
- void setMonitor(boolean v) {
- mMonitor = v;
- }
-
- public void onServiceConnected(ComponentName name, IBinder service) {
- if (mSetReporter) {
- Parcel data = Parcel.obtain();
- data.writeInterfaceToken(SERVICE_LOCAL);
- data.writeStrongBinder(mStartReceiver);
- try {
- service.transact(SET_REPORTER_CODE, data, null, 0);
- } catch (RemoteException e) {
- finishBad("DeadObjectException when sending reporting object");
- }
- data.recycle();
- }
-
- if (mMonitor) {
- mCount++;
- if (mStartState == STATE_START_1) {
- if (mCount == 1) {
- finishGood();
- } else {
- finishBad("onServiceConnected() again on an object when it should have been the first time");
- }
- } else if (mStartState == STATE_START_2) {
- if (mCount == 2) {
- finishGood();
- } else {
- finishBad("onServiceConnected() the first time on an object when it should have been the second time");
- }
- } else {
- finishBad("onServiceConnected() called unexpectedly");
- }
- }
- }
-
- public void onServiceDisconnected(ComponentName name) {
- if (mMonitor) {
- if (mStartState == STATE_DESTROY) {
- if (mExpectDisconnect) {
- finishGood();
- } else {
- finishBad("onServiceDisconnected() when it shouldn't have been");
- }
- } else {
- finishBad("onServiceDisconnected() called unexpectedly");
- }
- }
- }
- }
-
- void startExpectResult(Intent service) {
- startExpectResult(service, new Bundle());
- }
-
- void startExpectResult(Intent service, Bundle bundle) {
- bundle.putIBinder(REPORT_OBJ_NAME, mStartReceiver);
- boolean success = false;
- try {
- //Log.i("foo", "STATE_START_1");
- mStartState = STATE_START_1;
- getContext().startService(new Intent(service).putExtras(bundle));
- waitForResultOrThrow(5 * 1000, "service to start first time");
- //Log.i("foo", "STATE_START_2");
- mStartState = STATE_START_2;
- getContext().startService(new Intent(service).putExtras(bundle));
- waitForResultOrThrow(5 * 1000, "service to start second time");
- success = true;
- } finally {
- if (!success) {
- try {
- getContext().stopService(service);
- } catch (Exception e) {
- // eat
- }
- }
- }
- //Log.i("foo", "STATE_DESTROY");
- mStartState = STATE_DESTROY;
- getContext().stopService(service);
- waitForResultOrThrow(5 * 1000, "service to be destroyed");
- }
-
- void startExpectNoPermission(Intent service) {
- try {
- getContext().startService(service);
- fail("Expected security exception when starting " + service);
- } catch (SecurityException e) {
- // expected
- }
- }
-
- void bindExpectResult(Intent service) {
- TestConnection conn = new TestConnection(true, false);
- TestConnection conn2 = new TestConnection(false, false);
- boolean success = false;
- try {
- // Expect to see the TestConnection connected.
- mStartState = STATE_START_1;
- getContext().bindService(service, conn, 0);
- getContext().startService(service);
- waitForResultOrThrow(5 * 1000, "existing connection to receive service");
-
- // Expect to see the second TestConnection connected.
- getContext().bindService(service, conn2, 0);
- waitForResultOrThrow(5 * 1000, "new connection to receive service");
-
- getContext().unbindService(conn2);
- success = true;
- } finally {
- if (!success) {
- try {
- getContext().stopService(service);
- getContext().unbindService(conn);
- getContext().unbindService(conn2);
- } catch (Exception e) {
- // eat
- }
- }
- }
-
- // Expect to see the TestConnection disconnected.
- mStartState = STATE_DESTROY;
- getContext().stopService(service);
- waitForResultOrThrow(5 * 1000, "existing connection to lose service");
-
- getContext().unbindService(conn);
-
- conn = new TestConnection(true, true);
- success = false;
- try {
- // Expect to see the TestConnection connected.
- conn.setMonitor(true);
- mStartState = STATE_START_1;
- getContext().bindService(service, conn, 0);
- getContext().startService(service);
- waitForResultOrThrow(5 * 1000, "existing connection to receive service");
-
- success = true;
- } finally {
- if (!success) {
- try {
- getContext().stopService(service);
- getContext().unbindService(conn);
- } catch (Exception e) {
- // eat
- }
- }
- }
-
- // Expect to see the service unbind and then destroyed.
- conn.setMonitor(false);
- mStartState = STATE_UNBIND;
- getContext().stopService(service);
- waitForResultOrThrow(5 * 1000, "existing connection to lose service");
-
- getContext().unbindService(conn);
-
- conn = new TestConnection(true, true);
- success = false;
- try {
- // Expect to see the TestConnection connected.
- conn.setMonitor(true);
- mStartState = STATE_START_1;
- getContext().bindService(service, conn, 0);
- getContext().startService(service);
- waitForResultOrThrow(5 * 1000, "existing connection to receive service");
-
- success = true;
- } finally {
- if (!success) {
- try {
- getContext().stopService(service);
- getContext().unbindService(conn);
- } catch (Exception e) {
- // eat
- }
- }
- }
-
- // Expect to see the service unbind but not destroyed.
- conn.setMonitor(false);
- mStartState = STATE_UNBIND_ONLY;
- getContext().unbindService(conn);
- waitForResultOrThrow(5 * 1000, "existing connection to unbind service");
-
- // Expect to see the service rebound.
- mStartState = STATE_REBIND;
- getContext().bindService(service, conn, 0);
- waitForResultOrThrow(5 * 1000, "existing connection to rebind service");
-
- // Expect to see the service unbind and then destroyed.
- mStartState = STATE_UNBIND;
- getContext().stopService(service);
- waitForResultOrThrow(5 * 1000, "existing connection to lose service");
-
- getContext().unbindService(conn);
- }
-
- void bindAutoExpectResult(Intent service) {
- TestConnection conn = new TestConnection(false, true);
- boolean success = false;
- try {
- conn.setMonitor(true);
- mStartState = STATE_START_1;
- getContext().bindService(
- service, conn, Context.BIND_AUTO_CREATE);
- waitForResultOrThrow(5 * 1000, "connection to start and receive service");
- success = true;
- } finally {
- if (!success) {
- try {
- getContext().unbindService(conn);
- } catch (Exception e) {
- // eat
- }
- }
- }
- mStartState = STATE_UNBIND;
- getContext().unbindService(conn);
- waitForResultOrThrow(5 * 1000, "disconnecting from service");
- }
-
- void bindExpectNoPermission(Intent service) {
- TestConnection conn = new TestConnection(false, false);
- try {
- getContext().bindService(service, conn, Context.BIND_AUTO_CREATE);
- fail("Expected security exception when binding " + service);
- } catch (SecurityException e) {
- // expected
- } finally {
- getContext().unbindService(conn);
- }
- }
-
-
- @MediumTest
- public void testLocalStartClass() throws Exception {
- startExpectResult(new Intent(getContext(), LocalService.class));
- }
-
- @MediumTest
- public void testLocalStartAction() throws Exception {
- startExpectResult(new Intent(SERVICE_LOCAL));
- }
-
- @MediumTest
- public void testLocalBindClass() throws Exception {
- bindExpectResult(new Intent(getContext(), LocalService.class));
- }
-
- @MediumTest
- public void testLocalBindAction() throws Exception {
- bindExpectResult(new Intent(SERVICE_LOCAL));
- }
-
- @MediumTest
- public void testLocalBindAutoClass() throws Exception {
- bindAutoExpectResult(new Intent(getContext(), LocalService.class));
- }
-
- @MediumTest
- public void testLocalBindAutoAction() throws Exception {
- bindAutoExpectResult(new Intent(SERVICE_LOCAL));
- }
-
- @MediumTest
- public void testLocalStartClassPermissionGranted() throws Exception {
- startExpectResult(new Intent(getContext(), LocalGrantedService.class));
- }
-
- @MediumTest
- public void testLocalStartActionPermissionGranted() throws Exception {
- startExpectResult(new Intent(SERVICE_LOCAL_GRANTED));
- }
-
- @MediumTest
- public void testLocalBindClassPermissionGranted() throws Exception {
- bindExpectResult(new Intent(getContext(), LocalGrantedService.class));
- }
-
- @MediumTest
- public void testLocalBindActionPermissionGranted() throws Exception {
- bindExpectResult(new Intent(SERVICE_LOCAL_GRANTED));
- }
-
- @MediumTest
- public void testLocalBindAutoClassPermissionGranted() throws Exception {
- bindAutoExpectResult(new Intent(getContext(), LocalGrantedService.class));
- }
-
- @MediumTest
- public void testLocalBindAutoActionPermissionGranted() throws Exception {
- bindAutoExpectResult(new Intent(SERVICE_LOCAL_GRANTED));
- }
-
- @MediumTest
- public void testLocalStartClassPermissionDenied() throws Exception {
- startExpectNoPermission(new Intent(getContext(), LocalDeniedService.class));
- }
-
- @MediumTest
- public void testLocalStartActionPermissionDenied() throws Exception {
- startExpectNoPermission(new Intent(SERVICE_LOCAL_DENIED));
- }
-
- @MediumTest
- public void testLocalBindClassPermissionDenied() throws Exception {
- bindExpectNoPermission(new Intent(getContext(), LocalDeniedService.class));
- }
-
- @MediumTest
- public void testLocalBindActionPermissionDenied() throws Exception {
- bindExpectNoPermission(new Intent(SERVICE_LOCAL_DENIED));
- }
-
- @MediumTest
- public void testLocalUnbindTwice() throws Exception {
- EmptyConnection conn = new EmptyConnection();
- getContext().bindService(
- new Intent(SERVICE_LOCAL_GRANTED), conn, 0);
- getContext().unbindService(conn);
- try {
- getContext().unbindService(conn);
- fail("No exception thrown on second unbind");
- } catch (IllegalArgumentException e) {
- //Log.i("foo", "Unbind exception", e);
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/SetTimeZonePermissionsTest.java b/tests/AndroidTests/src/com/android/unit_tests/activity/SetTimeZonePermissionsTest.java
deleted file mode 100644
index 1fa7579..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/SetTimeZonePermissionsTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.app.AlarmManager;
-import android.content.Context;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-
-import java.util.TimeZone;
-
-public class SetTimeZonePermissionsTest extends AndroidTestCase {
-
- private String[] mZones;
- private String mCurrentZone;
- private AlarmManager mAlarm;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mZones = TimeZone.getAvailableIDs();
- mCurrentZone = TimeZone.getDefault().getID();
- mAlarm = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
- }
-
- /**
- * Verify that non-system processes cannot set the time zone.
- */
- @LargeTest
- public void testSetTimeZonePermissions() {
- /**
- * Attempt to set several predefined time zones, verifying that the system
- * system default time zone has not actually changed from its prior state
- * after each attempt.
- */
- int max = (mZones.length > 10) ? mZones.length : 10;
- assertTrue("No system-defined time zones - test invalid", max > 0);
-
- for (int i = 0; i < max; i++) {
- String tz = mZones[i];
- try {
- mAlarm.setTimeZone(tz);
- } catch (SecurityException se) {
- // Expected failure; no need to handle specially since we're
- // about to assert that the test invariant holds: no change
- // to the system time zone.
- }
-
- String newZone = TimeZone.getDefault().getID();
- assertEquals("AlarmManager.setTimeZone() succeeded despite lack of permission",
- mCurrentZone,
- newZone);
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/SubActivityScreen.java b/tests/AndroidTests/src/com/android/unit_tests/activity/SubActivityScreen.java
deleted file mode 100644
index 914b909..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/SubActivityScreen.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.app.Activity;
-import android.app.PendingIntent;
-import android.content.Intent;
-import android.os.Bundle;
-
-public class SubActivityScreen extends Activity {
- static final int NO_RESULT_MODE = 0;
- static final int RESULT_MODE = 1;
- static final int PENDING_RESULT_MODE = 2;
- static final int FINISH_SUB_MODE = 3;
-
- static final int CHILD_OFFSET = 1000;
-
- int mMode;
-
- public SubActivityScreen() {
- }
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- mMode = getIntent().getIntExtra("mode", mMode);
- //Log.i("foo", "SubActivityScreen pid=" + Process.myPid()
- // + " mode=" + mMode);
-
- // Move on to the next thing that will generate a result... but only
- // if we are being launched for the first time.
- if (icicle == null) {
- if (mMode == PENDING_RESULT_MODE) {
- PendingIntent apr = createPendingResult(1, null,
- Intent.FILL_IN_ACTION);
- Intent res = new Intent();
- res.putExtra("tkey", "tval");
- res.setAction("test");
- try {
- apr.send(this, RESULT_OK, res);
- } catch (PendingIntent.CanceledException e) {
- }
- } else if (mMode < CHILD_OFFSET) {
- Intent intent = new Intent();
- intent.setClass(this, SubActivityScreen.class);
- intent.putExtra("mode", CHILD_OFFSET+mMode);
- //System.out.println("*** Starting from onStart: " + intent);
- startActivityForResult(intent, 1);
- return;
- }
- }
- }
-
- @Override
- protected void onRestoreInstanceState(Bundle state) {
- super.onRestoreInstanceState(state);
- }
-
- @Override
- protected void onResume() {
- super.onResume();
-
- //Log.i("foo", "SubActivityScreen pid=" + Process.myPid() + " onResume");
-
- if (mMode >= CHILD_OFFSET) {
- // Wait a little bit, to give our parent time to kill itself
- // if that is something it is into.
- try {
- Thread.sleep(500);
- } catch (InterruptedException e) {
- setResult(RESULT_CANCELED, (new Intent()).setAction("Interrupted!"));
- finish();
- return;
- }
- //System.out.println("Resuming sub-activity: mode=" + mMode);
- switch (mMode-CHILD_OFFSET) {
- case NO_RESULT_MODE:
- finish();
- break;
- case RESULT_MODE:
- Intent res = new Intent();
- res.putExtra("tkey", "tval");
- res.setAction("test");
- setResult(RESULT_OK, res);
- finish();
- break;
- case FINISH_SUB_MODE:
- break;
- }
- }
- }
-
- @Override
- protected void onActivityResult(int requestCode, int resultCode,
- Intent data) {
- //Log.i("foo", "SubActivityScreen pid=" + Process.myPid()
- // + " onActivityResult: req=" + requestCode
- // + " res=" + resultCode);
-
- // Assume success.
- setResult(RESULT_OK);
-
- if (requestCode == 1) {
- switch (mMode) {
- case NO_RESULT_MODE:
- case FINISH_SUB_MODE:
- if (resultCode != RESULT_CANCELED) {
- setResult(RESULT_CANCELED, (new Intent()).setAction(
- "Incorrect result code returned: " + resultCode));
- }
- break;
- case RESULT_MODE:
- case PENDING_RESULT_MODE:
- if (resultCode != RESULT_OK) {
- setResult(RESULT_CANCELED, (new Intent()).setAction(
- "Incorrect result code returned: " + resultCode));
- } else if (data == null) {
- setResult(RESULT_CANCELED, (new Intent()).setAction(
- "null data returned"));
- } else if (!("test".equals(data.getAction()))) {
- setResult(RESULT_CANCELED, (new Intent()).setAction(
- "Incorrect action returned: " + data));
- } else if (!("tval".equals(data.getStringExtra("tkey")))) {
- setResult(RESULT_CANCELED, (new Intent()).setAction(
- "Incorrect extras returned: " + data.getExtras()));
- }
- break;
- }
- } else {
- setResult(RESULT_CANCELED, (new Intent()).setAction(
- "Incorrect request code returned: " + requestCode));
- }
-
- finish();
- }
-
- @Override
- protected void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
- }
-
- @Override
- protected void onStop() {
- super.onStop();
- handleBeforeStopping();
- }
-
- public void handleBeforeStopping() {
- if (mMode == FINISH_SUB_MODE) {
- finishActivity(1);
- }
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/SubActivityTest.java b/tests/AndroidTests/src/com/android/unit_tests/activity/SubActivityTest.java
deleted file mode 100644
index ee02c98..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/SubActivityTest.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.test.suitebuilder.annotation.Suppress;
-import android.content.ComponentName;
-
-@Suppress
-public class SubActivityTest extends ActivityTestsBase {
-
- public void testPendingResult() throws Exception {
- mIntent.putExtra("component", new ComponentName(getContext(), SubActivityScreen.class));
- mIntent.putExtra("mode", SubActivityScreen.PENDING_RESULT_MODE);
- runLaunchpad(LaunchpadActivity.LAUNCH);
- }
-
- public void testNoResult() throws Exception {
- mIntent.putExtra("component", new ComponentName(getContext(), SubActivityScreen.class));
- mIntent.putExtra("mode", SubActivityScreen.NO_RESULT_MODE);
- runLaunchpad(LaunchpadActivity.LAUNCH);
- }
-
- public void testResult() throws Exception {
- mIntent.putExtra("component", new ComponentName(getContext(), SubActivityScreen.class));
- mIntent.putExtra("mode", SubActivityScreen.RESULT_MODE);
- runLaunchpad(LaunchpadActivity.LAUNCH);
- }
-
- public void testFinishSub() throws Exception {
- mIntent.putExtra("component",
- new ComponentName(getContext(), RemoteSubActivityScreen.class));
- mIntent.putExtra("mode", SubActivityScreen.FINISH_SUB_MODE);
- runLaunchpad(LaunchpadActivity.LAUNCH);
- }
-
- public void testRemoteNoResult() throws Exception {
- mIntent.putExtra("component",
- new ComponentName(getContext(), RemoteSubActivityScreen.class));
- mIntent.putExtra("mode", SubActivityScreen.NO_RESULT_MODE);
- runLaunchpad(LaunchpadActivity.LAUNCH);
- }
-
- public void testRemoteResult() throws Exception {
- mIntent.putExtra("component",
- new ComponentName(getContext(), RemoteSubActivityScreen.class));
- mIntent.putExtra("mode", SubActivityScreen.RESULT_MODE);
- runLaunchpad(LaunchpadActivity.LAUNCH);
- }
-
- public void testRemoteFinishSub() throws Exception {
- mIntent.putExtra("component", new ComponentName(getContext(), SubActivityScreen.class));
- mIntent.putExtra("mode", SubActivityScreen.FINISH_SUB_MODE);
- runLaunchpad(LaunchpadActivity.LAUNCH);
- }
-
- public void testRemoteRestartNoResult() throws Exception {
- mIntent.putExtra("component",
- new ComponentName(getContext(), RemoteSubActivityScreen.class));
- mIntent.putExtra("mode", SubActivityScreen.NO_RESULT_MODE);
- mIntent.putExtra("kill", true);
- runLaunchpad(LaunchpadActivity.LAUNCH);
- }
-
- public void testRemoteRestartResult() throws Exception {
- mIntent.putExtra("component",
- new ComponentName(getContext(), RemoteSubActivityScreen.class));
- mIntent.putExtra("mode", SubActivityScreen.RESULT_MODE);
- mIntent.putExtra("kill", true);
- runLaunchpad(LaunchpadActivity.LAUNCH);
- }
-
- public void testRemoteRestartFinishSub() throws Exception {
- mIntent.putExtra("component", new ComponentName(getContext(), SubActivityScreen.class));
- mIntent.putExtra("mode", SubActivityScreen.FINISH_SUB_MODE);
- mIntent.putExtra("kill", true);
- runLaunchpad(LaunchpadActivity.LAUNCH);
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/TestedActivity.java b/tests/AndroidTests/src/com/android/unit_tests/activity/TestedActivity.java
deleted file mode 100644
index ec407a9..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/TestedActivity.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.app.Activity;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-import android.os.MessageQueue;
-import android.os.Bundle;
-
-public class TestedActivity extends Activity
-{
- public TestedActivity()
- {
- }
-
- public void onCreate(Bundle icicle)
- {
- super.onCreate(icicle);
- }
-
- protected void onRestoreInstanceState(Bundle state)
- {
- super.onRestoreInstanceState(state);
- }
-
- protected void onResume()
- {
- super.onResume();
- Looper.myLooper().myQueue().addIdleHandler(new Idler());
- }
-
- protected void onSaveInstanceState(Bundle outState)
- {
- super.onSaveInstanceState(outState);
- }
-
- protected void onStop()
- {
- super.onStop();
- }
-
- private Handler mHandler = new Handler() {
- public void handleMessage(Message msg) {
- setResult(RESULT_OK);
- finish();
- }
- };
-
- private class Idler implements MessageQueue.IdleHandler
- {
- public final boolean queueIdle()
- {
- //Message m = Message.obtain();
- //mHandler.sendMessageAtTime(m, SystemClock.uptimeMillis()+1000);
- setResult(RESULT_OK);
- finish();
- return false;
- }
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/activity/TestedScreen.java b/tests/AndroidTests/src/com/android/unit_tests/activity/TestedScreen.java
deleted file mode 100644
index 4085aa9..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/activity/TestedScreen.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.activity;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-import android.os.MessageQueue;
-import android.os.SystemClock;
-import android.os.Bundle;
-import android.util.Log;
-
-public class TestedScreen extends Activity
-{
- public static final String WAIT_BEFORE_FINISH = "TestedScreen.WAIT_BEFORE_FINISH";
- public static final String DELIVER_RESULT = "TestedScreen.DELIVER_RESULT";
- public static final String CLEAR_TASK = "TestedScreen.CLEAR_TASK";
-
- public TestedScreen() {
- }
-
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- if (ActivityTests.DEBUG_LIFECYCLE) Log.v("test", "CREATE tested "
- + Integer.toHexString(System.identityHashCode(this)) + ": " + getIntent());
- if (LaunchpadActivity.FORWARD_RESULT.equals(getIntent().getAction())) {
- Intent intent = new Intent(getIntent());
- intent.setAction(DELIVER_RESULT);
- intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
- startActivity(intent);
- if (ActivityTests.DEBUG_LIFECYCLE) Log.v("test", "Finishing tested "
- + Integer.toHexString(System.identityHashCode(this)) + ": " + getIntent());
- finish();
- } else if (DELIVER_RESULT.equals(getIntent().getAction())) {
- setResult(RESULT_OK, (new Intent()).setAction(
- LaunchpadActivity.RETURNED_RESULT));
- if (ActivityTests.DEBUG_LIFECYCLE) Log.v("test", "Finishing tested "
- + Integer.toHexString(System.identityHashCode(this)) + ": " + getIntent());
- finish();
- } else if (CLEAR_TASK.equals(getIntent().getAction())) {
- if (!getIntent().getBooleanExtra(ClearTop.WAIT_CLEAR_TASK, false)) {
- launchClearTask();
- }
- }
- }
-
- protected void onRestoreInstanceState(Bundle state) {
- super.onRestoreInstanceState(state);
- }
-
- protected void onResume() {
- super.onResume();
- if (ActivityTests.DEBUG_LIFECYCLE) Log.v("test", "RESUME tested "
- + Integer.toHexString(System.identityHashCode(this)) + ": " + getIntent());
- if (CLEAR_TASK.equals(getIntent().getAction())) {
- if (getIntent().getBooleanExtra(ClearTop.WAIT_CLEAR_TASK, false)) {
- Looper.myLooper().myQueue().addIdleHandler(new Idler());
- }
- } else {
- Looper.myLooper().myQueue().addIdleHandler(new Idler());
- }
- }
-
- protected void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
- }
-
- protected void onStop() {
- super.onStop();
- if (ActivityTests.DEBUG_LIFECYCLE) Log.v("test", "STOP tested "
- + Integer.toHexString(System.identityHashCode(this)) + ": " + getIntent());
- }
-
- private void launchClearTask() {
- Intent intent = new Intent(getIntent()).
- addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP).
- setClass(this, ClearTop.class);
- startActivity(intent);
- }
-
- private Handler mHandler = new Handler() {
- public void handleMessage(Message msg) {
- if (CLEAR_TASK.equals(getIntent().getAction())) {
- launchClearTask();
- } else {
- if (ActivityTests.DEBUG_LIFECYCLE) Log.v("test", "Finishing tested "
- + Integer.toHexString(System.identityHashCode(this)) + ": " + getIntent());
- setResult(RESULT_OK);
- finish();
- }
- }
- };
-
- private class Idler implements MessageQueue.IdleHandler {
- public final boolean queueIdle() {
- if (WAIT_BEFORE_FINISH.equals(getIntent().getAction())) {
- Message m = Message.obtain();
- mHandler.sendMessageAtTime(m, SystemClock.uptimeMillis()+1000);
- } else if (CLEAR_TASK.equals(getIntent().getAction())) {
- Message m = Message.obtain();
- mHandler.sendMessageAtTime(m, SystemClock.uptimeMillis()+1000);
- } else {
- if (ActivityTests.DEBUG_LIFECYCLE) Log.v("test", "Finishing tested "
- + Integer.toHexString(System.identityHashCode(this)) + ": " + getIntent());
- setResult(RESULT_OK);
- finish();
- }
- return false;
- }
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/content/ArrayTest.java b/tests/AndroidTests/src/com/android/unit_tests/content/ArrayTest.java
deleted file mode 100644
index 4d5b5e7..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/content/ArrayTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.content;
-
-import android.content.res.Resources;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.util.TypedValue;
-import com.android.unit_tests.R;
-
-public class ArrayTest extends AndroidTestCase {
- private Resources mResources;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mResources = mContext.getResources();
- }
-
- private void checkEntry(int resid, int index, Object res, Object expected) {
- assertEquals("in resource 0x" + Integer.toHexString(resid)
- + " at index " + index, expected, res);
- }
-
- private void checkStringArray(int resid, String[] expected) {
- String[] res = mResources.getStringArray(resid);
- assertEquals(res.length, expected.length);
- for (int i=0; i<expected.length; i++) {
- checkEntry(resid, i, res[i], expected[i]);
- }
- }
-
- private void checkTextArray(int resid, String[] expected) {
- CharSequence[] res = mResources.getTextArray(resid);
- assertEquals(res.length, expected.length);
- for (int i=0; i<expected.length; i++) {
- checkEntry(resid, i, res[i], expected[i]);
- }
- }
-
- private void checkIntArray(int resid, int[] expected) {
- int[] res = mResources.getIntArray(resid);
- assertEquals(res.length, expected.length);
- for (int i=0; i<expected.length; i++) {
- assertEquals("in resource 0x" + Integer.toHexString(resid)
- + " at index " + i, expected[i], res[i]);
- }
- }
-
- @SmallTest
- public void testStrings() throws Exception {
- checkStringArray(R.array.strings, new String[] {"zero", "1", "here"});
- checkTextArray(R.array.strings, new String[] {"zero", "1", "here"});
- checkStringArray(R.array.integers, new String[] {null, null, null});
- checkTextArray(R.array.integers, new String[] {null, null, null});
- }
-
- @SmallTest
- public void testIntegers() throws Exception {
- checkIntArray(R.array.strings, new int[] {0, 0, 0});
- checkIntArray(R.array.integers, new int[] {0, 1, 101});
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/content/AssetTest.java b/tests/AndroidTests/src/com/android/unit_tests/content/AssetTest.java
deleted file mode 100644
index f38d062..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/content/AssetTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.content;
-
-import android.content.res.AssetManager;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-public class AssetTest extends AndroidTestCase {
- private AssetManager mAssets;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mAssets = mContext.getAssets();
- }
-
- public static void verifyTextAsset(InputStream is) throws IOException {
- String expectedString = "OneTwoThreeFourFiveSixSevenEightNineTen";
- byte[] buffer = new byte[10];
-
- int readCount;
- int curIndex = 0;
- while ((readCount = is.read(buffer, 0, buffer.length)) > 0) {
- for (int i = 0; i < readCount; i++) {
- assertEquals("At index " + curIndex
- + " expected " + expectedString.charAt(curIndex)
- + " but found " + ((char) buffer[i]),
- buffer[i], expectedString.charAt(curIndex));
- curIndex++;
- }
- }
-
- readCount = is.read(buffer, 0, buffer.length);
- assertEquals("Reading end of buffer: expected readCount=-1 but got " + readCount,
- -1, readCount);
-
- readCount = is.read(buffer, buffer.length, 0);
- assertEquals("Reading end of buffer length 0: expected readCount=0 but got " + readCount,
- 0, readCount);
-
- is.close();
- }
-
- @SmallTest
- public void testReadToEnd() throws Exception {
- InputStream is = mAssets.open("text.txt");
- verifyTextAsset(is);
- }
-
- // XXX failing
- public void xxtestListDir() throws Exception {
- String[] files = mAssets.list("");
- assertEquals(1, files.length);
- assertEquals("test.txt", files[0]);
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/content/ConfigTest.java b/tests/AndroidTests/src/com/android/unit_tests/content/ConfigTest.java
deleted file mode 100644
index a63885d..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/content/ConfigTest.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.content;
-
-import android.content.Context;
-import android.content.res.AssetManager;
-import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.content.res.TypedArray;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.util.DisplayMetrics;
-import android.view.Display;
-import android.view.WindowManager;
-import com.android.unit_tests.R;
-
-import java.util.Locale;
-
-public class ConfigTest extends AndroidTestCase {
-
- private static void checkValue(Resources res, int resId, String expectedValue) {
- try {
- String actual = res.getString(resId);
- assertNotNull("Returned wrong configuration-based simple value: expected <nothing>, got '"
- + actual + "' from resource 0x"
- + Integer.toHexString(resId),
- expectedValue);
- assertEquals("Returned wrong configuration-based simple value: expected "
- + expectedValue + ", got '" + actual + "' from resource 0x"
- + Integer.toHexString(resId),
- expectedValue, actual);
- } catch (Resources.NotFoundException e) {
- assertNull("Resource not found for configuration-based simple value: expecting \""
- + expectedValue + "\"",
- expectedValue);
- }
- }
-
- private static void checkValue(Resources res, int resId,
- int[] styleable, String[] expectedValues) {
- Resources.Theme theme = res.newTheme();
- TypedArray sa = theme.obtainStyledAttributes(resId, styleable);
- for (int i = 0; i < styleable.length; i++) {
- String actual = sa.getString(i);
- assertEquals("Returned wrong configuration-based style value: expected "
- + expectedValues[i] + ", got '" + actual + "' from attr "
- + i + " of resource 0x" + Integer.toHexString(resId),
- actual, expectedValues[i]);
- }
- sa.recycle();
- }
-
- public Resources getResources(Configuration config,
- int mcc, int mnc, int touchscreen, int keyboard, int keysHidden,
- int navigation, int width, int height) {
- AssetManager assmgr = new AssetManager();
- assmgr.addAssetPath(mContext.getPackageResourcePath());
- DisplayMetrics metrics = new DisplayMetrics();
- WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
- Display d = wm.getDefaultDisplay();
- d.getMetrics(metrics);
- config.mcc = mcc;
- config.mnc = mnc;
- config.touchscreen = touchscreen;
- config.keyboard = keyboard;
- config.keyboardHidden = keysHidden;
- config.navigation = navigation;
- metrics.widthPixels = width;
- metrics.heightPixels = height;
- return new Resources(assmgr, metrics, config);
- }
-
- private static void checkPair(Resources res, int[] notResIds,
- int simpleRes, String simpleString,
- int bagRes, String bagString) {
- boolean willHave = true;
- if (notResIds != null) {
- for (int i : notResIds) {
- if (i == simpleRes) {
- willHave = false;
- break;
- }
- }
- }
- checkValue(res, simpleRes, willHave ? simpleString : null);
- checkValue(res, bagRes, R.styleable.TestConfig,
- new String[]{willHave ? bagString : null});
- }
-
- private static void checkAllExcept(Resources res, int[] notResIds) {
- checkPair(res, notResIds,
- R.configVarying.simple_default, "only simple default",
- R.configVarying.bag_default, "only bag default");
- checkPair(res, notResIds,
- R.configVarying.simple_mcc111, "only simple mcc111",
- R.configVarying.bag_mcc111, "only bag mcc111");
- checkPair(res, notResIds,
- R.configVarying.simple_mnc222, "only simple mnc222",
- R.configVarying.bag_mnc222, "only bag mnc222");
- checkPair(res, notResIds,
- R.configVarying.simple_xx, "only simple xx",
- R.configVarying.bag_xx, "only bag xx");
- checkPair(res, notResIds,
- R.configVarying.simple_xx_rYY, "only simple xx_rYY",
- R.configVarying.bag_xx_rYY, "only bag xx_rYY");
- checkPair(res, notResIds,
- R.configVarying.simple_notouch, "only simple notouch",
- R.configVarying.bag_notouch, "only bag notouch");
- checkPair(res, notResIds,
- R.configVarying.simple_finger, "only simple finger",
- R.configVarying.bag_finger, "only bag finger");
- checkPair(res, notResIds,
- R.configVarying.simple_stylus, "only simple stylus",
- R.configVarying.bag_stylus, "only bag stylus");
- checkPair(res, notResIds,
- R.configVarying.simple_12key, "only simple 12key",
- R.configVarying.bag_12key, "only bag 12key");
- checkPair(res, notResIds,
- R.configVarying.simple_320x200, "only simple 320x200",
- R.configVarying.bag_320x200, "only bag 320x200");
- checkPair(res, notResIds,
- R.configVarying.simple_480x320, "only simple 480x320",
- R.configVarying.bag_480x320, "only bag 480x320");
- }
-
- @SmallTest
- public void testDefaultNavigationMethod() throws Exception {
- assertEquals(mContext.getResources().getConfiguration().navigation,
- Configuration.NAVIGATION_TRACKBALL);
- }
-
- @SmallTest
- public void testAllConfigs() throws Exception {
- /**
- * Test a resource that contains a value for each possible single
- * configuration value.
- */
- Configuration config = new Configuration();
- Resources res = getResources(config, 0, 0, 0, 0, 0, 0, 0, 0);
- checkValue(res, R.configVarying.simple, "simple default");
- checkValue(res, R.configVarying.bag,
- R.styleable.TestConfig, new String[]{"bag default"});
-
- config.locale = new Locale("xx");
- res = getResources(config, 0, 0, 0, 0, 0, 0, 0, 0);
- checkValue(res, R.configVarying.simple, "simple xx");
- checkValue(res, R.configVarying.bag,
- R.styleable.TestConfig, new String[]{"bag xx"});
-
- config.locale = new Locale("xx", "YY");
- res = getResources(config, 0, 0, 0, 0, 0, 0, 0, 0);
- checkValue(res, R.configVarying.simple, "simple xx-rYY");
- checkValue(res, R.configVarying.bag,
- R.styleable.TestConfig, new String[]{"bag xx-rYY"});
-
- config = new Configuration();
- res = getResources(config, 111, 0, 0, 0, 0, 0, 0, 0);
- checkValue(res, R.configVarying.simple, "simple mcc111");
- checkValue(res, R.configVarying.bag,
- R.styleable.TestConfig, new String[]{"bag mcc111"});
-
- res = getResources(config, 0, 222, 0, 0, 0, 0, 0, 0);
- checkValue(res, R.configVarying.simple, "simple mnc222");
- checkValue(res, R.configVarying.bag,
- R.styleable.TestConfig, new String[]{"bag mnc222"});
-
- res = getResources(config, 0, 0, Configuration.TOUCHSCREEN_NOTOUCH, 0, 0, 0, 0, 0);
- checkValue(res, R.configVarying.simple, "simple notouch");
- checkValue(res, R.configVarying.bag,
- R.styleable.TestConfig, new String[]{"bag notouch"});
-
- res = getResources(config, 0, 0, Configuration.TOUCHSCREEN_FINGER, 0, 0, 0, 0, 0);
- checkValue(res, R.configVarying.simple, "simple finger");
- checkValue(res, R.configVarying.bag,
- R.styleable.TestConfig, new String[]{"bag finger"});
-
- res = getResources(config, 0, 0, Configuration.TOUCHSCREEN_STYLUS, 0, 0, 0, 0, 0);
- checkValue(res, R.configVarying.simple, "simple stylus");
- checkValue(res, R.configVarying.bag,
- R.styleable.TestConfig, new String[]{"bag stylus"});
-
- res = getResources(config, 0, 0, 0, Configuration.KEYBOARD_NOKEYS, 0, 0, 0, 0);
- checkValue(res, R.configVarying.simple, "simple nokeys");
- checkValue(res, R.configVarying.bag,
- R.styleable.TestConfig, new String[]{"bag nokeys"});
-
- res = getResources(config, 0, 0, 0, Configuration.KEYBOARD_QWERTY, 0, 0, 0, 0);
- checkValue(res, R.configVarying.simple, "simple qwerty");
- checkValue(res, R.configVarying.bag,
- R.styleable.TestConfig, new String[]{"bag qwerty"});
-
- res = getResources(config, 0, 0, 0, Configuration.KEYBOARD_12KEY, 0, 0, 0, 0);
- checkValue(res, R.configVarying.simple, "simple 12key");
- checkValue(res, R.configVarying.bag,
- R.styleable.TestConfig, new String[]{"bag 12key"});
-
- res = getResources(config, 0, 0, 0, 0, Configuration.KEYBOARDHIDDEN_YES, 0, 0, 0);
- checkValue(res, R.configVarying.simple, "simple keyshidden");
- checkValue(res, R.configVarying.bag,
- R.styleable.TestConfig, new String[]{"bag keyshidden"});
-
- res = getResources(config, 0, 0, 0, 0, Configuration.KEYBOARDHIDDEN_NO, 0, 0, 0);
- checkValue(res, R.configVarying.simple, "simple keysexposed");
- checkValue(res, R.configVarying.bag,
- R.styleable.TestConfig, new String[]{"bag keysexposed"});
-
- res = getResources(config, 0, 0, 0, 0, 0, Configuration.NAVIGATION_NONAV, 0, 0);
- checkValue(res, R.configVarying.simple, "simple nonav");
- checkValue(res, R.configVarying.bag,
- R.styleable.TestConfig, new String[]{"bag nonav"});
-
- res = getResources(config, 0, 0, 0, 0, 0, Configuration.NAVIGATION_DPAD, 0, 0);
- checkValue(res, R.configVarying.simple, "simple dpad");
- checkValue(res, R.configVarying.bag,
- R.styleable.TestConfig, new String[]{"bag dpad"});
-
- res = getResources(config, 0, 0, 0, 0, 0, Configuration.NAVIGATION_TRACKBALL, 0, 0);
- checkValue(res, R.configVarying.simple, "simple trackball");
- checkValue(res, R.configVarying.bag,
- R.styleable.TestConfig, new String[]{"bag trackball"});
-
- res = getResources(config, 0, 0, 0, 0, 0, Configuration.NAVIGATION_WHEEL, 0, 0);
- checkValue(res, R.configVarying.simple, "simple wheel");
- checkValue(res, R.configVarying.bag,
- R.styleable.TestConfig, new String[]{"bag wheel"});
-
- res = getResources(config, 0, 0, 0, 0, 0, 0, 320, 200);
- checkValue(res, R.configVarying.simple, "simple 320x200");
- checkValue(res, R.configVarying.bag,
- R.styleable.TestConfig, new String[]{"bag 320x200"});
-
- res = getResources(config, 0, 0, 0, 0, 0, 0, 480, 320);
- checkValue(res, R.configVarying.simple, "simple 480x320");
- checkValue(res, R.configVarying.bag,
- R.styleable.TestConfig, new String[]{"bag 480x320"});
- }
-
- @MediumTest
- public void testSingleConfig() throws Exception {
- /**
- * Test resources that contain a value for only one possible configuration
- * value. XXX This is not yet complete.
- */
- Configuration config = new Configuration();
- Resources res = getResources(config, 0, 0, 0, 0, 0, 0, 0, 0);
- checkAllExcept(res, new int[]{
- R.configVarying.simple_xx,
- R.configVarying.simple_xx_rYY});
-
- config.locale = new Locale("xx");
- res = getResources(config, 0, 0, 0, 0, 0, 0, 0, 0);
- checkAllExcept(res, null);
-
- config.locale = new Locale("xx", "YY");
- res = getResources(config, 0, 0, 0, 0, 0, 0, 0, 0);
- checkAllExcept(res, null);
-
- config.locale = new Locale("xx", "ZZ");
- res = getResources(config, 0, 0, 0, 0, 0, 0, 0, 0);
- checkAllExcept(res, new int[]{R.configVarying.simple_xx_rYY});
-
- config = new Configuration();
- res = getResources(config, 111, 0, 0, 0, 0, 0, 0, 0);
- checkAllExcept(res, new int[]{
- R.configVarying.simple_xx,
- R.configVarying.simple_xx_rYY});
-
- res = getResources(config, 0, 222, 0, 0, 0, 0, 0, 0);
- checkAllExcept(res, new int[]{
- R.configVarying.simple_xx,
- R.configVarying.simple_xx_rYY});
-
- res = getResources(config, 0, 0, Configuration.TOUCHSCREEN_NOTOUCH, 0, 0, 0, 0, 0);
- checkAllExcept(res, new int[]{
- R.configVarying.simple_xx,
- R.configVarying.simple_xx_rYY,
- R.configVarying.simple_finger,
- R.configVarying.simple_stylus});
-
- res = getResources(config, 0, 0, Configuration.TOUCHSCREEN_FINGER, 0, 0, 0, 0, 0);
- checkAllExcept(res, new int[]{
- R.configVarying.simple_xx,
- R.configVarying.simple_xx_rYY,
- R.configVarying.simple_notouch,
- R.configVarying.simple_stylus});
-
- res = getResources(config, 0, 0, Configuration.TOUCHSCREEN_STYLUS, 0, 0, 0, 0, 0);
- checkAllExcept(res, new int[]{
- R.configVarying.simple_xx,
- R.configVarying.simple_xx_rYY,
- R.configVarying.simple_notouch,
- R.configVarying.simple_finger});
-
- res = getResources(config, 0, 0, 0, Configuration.KEYBOARD_12KEY, 0, 0, 0, 0);
- checkAllExcept(res, new int[]{
- R.configVarying.simple_xx,
- R.configVarying.simple_xx_rYY});
-
- res = getResources(config, 0, 0, 0, 0, 0, 0, 320, 200);
- checkAllExcept(res, new int[]{
- R.configVarying.simple_xx,
- R.configVarying.simple_xx_rYY,
- R.configVarying.simple_480x320});
-
- res = getResources(config, 0, 0, 0, 0, 0, 0, 480, 320);
- checkAllExcept(res, new int[]{
- R.configVarying.simple_xx,
- R.configVarying.simple_xx_rYY,
- R.configVarying.simple_320x200});
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/content/ContentTests.java b/tests/AndroidTests/src/com/android/unit_tests/content/ContentTests.java
deleted file mode 100644
index 80318dc..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/content/ContentTests.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.content;
-
-import junit.framework.TestSuite;
-
-public class ContentTests {
- public static TestSuite suite() {
- TestSuite suite = new TestSuite(ContentTests.class.getName());
-
- suite.addTestSuite(AssetTest.class);
- suite.addTestSuite(IntentFilterTest.class);
- suite.addTest(ResourceTests.suite());
- suite.addTestSuite(PluralResourcesTest.class);
- suite.addTestSuite(ConfigTest.class);
- return suite;
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/content/FractionTest.java b/tests/AndroidTests/src/com/android/unit_tests/content/FractionTest.java
deleted file mode 100644
index 74a6b8d..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/content/FractionTest.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.content;
-
-import android.content.res.Resources;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.util.TypedValue;
-import com.android.unit_tests.R;
-
-public class FractionTest extends AndroidTestCase {
-
- private Resources mResources;
- private final TypedValue mValue = new TypedValue();
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mResources = mContext.getResources();
- }
-
- @SmallTest
- public void testFractions() throws Exception {
- tryFraction(R.dimen.frac100perc, 1, 1, 1);
- tryFraction(R.dimen.frac1perc, 1, 1, .01f);
- tryFraction(R.dimen.fracp1perc, 1, 1, .001f);
- tryFraction(R.dimen.fracp01perc, 1, 1, .0001f);
- tryFraction(R.dimen.frac0perc, 1, 1, 0);
- tryFraction(R.dimen.frac1p1perc, 1, 1, .011f);
- tryFraction(R.dimen.frac100p1perc, 1, 1, 1.001f);
- tryFraction(R.dimen.frac25510perc, 1, 1, 255.1f);
- tryFraction(R.dimen.frac25610perc, 1, 1, 256.1f);
- tryFraction(R.dimen.frac6553510perc, 1, 1, 65535.1f);
- tryFraction(R.dimen.frac6553610perc, 1, 1, 65536.1f);
-
- tryFraction(R.dimen.frac100perc, 100, 1, 100);
- tryFraction(R.dimen.frac1perc, 100, 1, .01f * 100);
- tryFraction(R.dimen.fracp1perc, 100, 1, .001f * 100);
- tryFraction(R.dimen.fracp01perc, 100, 1, .0001f * 100);
- tryFraction(R.dimen.frac0perc, 100, 1, 0);
- tryFraction(R.dimen.frac1p1perc, 100, 1, .011f * 100);
- tryFraction(R.dimen.frac100p1perc, 100, 1, 1.001f * 100);
- tryFraction(R.dimen.frac25510perc, 100, 1, 255.1f * 100);
- tryFraction(R.dimen.frac25610perc, 100, 1, 256.1f * 100);
- tryFraction(R.dimen.frac6553510perc, 100, 1, 65535.1f * 100);
- tryFraction(R.dimen.frac6553610perc, 100, 1, 65536.1f * 100);
-
- tryFraction(R.dimen.frac100pperc, 100, 2, 2);
- tryFraction(R.dimen.frac1pperc, 100, 2, .01f * 2);
- tryFraction(R.dimen.fracp1pperc, 100, 2, .001f * 2);
- tryFraction(R.dimen.fracp01pperc, 100, 2, .0001f * 2);
- tryFraction(R.dimen.frac0pperc, 100, 2, 0);
- tryFraction(R.dimen.frac1p1pperc, 100, 2, .011f * 2);
- tryFraction(R.dimen.frac100p1pperc, 100, 2, 1.001f * 2);
- tryFraction(R.dimen.frac25510pperc, 100, 2, 255.1f * 2);
- tryFraction(R.dimen.frac25610pperc, 100, 2, 256.1f * 2);
- tryFraction(R.dimen.frac6553510pperc, 100, 2, 65535.1f * 2);
- tryFraction(R.dimen.frac6553610pperc, 100, 2, 65536.1f * 2);
- }
-
- private void tryFraction(int resid, float base, float pbase, float expected) {
- mResources.getValue(resid, mValue, true);
- float res = mValue.getFraction(base, pbase);
- float diff = Math.abs(expected - res);
- float prec = expected * 1e-4f;
- if (prec < 1e-5f) {
- prec = 1e-5f;
- }
- //System.out.println(
- // "Res 0x" + Integer.toHexString(resid) + ": got=" + res
- // + ", expected=" + expected + ", diff=" + diff);
- assertFalse("Expecting value " + expected + " got " + res
- + ": in resource 0x" + Integer.toHexString(resid)
- + " " + mValue,
- diff > prec);
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/content/IntentFilterTest.java b/tests/AndroidTests/src/com/android/unit_tests/content/IntentFilterTest.java
deleted file mode 100644
index 0335b9d..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/content/IntentFilterTest.java
+++ /dev/null
@@ -1,570 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.content;
-
-import android.content.IntentFilter;
-import android.test.suitebuilder.annotation.SmallTest;
-import static android.os.PatternMatcher.PATTERN_LITERAL;
-import static android.os.PatternMatcher.PATTERN_PREFIX;
-import static android.os.PatternMatcher.PATTERN_SIMPLE_GLOB;
-import android.net.Uri;
-import android.util.StringBuilderPrinter;
-import junit.framework.TestCase;
-
-import java.util.HashSet;
-
-public class IntentFilterTest extends TestCase {
-
- public static class Match extends IntentFilter {
- Match(String[] actions, String[] categories, String[] mimeTypes,
- String[] schemes, String[] authorities, String[] ports) {
- if (actions != null) {
- for (int i = 0; i < actions.length; i++) {
- addAction(actions[i]);
- }
- }
- if (categories != null) {
- for (int i = 0; i < categories.length; i++) {
- addCategory(categories[i]);
- }
- }
- if (mimeTypes != null) {
- for (int i = 0; i < mimeTypes.length; i++) {
- try {
- addDataType(mimeTypes[i]);
- } catch (IntentFilter.MalformedMimeTypeException e) {
- throw new RuntimeException("Bad mime type", e);
- }
- }
- }
- if (schemes != null) {
- for (int i = 0; i < schemes.length; i++) {
- addDataScheme(schemes[i]);
- }
- }
- if (authorities != null) {
- for (int i = 0; i < authorities.length; i++) {
- addDataAuthority(authorities[i],
- ports != null ? ports[i] : null);
- }
- }
- }
-
- Match(String[] actions, String[] categories, String[] mimeTypes,
- String[] schemes, String[] authorities, String[] ports,
- String[] paths, int[] pathTypes) {
- this(actions, categories, mimeTypes, schemes, authorities, ports);
- if (paths != null) {
- for (int i = 0; i < paths.length; i++) {
- addDataPath(paths[i], pathTypes[i]);
- }
- }
- }
- }
-
- public static class MatchCondition {
- public final int result;
- public final String action;
- public final String mimeType;
- public final Uri data;
- public final String[] categories;
-
- public MatchCondition(int _result, String _action, String[] _categories,
- String _mimeType, String _data) {
- result = _result;
- action = _action;
- mimeType = _mimeType;
- data = _data != null ? Uri.parse(_data) : null;
- categories = _categories;
- }
- }
-
- public static void checkMatches(IntentFilter filter,
- MatchCondition[] results) {
- for (int i = 0; i < results.length; i++) {
- MatchCondition mc = results[i];
- HashSet<String> categories = null;
- if (mc.categories != null) {
- for (int j = 0; j < mc.categories.length; j++) {
- if (categories == null) {
- categories = new HashSet<String>();
- }
- categories.add(mc.categories[j]);
- }
- }
- int result = filter.match(mc.action, mc.mimeType,
- mc.data != null ? mc.data.getScheme() : null, mc.data,
- categories, "test");
- if ( (result & IntentFilter.MATCH_CATEGORY_MASK)
- != (mc.result & IntentFilter.MATCH_CATEGORY_MASK) ) {
- StringBuilder msg = new StringBuilder();
- msg.append("Error matching against IntentFilter:\n");
- filter.dump(new StringBuilderPrinter(msg), " ");
- msg.append("Match action: ");
- msg.append(mc.action);
- msg.append("\nMatch mimeType: ");
- msg.append(mc.mimeType);
- msg.append("\nMatch data: ");
- msg.append(mc.data);
- msg.append("\nMatch categories: ");
- if (mc.categories != null) {
- for (int j = 0; j < mc.categories.length; j++) {
- if (j > 0) msg.append(", ");
- msg.append(mc.categories[j]);
- }
- }
- msg.append("\nExpected result: 0x");
- msg.append(Integer.toHexString(mc.result));
- msg.append(", got result: 0x");
- msg.append(Integer.toHexString(result));
- throw new RuntimeException(msg.toString());
- }
- }
- }
-
- @SmallTest
- public void testActions() throws Exception {
- IntentFilter filter = new Match(
- new String[]{"action1"}, null, null, null, null, null);
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.MATCH_CATEGORY_EMPTY, null,
- null, null, null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_EMPTY, "action1",
- null, null, null),
- new MatchCondition(IntentFilter.NO_MATCH_ACTION, "action2",
- null, null, null),
- });
-
- filter = new Match(
- new String[]{"action1", "action2"},
- null, null, null, null, null);
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.MATCH_CATEGORY_EMPTY, null,
- null, null, null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_EMPTY, "action1",
- null, null, null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_EMPTY, "action2",
- null, null, null),
- new MatchCondition(IntentFilter.NO_MATCH_ACTION, "action3",
- null, null, null),
- });
- }
-
- @SmallTest
- public void testCategories() throws Exception {
- IntentFilter filter = new Match(
- null, new String[]{"category1"}, null, null, null, null);
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.MATCH_CATEGORY_EMPTY, null,
- null, null, null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_EMPTY, null,
- new String[]{"category1"}, null, null),
- new MatchCondition(IntentFilter.NO_MATCH_CATEGORY, null,
- new String[]{"category2"}, null, null),
- new MatchCondition(IntentFilter.NO_MATCH_CATEGORY, null,
- new String[]{"category1", "category2"}, null, null),
- });
-
- filter = new Match(
- null, new String[]{"category1", "category2"}, null, null,
- null, null);
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.MATCH_CATEGORY_EMPTY, null,
- null, null, null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_EMPTY, null,
- new String[]{"category1"}, null, null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_EMPTY, null,
- new String[]{"category2"}, null, null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_EMPTY, null,
- new String[]{"category1", "category2"}, null, null),
- new MatchCondition(IntentFilter.NO_MATCH_CATEGORY, null,
- new String[]{"category3"}, null, null),
- new MatchCondition(IntentFilter.NO_MATCH_CATEGORY, null,
- new String[]{"category1", "category2", "category3"},
- null, null),
- });
- }
-
- @SmallTest
- public void testMimeTypes() throws Exception {
- IntentFilter filter = new Match(
- null, null, new String[]{"which1/what1"}, null, null, null);
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.NO_MATCH_TYPE, null,
- null, null, null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_TYPE, null, null,
- "which1/what1", null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_TYPE, null, null,
- "which1/*", null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_TYPE, null, null,
- "*/*", null),
- new MatchCondition(IntentFilter.NO_MATCH_TYPE, null, null,
- "which2/what2", null),
- new MatchCondition(IntentFilter.NO_MATCH_TYPE, null, null,
- "which2/*", null),
- new MatchCondition(IntentFilter.NO_MATCH_TYPE, null, null,
- "which1/what2", null),
- });
-
- filter = new Match(null, null,
- new String[]{"which1/what1", "which2/what2"}, null, null,
- null);
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.NO_MATCH_TYPE, null,
- null, null, null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_TYPE, null, null,
- "which1/what1", null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_TYPE, null, null,
- "which1/*", null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_TYPE, null, null,
- "*/*", null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_TYPE, null, null,
- "which2/what2", null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_TYPE, null, null,
- "which2/*", null),
- new MatchCondition(IntentFilter.NO_MATCH_TYPE, null, null,
- "which1/what2", null),
- new MatchCondition(IntentFilter.NO_MATCH_TYPE, null, null,
- "which3/what3", null),
- });
-
- filter = new Match(null, null,
- new String[]{"which1/*"}, null, null, null);
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.NO_MATCH_TYPE, null,
- null, null, null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_TYPE, null, null,
- "which1/what1", null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_TYPE, null, null,
- "which1/*", null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_TYPE, null, null,
- "*/*", null),
- new MatchCondition(IntentFilter.NO_MATCH_TYPE, null, null,
- "which2/what2", null),
- new MatchCondition(IntentFilter.NO_MATCH_TYPE, null, null,
- "which2/*", null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_TYPE, null, null,
- "which1/what2", null),
- new MatchCondition(IntentFilter.NO_MATCH_TYPE, null, null,
- "which3/what3", null),
- });
-
- filter = new Match(null, null,
- new String[]{"*/*"}, null, null, null);
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.NO_MATCH_TYPE, null,
- null, null, null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_TYPE, null, null,
- "which1/what1", null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_TYPE, null, null,
- "which1/*", null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_TYPE, null, null,
- "*/*", null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_TYPE, null, null,
- "which2/what2", null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_TYPE, null, null,
- "which2/*", null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_TYPE, null, null,
- "which1/what2", null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_TYPE, null, null,
- "which3/what3", null),
- });
- }
-
- @SmallTest
- public void testSchemes() throws Exception {
- IntentFilter filter = new Match(null, null, null,
- new String[]{"scheme1"}, null, null);
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME, null,
- null, null, "scheme1:foo"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme2:foo"),
- });
-
- filter = new Match(null, null, null,
- new String[]{"scheme1", "scheme2"}, null, null);
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME, null,
- null, null, "scheme1:foo"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_SCHEME, null,
- null, null, "scheme2:foo"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme3:foo"),
- });
- }
-
- @SmallTest
- public void testAuthorities() throws Exception {
- IntentFilter filter = new Match(null, null, null,
- new String[]{"scheme1"},
- new String[]{"authority1"}, new String[]{null});
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, null),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme1:foo"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_HOST, null,
- null, null, "scheme1://authority1/"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme1://authority2/"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_HOST, null,
- null, null, "scheme1://authority1:100/"),
- });
-
- filter = new Match(null, null, null, new String[]{"scheme1"},
- new String[]{"authority1"}, new String[]{"100"});
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, null),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme1:foo"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme1://authority1/"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme1://authority2/"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PORT, null,
- null, null, "scheme1://authority1:100/"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme1://authority1:200/"),
- });
-
- filter = new Match(null, null, null, new String[]{"scheme1"},
- new String[]{"authority1", "authority2"},
- new String[]{"100", null});
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, null),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme1:foo"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme1://authority1/"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_HOST, null,
- null, null, "scheme1://authority2/"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PORT, null,
- null, null, "scheme1://authority1:100/"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme1://authority1:200/"),
- });
- }
-
- @SmallTest
- public void testPaths() throws Exception {
- IntentFilter filter = new Match(null, null, null,
- new String[]{"scheme"}, new String[]{"authority"}, null,
- new String[]{"/literal1", "/2literal"},
- new int[]{PATTERN_LITERAL, PATTERN_LITERAL});
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/literal1"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/2literal"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme://authority/literal"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme://authority/literal12"),
- });
- filter = new Match(null, null, null,
- new String[]{"scheme"}, new String[]{"authority"}, null,
- new String[]{"/literal1", "/2literal"},
- new int[]{PATTERN_PREFIX, PATTERN_PREFIX});
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/literal1"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/2literal"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme://authority/literal"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/literal12"),
- });
- filter = new Match(null, null, null,
- new String[]{"scheme"}, new String[]{"authority"}, null,
- new String[]{"/.*"},
- new int[]{PATTERN_SIMPLE_GLOB});
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/literal1"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme://authority"),
- });
- filter = new Match(null, null, null,
- new String[]{"scheme"}, new String[]{"authority"}, null,
- new String[]{".*"},
- new int[]{PATTERN_SIMPLE_GLOB});
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/literal1"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority"),
- });
- filter = new Match(null, null, null,
- new String[]{"scheme"}, new String[]{"authority"}, null,
- new String[]{"/a1*b"},
- new int[]{PATTERN_SIMPLE_GLOB});
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/ab"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/a1b"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/a11b"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme://authority/a2b"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme://authority/a1bc"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme://authority/"),
- });
- filter = new Match(null, null, null,
- new String[]{"scheme"}, new String[]{"authority"}, null,
- new String[]{"/a1*"},
- new int[]{PATTERN_SIMPLE_GLOB});
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/a1"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme://authority/ab"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/a11"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme://authority/a1b"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/a11"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme://authority/a2"),
- });
- filter = new Match(null, null, null,
- new String[]{"scheme"}, new String[]{"authority"}, null,
- new String[]{"/a\\.*b"},
- new int[]{PATTERN_SIMPLE_GLOB});
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/ab"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/a.b"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/a..b"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme://authority/a2b"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme://authority/a.bc"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme://authority/"),
- });
- filter = new Match(null, null, null,
- new String[]{"scheme"}, new String[]{"authority"}, null,
- new String[]{"/a.*b"},
- new int[]{PATTERN_SIMPLE_GLOB});
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/ab"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/a.b"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/a.1b"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/a2b"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme://authority/a.bc"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme://authority/"),
- });
- filter = new Match(null, null, null,
- new String[]{"scheme"}, new String[]{"authority"}, null,
- new String[]{"/a.*"},
- new int[]{PATTERN_SIMPLE_GLOB});
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, null),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/ab"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/a.b"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/a.1b"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/a2b"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/a.bc"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme://authority/"),
- });
- filter = new Match(null, null, null,
- new String[]{"scheme"}, new String[]{"authority"}, null,
- new String[]{"/a.\\*b"},
- new int[]{PATTERN_SIMPLE_GLOB});
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, null),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme://authority/ab"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/a.*b"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/a1*b"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme://authority/a2b"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme://authority/a.bc"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme://authority/"),
- });
- filter = new Match(null, null, null,
- new String[]{"scheme"}, new String[]{"authority"}, null,
- new String[]{"/a.\\*"},
- new int[]{PATTERN_SIMPLE_GLOB});
- checkMatches(filter, new MatchCondition[]{
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, null),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme://authority/ab"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/a.*"),
- new MatchCondition(IntentFilter.MATCH_CATEGORY_PATH, null,
- null, null, "scheme://authority/a1*"),
- new MatchCondition(IntentFilter.NO_MATCH_DATA, null,
- null, null, "scheme://authority/a1b"),
- });
- }
-
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/content/PluralResourcesTest.java b/tests/AndroidTests/src/com/android/unit_tests/content/PluralResourcesTest.java
deleted file mode 100644
index c3d1478..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/content/PluralResourcesTest.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.content;
-
-import android.content.res.AssetManager;
-import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.content.res.TypedArray;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.util.TypedValue;
-import android.util.Log;
-import com.android.unit_tests.R;
-
-import junit.framework.Assert;
-
-import java.util.Locale;
-
-public class PluralResourcesTest extends AndroidTestCase {
- private static final String TAG = "PluralResourcesTest";
-
- private Resources mResources;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mResources = mContext.getResources();
- }
-
- Resources resourcesForLanguage(String lang) {
- Configuration config = new Configuration();
- config.updateFrom(mResources.getConfiguration());
- config.locale = new Locale(lang);
- return new Resources(mResources.getAssets(), mResources.getDisplayMetrics(), config);
- }
-
- @SmallTest
- public void testPlurals() throws Exception {
- CharSequence cs;
- Resources res = resourcesForLanguage("en");
-
- cs = res.getQuantityText(R.plurals.plurals_test, 0);
- Log.d(TAG, "english 0 cs=" + cs);
- Assert.assertEquals(cs.toString(), "Some dogs");
-
- cs = res.getQuantityText(R.plurals.plurals_test, 1);
- Log.d(TAG, "english 1 cs=" + cs);
- Assert.assertEquals(cs.toString(), "A dog");
-
- cs = res.getQuantityText(R.plurals.plurals_test, 2);
- Assert.assertEquals(cs.toString(), "Some dogs");
-
- cs = res.getQuantityText(R.plurals.plurals_test, 5);
- Assert.assertEquals(cs.toString(), "Some dogs");
-
- cs = res.getQuantityText(R.plurals.plurals_test, 500);
- Assert.assertEquals(cs.toString(), "Some dogs");
- }
-
- @SmallTest
- public void testCzech() throws Exception {
- CharSequence cs;
- Resources res = resourcesForLanguage("cs");
-
- cs = res.getQuantityText(R.plurals.plurals_test, 0);
- Log.d(TAG, "czech 0 cs=" + cs);
- Assert.assertEquals(cs.toString(), "Some Czech dogs");
-
- cs = res.getQuantityText(R.plurals.plurals_test, 1);
- Log.d(TAG, "czech 1 cs=" + cs);
- Assert.assertEquals(cs.toString(), "A Czech dog");
-
- cs = res.getQuantityText(R.plurals.plurals_test, 2);
- Log.d(TAG, "czech 2 cs=" + cs);
- Assert.assertEquals(cs.toString(), "Few Czech dogs");
-
- cs = res.getQuantityText(R.plurals.plurals_test, 5);
- Assert.assertEquals(cs.toString(), "Some Czech dogs");
-
- cs = res.getQuantityText(R.plurals.plurals_test, 500);
- Assert.assertEquals(cs.toString(), "Some Czech dogs");
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/content/PrimitiveTest.java b/tests/AndroidTests/src/com/android/unit_tests/content/PrimitiveTest.java
deleted file mode 100644
index 44098cc..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/content/PrimitiveTest.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.content;
-
-import android.content.res.Resources;
-import android.content.res.TypedArray;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.util.TypedValue;
-import com.android.unit_tests.R;
-
-public class PrimitiveTest extends AndroidTestCase {
- private Resources mResources;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mResources = mContext.getResources();
- }
-
- private void tryEnum(int resid, int expected) {
- TypedArray sa =
- mContext.obtainStyledAttributes(resid, R.styleable.EnumStyle);
- int value = sa.getInt(R.styleable.EnumStyle_testEnum, -1);
- sa.recycle();
-
- assertEquals("Expecting value " + expected + " got " + value
- + ": in resource 0x" + Integer.toHexString(resid),
- expected, value);
- }
-
- @SmallTest
- public void testEnum() throws Exception {
- tryEnum(R.style.TestEnum1, 1);
- tryEnum(R.style.TestEnum2, 2);
- tryEnum(R.style.TestEnum10, 10);
- tryEnum(R.style.TestEnum1_EmptyInherit, 1);
- }
-
- private void tryFlag(int resid, int expected) {
- TypedArray sa =
- mContext.obtainStyledAttributes(resid, R.styleable.FlagStyle);
- int value = sa.getInt(R.styleable.FlagStyle_testFlags, -1);
- sa.recycle();
-
- assertEquals("Expecting value " + expected + " got " + value
- + ": in resource 0x" + Integer.toHexString(resid),
- expected, value);
- }
-
- @SmallTest
- public void testFlags() throws Exception {
- tryFlag(R.style.TestFlag1, 0x1);
- tryFlag(R.style.TestFlag2, 0x2);
- tryFlag(R.style.TestFlag31, 0x40000000);
- tryFlag(R.style.TestFlag1And2, 0x3);
- tryFlag(R.style.TestFlag1And2And31, 0x40000003);
- }
-
- private void tryBoolean(int resid, boolean expected) {
- TypedValue v = new TypedValue();
- mContext.getResources().getValue(resid, v, true);
- assertEquals(TypedValue.TYPE_INT_BOOLEAN, v.type);
- assertEquals("Expecting boolean value " + expected + " got " + v
- + " from TypedValue: in resource 0x" + Integer.toHexString(resid),
- expected, v.data != 0);
- assertEquals("Expecting boolean value " + expected + " got " + v
- + " from getBoolean(): in resource 0x" + Integer.toHexString(resid),
- expected, mContext.getResources().getBoolean(resid));
- }
-
- @SmallTest
- public void testBoolean() throws Exception {
- tryBoolean(R.bool.trueRes, true);
- tryBoolean(R.bool.falseRes, false);
- }
-
- private void tryString(int resid, String expected) {
- TypedValue v = new TypedValue();
- mContext.getResources().getValue(resid, v, true);
- assertEquals(TypedValue.TYPE_STRING, v.type);
- assertEquals("Expecting string value " + expected + " got " + v
- + ": in resource 0x" + Integer.toHexString(resid),
- expected, v.string);
- }
-
- @SmallTest
- public void testStringCoerce() throws Exception {
- tryString(R.string.coerceIntegerToString, "100");
- tryString(R.string.coerceBooleanToString, "true");
- tryString(R.string.coerceColorToString, "#fff");
- tryString(R.string.coerceFloatToString, "100.0");
- tryString(R.string.coerceDimensionToString, "100px");
- tryString(R.string.coerceFractionToString, "100%");
- }
-
- private static void checkString(int resid, String actual, String expected) {
- assertEquals("Expecting string value \"" + expected + "\" got \""
- + actual + "\" in resources 0x" + Integer.toHexString(resid),
- expected, actual);
- }
-
- @SmallTest
- public void testFormattedString() throws Exception {
- // Make sure the regular one doesn't format anything
- checkString(R.string.formattedStringNone,
- mResources.getString(R.string.formattedStringNone),
- "Format[]");
- checkString(R.string.formattedStringOne,
- mResources.getString(R.string.formattedStringOne),
- "Format[%d]");
- checkString(R.string.formattedStringTwo,
- mResources.getString(R.string.formattedStringTwo),
- "Format[%3$d,%2$s]");
- // Make sure the formatted one works
- checkString(R.string.formattedStringNone,
- mResources.getString(R.string.formattedStringNone),
- "Format[]");
- checkString(R.string.formattedStringOne,
- mResources.getString(R.string.formattedStringOne, 42),
- "Format[42]");
- checkString(R.string.formattedStringTwo,
- mResources.getString(R.string.formattedStringTwo, "unused", "hi", 43),
- "Format[43,hi]");
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/content/RawResourceTest.java b/tests/AndroidTests/src/com/android/unit_tests/content/RawResourceTest.java
deleted file mode 100644
index 1786dc4..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/content/RawResourceTest.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.content;
-
-import android.content.res.Resources;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import com.android.unit_tests.R;
-
-import java.io.InputStream;
-
-public class RawResourceTest extends AndroidTestCase {
- private Resources mResources;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mResources = mContext.getResources();
- }
-
- @SmallTest
- public void testReadToEnd() throws Exception {
- InputStream is = mResources.openRawResource(R.raw.text);
- AssetTest.verifyTextAsset(is);
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/content/ResourceNameTest.java b/tests/AndroidTests/src/com/android/unit_tests/content/ResourceNameTest.java
deleted file mode 100644
index 2a56243..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/content/ResourceNameTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.content;
-
-import android.content.res.Resources;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import com.android.unit_tests.R;
-
-public class ResourceNameTest extends AndroidTestCase {
-
- @SmallTest
- public void testGetResourceName() {
- Resources res = mContext.getResources();
-
- String fullName = res.getResourceName(R.configVarying.simple);
- assertEquals("com.android.unit_tests:configVarying/simple", fullName);
-
- String packageName = res.getResourcePackageName(R.configVarying.simple);
- assertEquals("com.android.unit_tests", packageName);
-
- String typeName = res.getResourceTypeName(R.configVarying.simple);
- assertEquals("configVarying", typeName);
-
- String entryName = res.getResourceEntryName(R.configVarying.simple);
- assertEquals("simple", entryName);
- }
-
- @SmallTest
- public void testGetResourceIdentifier() {
- Resources res = mContext.getResources();
- int resid = res.getIdentifier(
- "com.android.unit_tests:configVarying/simple",
- null, null);
- assertEquals(R.configVarying.simple, resid);
-
- resid = res.getIdentifier("configVarying/simple", null,
- "com.android.unit_tests");
- assertEquals(R.configVarying.simple, resid);
-
- resid = res.getIdentifier("simple", "configVarying",
- "com.android.unit_tests");
- assertEquals(R.configVarying.simple, resid);
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/content/ResourceTests.java b/tests/AndroidTests/src/com/android/unit_tests/content/ResourceTests.java
deleted file mode 100644
index 943941e..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/content/ResourceTests.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.content;
-
-import junit.framework.TestSuite;
-
-public class ResourceTests {
- public static TestSuite suite() {
- TestSuite suite = new TestSuite(ResourceTests.class.getName());
-
- suite.addTestSuite(FractionTest.class);
- suite.addTestSuite(PrimitiveTest.class);
- suite.addTestSuite(ArrayTest.class);
- suite.addTestSuite(ConfigTest.class);
- suite.addTestSuite(RawResourceTest.class);
- suite.addTestSuite(ResourceNameTest.class);
- return suite;
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/graphics/BitmapTest.java b/tests/AndroidTests/src/com/android/unit_tests/graphics/BitmapTest.java
deleted file mode 100644
index e8001e3..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/graphics/BitmapTest.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.graphics;
-
-import android.graphics.Bitmap;
-import android.graphics.Color;
-import android.test.suitebuilder.annotation.SmallTest;
-import junit.framework.TestCase;
-
-
-public class BitmapTest extends TestCase {
-
- @SmallTest
- public void testBasic() throws Exception {
- Bitmap bm1 = Bitmap.createBitmap(100, 200, Bitmap.Config.ARGB_8888);
- Bitmap bm2 = Bitmap.createBitmap(100, 200, Bitmap.Config.RGB_565);
- Bitmap bm3 = Bitmap.createBitmap(100, 200, Bitmap.Config.ARGB_4444);
-
- assertTrue("mutability", bm1.isMutable());
- assertTrue("mutability", bm2.isMutable());
- assertTrue("mutability", bm3.isMutable());
-
- assertEquals("width", 100, bm1.getWidth());
- assertEquals("width", 100, bm2.getWidth());
- assertEquals("width", 100, bm3.getWidth());
-
- assertEquals("rowbytes", 400, bm1.getRowBytes());
- assertEquals("rowbytes", 200, bm2.getRowBytes());
- assertEquals("rowbytes", 200, bm3.getRowBytes());
-
- assertEquals("height", 200, bm1.getHeight());
- assertEquals("height", 200, bm2.getHeight());
- assertEquals("height", 200, bm3.getHeight());
-
- assertTrue("hasAlpha", bm1.hasAlpha());
- assertFalse("hasAlpha", bm2.hasAlpha());
- assertTrue("hasAlpha", bm3.hasAlpha());
-
- assertTrue("getConfig", bm1.getConfig() == Bitmap.Config.ARGB_8888);
- assertTrue("getConfig", bm2.getConfig() == Bitmap.Config.RGB_565);
- assertTrue("getConfig", bm3.getConfig() == Bitmap.Config.ARGB_4444);
- }
-
- @SmallTest
- public void testMutability() throws Exception {
- Bitmap bm1 = Bitmap.createBitmap(100, 200, Bitmap.Config.ARGB_8888);
- Bitmap bm2 = Bitmap.createBitmap(new int[100 * 200], 100, 200,
- Bitmap.Config.ARGB_8888);
-
- assertTrue("mutability", bm1.isMutable());
- assertFalse("mutability", bm2.isMutable());
-
- bm1.eraseColor(0);
-
- try {
- bm2.eraseColor(0);
- fail("eraseColor should throw exception");
- } catch (IllegalStateException ex) {
- // safe to catch and ignore this
- }
- }
-
- @SmallTest
- public void testGetPixelsWithAlpha() throws Exception {
- int[] colors = new int[100];
- for (int i = 0; i < 100; i++) {
- colors[i] = (0xFF << 24) | (i << 16) | (i << 8) | i;
- }
-
- Bitmap bm = Bitmap.createBitmap(colors, 10, 10,
- Bitmap.Config.ARGB_8888);
-
- int[] pixels = new int[100];
- bm.getPixels(pixels, 0, 10, 0, 0, 10, 10);
- for (int i = 0; i < 100; i++) {
- int p = bm.getPixel(i % 10, i / 10);
- assertEquals("getPixels", p, pixels[i]);
- }
-
- for (int i = 0; i < 100; i++) {
- int p = bm.getPixel(i % 10, i / 10);
- assertEquals("getPixel", p, colors[i]);
- assertEquals("pixel value", p,
- ((0xFF << 24) | (i << 16) | (i << 8) | i));
- }
-
- }
-
- @SmallTest
- public void testGetPixelsWithoutAlpha() throws Exception {
- int[] colors = new int[100];
- for (int i = 0; i < 100; i++) {
- colors[i] = (0xFF << 24) | (i << 16) | (i << 8) | i;
- }
-
- Bitmap bm = Bitmap.createBitmap(colors, 10, 10, Bitmap.Config.RGB_565);
-
- int[] pixels = new int[100];
- bm.getPixels(pixels, 0, 10, 0, 0, 10, 10);
- for (int i = 0; i < 100; i++) {
- int p = bm.getPixel(i % 10, i / 10);
- assertEquals("getPixels", p, pixels[i]);
- }
- }
-
- @SmallTest
- public void testSetPixelsWithAlpha() throws Exception {
- int[] colors = new int[100];
- for (int i = 0; i < 100; i++) {
- colors[i] = (0xFF << 24) | (i << 16) | (i << 8) | i;
- }
-
- Bitmap.Config config = Bitmap.Config.ARGB_8888;
- Bitmap bm1 = Bitmap.createBitmap(colors, 10, 10, config);
- Bitmap bm2 = Bitmap.createBitmap(10, 10, config);
-
- for (int i = 0; i < 100; i++) {
- bm2.setPixel(i % 10, i / 10, colors[i]);
- }
-
- for (int i = 0; i < 100; i++) {
- assertEquals("setPixel",
- bm1.getPixel(i % 10, i / 10), bm2.getPixel(i % 10, i / 10));
- }
-
- for (int i = 0; i < 100; i++) {
- assertEquals("setPixel value",
- bm1.getPixel(i % 10, i / 10), colors[i]);
- }
- }
-
- @SmallTest
- public void testSetPixelsWithoutAlpha() throws Exception {
- int[] colors = new int[100];
- for (int i = 0; i < 100; i++) {
- colors[i] = (0xFF << 24) | (i << 16) | (i << 8) | i;
- }
-
- Bitmap.Config config = Bitmap.Config.RGB_565;
- Bitmap bm1 = Bitmap.createBitmap(colors, 10, 10, config);
- Bitmap bm2 = Bitmap.createBitmap(10, 10, config);
-
- for (int i = 0; i < 100; i++) {
- bm2.setPixel(i % 10, i / 10, colors[i]);
- }
-
- for (int i = 0; i < 100; i++) {
- assertEquals("setPixel", bm1.getPixel(i % 10, i / 10),
- bm2.getPixel(i % 10, i / 10));
- }
- }
-
- private static int computePrePostMul(int alpha, int comp) {
- if (alpha == 0) {
- return 0;
- }
- int premul = Math.round(alpha * comp / 255.f);
- int unpre = Math.round(255.0f * premul / alpha);
- return unpre;
- }
-
- @SmallTest
- public void testSetPixelsWithNonOpaqueAlpha() throws Exception {
- int[] colors = new int[256];
- for (int i = 0; i < 256; i++) {
- colors[i] = (i << 24) | (0xFF << 16) | (0x80 << 8) | 0;
- }
-
- Bitmap.Config config = Bitmap.Config.ARGB_8888;
-
- // create a bitmap with the color array specified
- Bitmap bm1 = Bitmap.createBitmap(colors, 16, 16, config);
-
- // create a bitmap with no colors, but then call setPixels
- Bitmap bm2 = Bitmap.createBitmap(16, 16, config);
- bm2.setPixels(colors, 0, 16, 0, 0, 16, 16);
-
- // now check that we did a good job returning the unpremultiplied alpha
- final int tolerance = 1;
- for (int i = 0; i < 256; i++) {
- int c0 = colors[i];
- int c1 = bm1.getPixel(i % 16, i / 16);
- int c2 = bm2.getPixel(i % 16, i / 16);
-
- // these two should always be identical
- assertEquals("getPixel", c1, c2);
-
- // comparing the original (c0) with the returned color is tricky,
- // since it gets premultiplied during the set(), and unpremultiplied
- // by the get().
- int a0 = Color.alpha(c0);
- int a1 = Color.alpha(c1);
- assertEquals("alpha", a0, a1);
-
- int r0 = Color.red(c0);
- int r1 = Color.red(c1);
- int rr = computePrePostMul(a0, r0);
- assertTrue("red", Math.abs(rr - r1) <= tolerance);
-
- int g0 = Color.green(c0);
- int g1 = Color.green(c1);
- int gg = computePrePostMul(a0, g0);
- assertTrue("green", Math.abs(gg - g1) <= tolerance);
-
- int b0 = Color.blue(c0);
- int b1 = Color.blue(c1);
- int bb = computePrePostMul(a0, b0);
- assertTrue("blue", Math.abs(bb - b1) <= tolerance);
-
- if (false) {
- int cc = Color.argb(a0, rr, gg, bb);
- android.util.Log.d("skia", "original " + Integer.toHexString(c0) +
- " set+get " + Integer.toHexString(c1) +
- " local " + Integer.toHexString(cc));
- }
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/graphics/GraphicsTests.java b/tests/AndroidTests/src/com/android/unit_tests/graphics/GraphicsTests.java
deleted file mode 100644
index a8b6b9a..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/graphics/GraphicsTests.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.graphics;
-
-import junit.framework.TestSuite;
-
-public class GraphicsTests {
- public static TestSuite suite() {
- TestSuite suite = new TestSuite(GraphicsTests.class.getName());
-
- suite.addTestSuite(BitmapTest.class);
- suite.addTestSuite(TypefaceTest.class);
- return suite;
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/graphics/TypefaceTest.java b/tests/AndroidTests/src/com/android/unit_tests/graphics/TypefaceTest.java
deleted file mode 100644
index 5c40e6f..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/graphics/TypefaceTest.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.graphics;
-
-import android.graphics.Paint;
-import android.graphics.Typeface;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import junit.framework.TestCase;
-
-
-public class TypefaceTest extends TestCase {
-
- // create array of all std faces
- private final Typeface[] mFaces = new Typeface[] {
- Typeface.create(Typeface.SANS_SERIF, 0),
- Typeface.create(Typeface.SANS_SERIF, 1),
- Typeface.create(Typeface.SERIF, 0),
- Typeface.create(Typeface.SERIF, 1),
- Typeface.create(Typeface.SERIF, 2),
- Typeface.create(Typeface.SERIF, 3),
- Typeface.create(Typeface.MONOSPACE, 0)
- };
-
- @SmallTest
- public void testBasic() throws Exception {
- assertTrue("basic", Typeface.DEFAULT != null);
- assertTrue("basic", Typeface.DEFAULT_BOLD != null);
- assertTrue("basic", Typeface.SANS_SERIF != null);
- assertTrue("basic", Typeface.SERIF != null);
- assertTrue("basic", Typeface.MONOSPACE != null);
- }
-
- @SmallTest
- public void testUnique() throws Exception {
- final int n = mFaces.length;
- for (int i = 0; i < n; i++) {
- for (int j = i + 1; j < n; j++) {
- assertTrue("unique", mFaces[i] != mFaces[j]);
- }
- }
- }
-
- @SmallTest
- public void testStyles() throws Exception {
- assertTrue("style", mFaces[0].getStyle() == Typeface.NORMAL);
- assertTrue("style", mFaces[1].getStyle() == Typeface.BOLD);
- assertTrue("style", mFaces[2].getStyle() == Typeface.NORMAL);
- assertTrue("style", mFaces[3].getStyle() == Typeface.BOLD);
- assertTrue("style", mFaces[4].getStyle() == Typeface.ITALIC);
- assertTrue("style", mFaces[5].getStyle() == Typeface.BOLD_ITALIC);
- assertTrue("style", mFaces[6].getStyle() == Typeface.NORMAL);
- }
-
- @MediumTest
- public void testUniformY() throws Exception {
- Paint p = new Paint();
- final int n = mFaces.length;
- for (int i = 1; i <= 36; i++) {
- p.setTextSize(i);
- float ascent = 0;
- float descent = 0;
- for (int j = 0; j < n; j++) {
- p.setTypeface(mFaces[j]);
- Paint.FontMetrics fm = p.getFontMetrics();
- if (j == 0) {
- ascent = fm.ascent;
- descent = fm.descent;
- } else {
- assertTrue("fontMetrics", fm.ascent == ascent);
- assertTrue("fontMetrics", fm.descent == descent);
- }
- }
- }
- }
-
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/os/AidlTest.aidl b/tests/AndroidTests/src/com/android/unit_tests/os/AidlTest.aidl
deleted file mode 100644
index 62c75a5..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/os/AidlTest.aidl
+++ /dev/null
@@ -1,20 +0,0 @@
-/* //device/apps/AndroidTests/src/com.android.unit_tests/AidlTest.aidl
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
-
-package com.android.unit_tests.os;
-
-parcelable AidlTest.TestParcelable;
diff --git a/tests/AndroidTests/src/com/android/unit_tests/os/AidlTest.java b/tests/AndroidTests/src/com/android/unit_tests/os/AidlTest.java
deleted file mode 100644
index 52e666d..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/os/AidlTest.java
+++ /dev/null
@@ -1,422 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.os;
-
-import android.os.IInterface;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.test.suitebuilder.annotation.SmallTest;
-import com.google.android.collect.Lists;
-import junit.framework.TestCase;
-
-import java.util.List;
-
-public class AidlTest extends TestCase {
-
- private IAidlTest mRemote;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- AidlObject mLocal = new AidlObject();
- mRemote = IAidlTest.Stub.asInterface(mLocal);
- }
-
- private static boolean check(TestParcelable p, int n, String s) {
- return p.mAnInt == n &&
- ((s == null && p.mAString == null) || s.equals(p.mAString));
- }
-
- public static class TestParcelable implements Parcelable {
- public int mAnInt;
- public String mAString;
-
- public TestParcelable() {
- }
-
- public TestParcelable(int i, String s) {
- mAnInt = i;
- mAString = s;
- }
-
- public int describeContents() {
- return 0;
- }
-
- public void writeToParcel(Parcel parcel, int flags) {
- parcel.writeInt(mAnInt);
- parcel.writeString(mAString);
- }
-
- public void readFromParcel(Parcel parcel) {
- mAnInt = parcel.readInt();
- mAString = parcel.readString();
- }
-
- public static final Parcelable.Creator<TestParcelable> CREATOR
- = new Parcelable.Creator<TestParcelable>() {
- public TestParcelable createFromParcel(Parcel parcel) {
- return new TestParcelable(parcel.readInt(),
- parcel.readString());
- }
-
- public TestParcelable[] newArray(int size) {
- return new TestParcelable[size];
- }
- };
-
- public String toString() {
- return super.toString() + " {" + mAnInt + "/" + mAString + "}";
- }
- }
-
- private static class AidlObject extends IAidlTest.Stub {
- public IInterface queryLocalInterface(String descriptor) {
- // overriding this to return null makes asInterface always
- // generate a proxy
- return null;
- }
-
- public int intMethod(int a) {
- return a;
- }
-
- public TestParcelable parcelableIn(TestParcelable p) {
- p.mAnInt++;
- return p;
- }
-
- public TestParcelable parcelableOut(TestParcelable p) {
- p.mAnInt = 44;
- return p;
- }
-
- public TestParcelable parcelableInOut(TestParcelable p) {
- p.mAnInt++;
- return p;
- }
-
- public TestParcelable listParcelableLonger(List<TestParcelable> list, int index) {
- list.add(list.get(index));
- return list.get(index);
- }
-
- public int listParcelableShorter(List<TestParcelable> list, int index) {
- list.remove(index);
- return list.size();
- }
-
- public boolean[] booleanArray(boolean[] a0, boolean[] a1, boolean[] a2) {
- for (int i = 0; i < a0.length && i < a2.length; i++) {
- a2[i] = a0[i];
- }
- for (int i = 0; i < a0.length && i < a1.length; i++) {
- a1[i] = a0[i];
- }
- return a0;
- }
-
- public char[] charArray(char[] a0, char[] a1, char[] a2) {
- for (int i = 0; i < a0.length && i < a2.length; i++) {
- a2[i] = a0[i];
- }
- for (int i = 0; i < a0.length && i < a1.length; i++) {
- a1[i] = a0[i];
- }
- return a0;
- }
-
- public int[] intArray(int[] a0, int[] a1, int[] a2) {
- for (int i = 0; i < a0.length && i < a2.length; i++) {
- a2[i] = a0[i];
- }
- for (int i = 0; i < a0.length && i < a1.length; i++) {
- a1[i] = a0[i];
- }
- return a0;
- }
-
- public long[] longArray(long[] a0, long[] a1, long[] a2) {
- for (int i = 0; i < a0.length && i < a2.length; i++) {
- a2[i] = a0[i];
- }
- for (int i = 0; i < a0.length && i < a1.length; i++) {
- a1[i] = a0[i];
- }
- return a0;
- }
-
- public float[] floatArray(float[] a0, float[] a1, float[] a2) {
- for (int i = 0; i < a0.length && i < a2.length; i++) {
- a2[i] = a0[i];
- }
- for (int i = 0; i < a0.length && i < a1.length; i++) {
- a1[i] = a0[i];
- }
- return a0;
- }
-
- public double[] doubleArray(double[] a0, double[] a1, double[] a2) {
- for (int i = 0; i < a0.length && i < a2.length; i++) {
- a2[i] = a0[i];
- }
- for (int i = 0; i < a0.length && i < a1.length; i++) {
- a1[i] = a0[i];
- }
- return a0;
- }
-
- public String[] stringArray(String[] a0, String[] a1, String[] a2) {
- for (int i = 0; i < a0.length && i < a2.length; i++) {
- a2[i] = a0[i];
- }
- for (int i = 0; i < a0.length && i < a1.length; i++) {
- a1[i] = a0[i];
- }
- return a0;
- }
-
- public TestParcelable[] parcelableArray(TestParcelable[] a0,
- TestParcelable[] a1, TestParcelable[] a2) {
- return null;
- }
-
- public void voidSecurityException() {
- throw new SecurityException("gotcha!");
- }
-
- public int intSecurityException() {
- throw new SecurityException("gotcha!");
- }
- }
-
- @SmallTest
- public void testInt() throws Exception {
- int result = mRemote.intMethod(42);
- assertEquals(42, result);
- }
-
- @SmallTest
- public void testParcelableIn() throws Exception {
- TestParcelable arg = new TestParcelable(43, "hi");
- TestParcelable result = mRemote.parcelableIn(arg);
- assertNotSame(arg, result);
-
- assertEquals(43, arg.mAnInt);
- assertEquals(44, result.mAnInt);
- }
-
- @SmallTest
- public void testParcelableOut() throws Exception {
- TestParcelable arg = new TestParcelable(43, "hi");
- TestParcelable result = mRemote.parcelableOut(arg);
- assertNotSame(arg, result);
- assertEquals(44, arg.mAnInt);
- }
-
- @SmallTest
- public void testParcelableInOut() throws Exception {
- TestParcelable arg = new TestParcelable(43, "hi");
- TestParcelable result = mRemote.parcelableInOut(arg);
- assertNotSame(arg, result);
- assertEquals(44, arg.mAnInt);
- }
-
- @SmallTest
- public void testListParcelableLonger() throws Exception {
- List<TestParcelable> list = Lists.newArrayList();
- list.add(new TestParcelable(33, "asdf"));
- list.add(new TestParcelable(34, "jkl;"));
-
- TestParcelable result = mRemote.listParcelableLonger(list, 1);
-
-// System.out.println("result=" + result);
-// for (TestParcelable p : list) {
-// System.out.println("longer: " + p);
-// }
-
- assertEquals("jkl;", result.mAString);
- assertEquals(34, result.mAnInt);
-
- assertEquals(3, list.size());
- assertTrue("out parameter 0: " + list.get(0), check(list.get(0), 33, "asdf"));
- assertTrue("out parameter 1: " + list.get(1), check(list.get(1), 34, "jkl;"));
- assertTrue("out parameter 2: " + list.get(2), check(list.get(2), 34, "jkl;"));
-
- assertNotSame(list.get(1), list.get(2));
- }
-
- @SmallTest
- public void testListParcelableShorter() throws Exception {
- List<TestParcelable> list = Lists.newArrayList();
- list.add(new TestParcelable(33, "asdf"));
- list.add(new TestParcelable(34, "jkl;"));
- list.add(new TestParcelable(35, "qwerty"));
-
- int result = mRemote.listParcelableShorter(list, 2);
-
-// System.out.println("result=" + result);
-// for (TestParcelable p : list) {
-// System.out.println("shorter: " + p);
-// }
-
- assertEquals(2, result);
- assertEquals(2, list.size());
- assertTrue("out parameter 0: " + list.get(0), check(list.get(0), 33, "asdf"));
- assertTrue("out parameter 1: " + list.get(1), check(list.get(1), 34, "jkl;"));
-
- assertNotSame(list.get(0), list.get(1));
- }
-
- @SmallTest
- public void testArrays() throws Exception {
- // boolean
- boolean[] b0 = new boolean[]{true};
- boolean[] b1 = new boolean[]{false, true};
- boolean[] b2 = new boolean[]{true, false, true};
- boolean[] br = mRemote.booleanArray(b0, b1, b2);
-
- assertEquals(1, br.length);
- assertTrue(br[0]);
-
- assertTrue(b1[0]);
- assertFalse(b1[1]);
-
- assertTrue(b2[0]);
- assertFalse(b2[1]);
- assertTrue(b2[2]);
-
- // char
- char[] c0 = new char[]{'a'};
- char[] c1 = new char[]{'b', 'c'};
- char[] c2 = new char[]{'d', 'e', 'f'};
- char[] cr = mRemote.charArray(c0, c1, c2);
-
- assertEquals(1, cr.length);
- assertEquals('a', cr[0]);
-
- assertEquals('a', c1[0]);
- assertEquals('\0', c1[1]);
-
- assertEquals('a', c2[0]);
- assertEquals('e', c2[1]);
- assertEquals('f', c2[2]);
-
- // int
- int[] i0 = new int[]{34};
- int[] i1 = new int[]{38, 39};
- int[] i2 = new int[]{42, 43, 44};
- int[] ir = mRemote.intArray(i0, i1, i2);
-
- assertEquals(1, ir.length);
- assertEquals(34, ir[0]);
-
- assertEquals(34, i1[0]);
- assertEquals(0, i1[1]);
-
- assertEquals(34, i2[0]);
- assertEquals(43, i2[1]);
- assertEquals(44, i2[2]);
-
- // long
- long[] l0 = new long[]{50};
- long[] l1 = new long[]{51, 52};
- long[] l2 = new long[]{53, 54, 55};
- long[] lr = mRemote.longArray(l0, l1, l2);
-
- assertEquals(1, lr.length);
- assertEquals(50, lr[0]);
-
- assertEquals(50, l1[0]);
- assertEquals(0, l1[1]);
-
- assertEquals(50, l2[0]);
- assertEquals(54, l2[1]);
- assertEquals(55, l2[2]);
-
- // float
- float[] f0 = new float[]{90.1f};
- float[] f1 = new float[]{90.2f, 90.3f};
- float[] f2 = new float[]{90.4f, 90.5f, 90.6f};
- float[] fr = mRemote.floatArray(f0, f1, f2);
-
- assertEquals(1, fr.length);
- assertEquals(90.1f, fr[0]);
-
- assertEquals(90.1f, f1[0]);
- assertEquals(0f, f1[1], 0.0f);
-
- assertEquals(90.1f, f2[0]);
- assertEquals(90.5f, f2[1]);
- assertEquals(90.6f, f2[2]);
-
- // double
- double[] d0 = new double[]{100.1};
- double[] d1 = new double[]{100.2, 100.3};
- double[] d2 = new double[]{100.4, 100.5, 100.6};
- double[] dr = mRemote.doubleArray(d0, d1, d2);
-
- assertEquals(1, dr.length);
- assertEquals(100.1, dr[0]);
-
- assertEquals(100.1, d1[0]);
- assertEquals(0, d1[1], 0.0);
-
- assertEquals(100.1, d2[0]);
- assertEquals(100.5, d2[1]);
- assertEquals(100.6, d2[2]);
-
- // String
- String[] s0 = new String[]{"s0[0]"};
- String[] s1 = new String[]{"s1[0]", "s1[1]"};
- String[] s2 = new String[]{"s2[0]", "s2[1]", "s2[2]"};
- String[] sr = mRemote.stringArray(s0, s1, s2);
-
- assertEquals(1, sr.length);
- assertEquals("s0[0]", sr[0]);
-
- assertEquals("s0[0]", s1[0]);
- assertNull(s1[1]);
-
- assertEquals("s0[0]", s2[0]);
- assertEquals("s2[1]", s2[1]);
- assertEquals("s2[2]", s2[2]);
- }
-
- @SmallTest
- public void testVoidSecurityException() throws Exception {
- boolean good = false;
- try {
- mRemote.voidSecurityException();
- } catch (SecurityException e) {
- good = true;
- }
- assertEquals(good, true);
- }
-
- @SmallTest
- public void testIntSecurityException() throws Exception {
- boolean good = false;
- try {
- mRemote.intSecurityException();
- } catch (SecurityException e) {
- good = true;
- }
- assertEquals(good, true);
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/os/BroadcasterTest.java b/tests/AndroidTests/src/com/android/unit_tests/os/BroadcasterTest.java
deleted file mode 100644
index 0df1653..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/os/BroadcasterTest.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.os;
-
-import android.os.Broadcaster;
-import android.os.Handler;
-import android.os.Message;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import junit.framework.TestCase;
-
-public class BroadcasterTest extends TestCase {
- private static final int MESSAGE_A = 23234;
- private static final int MESSAGE_B = 3;
- private static final int MESSAGE_C = 14;
- private static final int MESSAGE_D = 95;
-
- @MediumTest
- public void test1() throws Exception {
- /*
- * One handler requestes one message, with a translation
- */
- HandlerTester tester = new HandlerTester() {
- Handler h;
-
- public void go() {
- Broadcaster b = new Broadcaster();
- h = new H();
-
- b.request(MESSAGE_A, h, MESSAGE_B);
-
- Message msg = new Message();
- msg.what = MESSAGE_A;
-
- b.broadcast(msg);
- }
-
- public void handleMessage(Message msg) {
- if (msg.what == MESSAGE_B) {
- success();
- } else {
- failure();
- }
- }
- };
- tester.doTest(1000);
- }
-
- private static class Tests2and3 extends HandlerTester {
- Tests2and3(int n) {
- N = n;
- }
-
- int N;
- Handler mHandlers[];
- boolean mSuccess[];
-
- public void go() {
- Broadcaster b = new Broadcaster();
- mHandlers = new Handler[N];
- mSuccess = new boolean[N];
- for (int i = 0; i < N; i++) {
- mHandlers[i] = new H();
- mSuccess[i] = false;
- b.request(MESSAGE_A, mHandlers[i], MESSAGE_B + i);
- }
-
- Message msg = new Message();
- msg.what = MESSAGE_A;
-
- b.broadcast(msg);
- }
-
- public void handleMessage(Message msg) {
- int index = msg.what - MESSAGE_B;
- if (index < 0 || index >= N) {
- failure();
- } else {
- if (msg.getTarget() == mHandlers[index]) {
- mSuccess[index] = true;
- }
- }
- boolean winner = true;
- for (int i = 0; i < N; i++) {
- if (!mSuccess[i]) {
- winner = false;
- }
- }
- if (winner) {
- success();
- }
- }
- }
-
- @MediumTest
- public void test2() throws Exception {
- /*
- * 2 handlers request the same message, with different translations
- */
- HandlerTester tester = new Tests2and3(2);
- tester.doTest(1000);
- }
-
- @MediumTest
- public void test3() throws Exception {
- /*
- * 1000 handlers request the same message, with different translations
- */
- HandlerTester tester = new Tests2and3(10);
- tester.doTest(1000);
- }
-
- @MediumTest
- public void test4() throws Exception {
- /*
- * Two handlers request different messages, with translations, sending
- * only one. The other one should never get sent.
- */
- HandlerTester tester = new HandlerTester() {
- Handler h1;
- Handler h2;
-
- public void go() {
- Broadcaster b = new Broadcaster();
- h1 = new H();
- h2 = new H();
-
- b.request(MESSAGE_A, h1, MESSAGE_C);
- b.request(MESSAGE_B, h2, MESSAGE_D);
-
- Message msg = new Message();
- msg.what = MESSAGE_A;
-
- b.broadcast(msg);
- }
-
- public void handleMessage(Message msg) {
- if (msg.what == MESSAGE_C && msg.getTarget() == h1) {
- success();
- } else {
- failure();
- }
- }
- };
- tester.doTest(1000);
- }
-
- @MediumTest
- public void test5() throws Exception {
- /*
- * Two handlers request different messages, with translations, sending
- * only one. The other one should never get sent.
- */
- HandlerTester tester = new HandlerTester() {
- Handler h1;
- Handler h2;
-
- public void go() {
- Broadcaster b = new Broadcaster();
- h1 = new H();
- h2 = new H();
-
- b.request(MESSAGE_A, h1, MESSAGE_C);
- b.request(MESSAGE_B, h2, MESSAGE_D);
-
- Message msg = new Message();
- msg.what = MESSAGE_B;
-
- b.broadcast(msg);
- }
-
- public void handleMessage(Message msg) {
- if (msg.what == MESSAGE_D && msg.getTarget() == h2) {
- success();
- } else {
- failure();
- }
- }
- };
- tester.doTest(1000);
- }
-
- @MediumTest
- public void test6() throws Exception {
- /*
- * Two handlers request same message. Cancel the request for the
- * 2nd handler, make sure the first still works.
- */
- HandlerTester tester = new HandlerTester() {
- Handler h1;
- Handler h2;
-
- public void go() {
- Broadcaster b = new Broadcaster();
- h1 = new H();
- h2 = new H();
-
- b.request(MESSAGE_A, h1, MESSAGE_C);
- b.request(MESSAGE_A, h2, MESSAGE_D);
- b.cancelRequest(MESSAGE_A, h2, MESSAGE_D);
-
- Message msg = new Message();
- msg.what = MESSAGE_A;
-
- b.broadcast(msg);
- }
-
- public void handleMessage(Message msg) {
- if (msg.what == MESSAGE_C && msg.getTarget() == h1) {
- success();
- } else {
- failure();
- }
- }
- };
- tester.doTest(1000);
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/os/FileObserverTest.java b/tests/AndroidTests/src/com/android/unit_tests/os/FileObserverTest.java
deleted file mode 100644
index a504cd3..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/os/FileObserverTest.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.os;
-
-import com.google.android.collect.Lists;
-import com.google.android.collect.Maps;
-
-import android.os.FileObserver;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.util.Log;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-public class FileObserverTest extends AndroidTestCase {
- private Observer mObserver;
- private File mTestFile;
-
- private static class Observer extends FileObserver {
- public List<Map> events = Lists.newArrayList();
- public int totalEvents = 0;
-
- public Observer(String path) {
- super(path);
- }
-
- public void onEvent(int event, String path) {
- synchronized (this) {
- totalEvents++;
- Map<String, Object> map = Maps.newHashMap();
-
- map.put("event", event);
- map.put("path", path);
-
- events.add(map);
-
- this.notifyAll();
- }
- }
- }
-
- @Override
- protected void setUp() throws Exception {
- mTestFile = File.createTempFile(".file_observer_test", ".txt");
- }
-
- @Override
- protected void tearDown() throws Exception {
- if (mTestFile != null && mTestFile.exists()) {
- mTestFile.delete();
- }
- }
-
- @LargeTest
- public void testRun() throws Exception {
- // make file changes and wait for them
- assertTrue(mTestFile.exists());
- assertNotNull(mTestFile.getParent());
-
- mObserver = new Observer(mTestFile.getParent());
- mObserver.startWatching();
-
- FileOutputStream out = new FileOutputStream(mTestFile);
- try {
- out.write(0x20);
- waitForEvent(); // open
- waitForEvent(); // modify
-
- mTestFile.delete();
- waitForEvent(); // delete
-
- mObserver.stopWatching();
-
- // Ensure that we have seen at least 3 events.
- assertTrue(mObserver.totalEvents > 3);
- } finally {
- out.close();
- }
- }
-
- private void waitForEvent() {
- synchronized (mObserver) {
- boolean done = false;
- while (!done) {
- try {
- mObserver.wait(2000);
- done = true;
- } catch (InterruptedException e) {
- }
- }
-
- Iterator<Map> it = mObserver.events.iterator();
-
- while (it.hasNext()) {
- Map map = it.next();
- Log.i("FileObserverTest", "event: " + map.get("event").toString() + " path: " + map.get("path"));
- }
-
- mObserver.events.clear();
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/os/FileUtilsTest.java b/tests/AndroidTests/src/com/android/unit_tests/os/FileUtilsTest.java
deleted file mode 100644
index f2c9293..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/os/FileUtilsTest.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.os;
-
-import android.content.Context;
-import android.os.FileUtils;
-import android.os.FileUtils.FileStatus;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-
-import junit.framework.Assert;
-
-public class FileUtilsTest extends AndroidTestCase {
- private static final String TEST_DATA =
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
-
- private File mTestFile;
- private File mCopyFile;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- File testDir = getContext().getDir("testing", Context.MODE_PRIVATE);
- mTestFile = new File(testDir, "test.file");
- mCopyFile = new File(testDir, "copy.file");
- FileWriter writer = new FileWriter(mTestFile);
- try {
- writer.write(TEST_DATA, 0, TEST_DATA.length());
- } finally {
- writer.close();
- }
- }
-
- @Override
- protected void tearDown() throws Exception {
- if (mTestFile.exists()) mTestFile.delete();
- if (mCopyFile.exists()) mCopyFile.delete();
- }
-
- @LargeTest
- public void testGetFileStatus() {
- final byte[] MAGIC = { 0xB, 0xE, 0x0, 0x5 };
-
- try {
- // truncate test file and write MAGIC (4 bytes) to it.
- FileOutputStream os = new FileOutputStream(mTestFile, false);
- os.write(MAGIC, 0, 4);
- os.flush();
- os.close();
- } catch (FileNotFoundException e) {
- Assert.fail("File was removed durning test" + e);
- } catch (IOException e) {
- Assert.fail("Unexpected IOException: " + e);
- }
-
- Assert.assertTrue(mTestFile.exists());
- Assert.assertTrue(FileUtils.getFileStatus(mTestFile.getPath(), null));
-
- FileStatus status1 = new FileStatus();
- FileUtils.getFileStatus(mTestFile.getPath(), status1);
-
- Assert.assertEquals(4, status1.size);
-
- // Sleep for at least one second so that the modification time will be different.
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- }
-
- try {
- // append so we don't change the creation time.
- FileOutputStream os = new FileOutputStream(mTestFile, true);
- os.write(MAGIC, 0, 4);
- os.flush();
- os.close();
- } catch (FileNotFoundException e) {
- Assert.fail("File was removed durning test" + e);
- } catch (IOException e) {
- Assert.fail("Unexpected IOException: " + e);
- }
-
- FileStatus status2 = new FileStatus();
- FileUtils.getFileStatus(mTestFile.getPath(), status2);
-
- Assert.assertEquals(8, status2.size);
- Assert.assertTrue(status2.mtime > status1.mtime);
-
- mTestFile.delete();
-
- Assert.assertFalse(mTestFile.exists());
- Assert.assertFalse(FileUtils.getFileStatus(mTestFile.getPath(), null));
- }
-
- // TODO: test setPermissions(), getPermissions()
-
- @MediumTest
- public void testCopyFile() throws Exception {
- assertFalse(mCopyFile.exists());
- FileUtils.copyFile(mTestFile, mCopyFile);
- assertTrue(mCopyFile.exists());
- assertEquals(TEST_DATA, FileUtils.readTextFile(mCopyFile, 0, null));
- }
-
- @MediumTest
- public void testCopyToFile() throws Exception {
- final String s = "Foo Bar";
- assertFalse(mCopyFile.exists());
- FileUtils.copyToFile(new ByteArrayInputStream(s.getBytes()), mCopyFile); assertTrue(mCopyFile.exists());
- assertEquals(s, FileUtils.readTextFile(mCopyFile, 0, null));
- }
-
- @MediumTest
- public void testIsFilenameSafe() throws Exception {
- assertTrue(FileUtils.isFilenameSafe(new File("foobar")));
- assertTrue(FileUtils.isFilenameSafe(new File("a_b-c=d.e/0,1+23")));
- assertFalse(FileUtils.isFilenameSafe(new File("foo*bar")));
- assertFalse(FileUtils.isFilenameSafe(new File("foo\nbar")));
- }
-
- @MediumTest
- public void testReadTextFile() throws Exception {
- assertEquals(TEST_DATA, FileUtils.readTextFile(mTestFile, 0, null));
-
- assertEquals("ABCDE", FileUtils.readTextFile(mTestFile, 5, null));
- assertEquals("ABCDE<>", FileUtils.readTextFile(mTestFile, 5, "<>"));
- assertEquals(TEST_DATA.substring(0, 51) + "<>",
- FileUtils.readTextFile(mTestFile, 51, "<>"));
- assertEquals(TEST_DATA, FileUtils.readTextFile(mTestFile, 52, "<>"));
- assertEquals(TEST_DATA, FileUtils.readTextFile(mTestFile, 100, "<>"));
-
- assertEquals("vwxyz", FileUtils.readTextFile(mTestFile, -5, null));
- assertEquals("<>vwxyz", FileUtils.readTextFile(mTestFile, -5, "<>"));
- assertEquals("<>" + TEST_DATA.substring(1, 52),
- FileUtils.readTextFile(mTestFile, -51, "<>"));
- assertEquals(TEST_DATA, FileUtils.readTextFile(mTestFile, -52, "<>"));
- assertEquals(TEST_DATA, FileUtils.readTextFile(mTestFile, -100, "<>"));
- }
-
- @MediumTest
- public void testReadTextFileWithZeroLengthFile() throws Exception {
- new FileOutputStream(mTestFile).close(); // Zero out the file
- assertEquals("", FileUtils.readTextFile(mTestFile, 0, null));
- assertEquals("", FileUtils.readTextFile(mTestFile, 1, "<>"));
- assertEquals("", FileUtils.readTextFile(mTestFile, 10, "<>"));
- assertEquals("", FileUtils.readTextFile(mTestFile, -1, "<>"));
- assertEquals("", FileUtils.readTextFile(mTestFile, -10, "<>"));
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/os/HandlerStateMachineTest.java b/tests/AndroidTests/src/com/android/unit_tests/os/HandlerStateMachineTest.java
deleted file mode 100644
index 29045a3..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/os/HandlerStateMachineTest.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.os;
-
-import junit.framework.TestCase;
-import java.util.Vector;
-
-import android.os.Handler;
-import android.os.HandlerState;
-import android.os.HandlerStateMachine;
-import android.os.HandlerThread;
-import android.os.Looper;
-import android.os.Process;
-import android.os.Message;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import android.util.Log;
-
-public class HandlerStateMachineTest extends TestCase {
- private static final int TEST_WHAT_1 = 1;
- private static final int TEST_WHAT_2 = 2;
-
- private static final boolean DBG = false;
- private static final String TAG = "HandlerStateMachineTest";
-
- private boolean mDidEnter = false;
- private boolean mDidExit = false;
- private Vector<Integer> mGotMessagesWhat = new Vector<Integer>();
-
- /**
- * This test statemachine has two states, it receives
- * two messages in state mS1 deferring them until what == TEST_WHAT_2
- * and then transitions to state mS2. State mS2 should then receive
- * both of the deferred messages first TEST_WHAT_1 and then TEST_WHAT_2.
- * When TEST_WHAT_2 is received it invokes notifyAll so the test can
- * conclude.
- */
- class StateMachine1 extends HandlerStateMachine {
- StateMachine1(String name) {
- super(name);
- mThisSm = this;
- setDbg(DBG);
- setInitialState(mS1);
- }
-
- class S1 extends HandlerState {
- @Override public void enter(Message message) {
- mDidEnter = true;
- }
-
- @Override public void processMessage(Message message) {
- deferMessage(message);
- if (message.what == TEST_WHAT_2) {
- transitionTo(mS2);
- }
- }
-
- @Override public void exit(Message message) {
- mDidExit = true;
- }
- }
-
- class S2 extends HandlerState {
- @Override public void processMessage(Message message) {
- mGotMessagesWhat.add(message.what);
- if (message.what == TEST_WHAT_2) {
- synchronized (mThisSm) {
- mThisSm.notifyAll();
- }
- }
- }
- }
-
- private StateMachine1 mThisSm;
- private S1 mS1 = new S1();
- private S2 mS2 = new S2();
- }
-
- @SmallTest
- public void testStateMachine1() throws Exception {
- StateMachine1 sm1 = new StateMachine1("sm1");
- if (sm1.isDbg()) Log.d(TAG, "testStateMachine1 E");
-
- synchronized (sm1) {
- // Send two messages
- sm1.sendMessage(sm1.obtainMessage(TEST_WHAT_1));
- sm1.sendMessage(sm1.obtainMessage(TEST_WHAT_2));
-
- try {
- // wait for the messages to be handled
- sm1.wait();
- } catch (InterruptedException e) {
- Log.e(TAG, "testStateMachine1: exception while waiting " + e.getMessage());
- }
- }
-
- assertTrue(mDidEnter);
- assertTrue(mDidExit);
- assertTrue(mGotMessagesWhat.size() == 2);
- assertTrue(mGotMessagesWhat.get(0) == TEST_WHAT_1);
- assertTrue(mGotMessagesWhat.get(1) == TEST_WHAT_2);
- if (sm1.isDbg()) Log.d(TAG, "testStateMachine1 X");
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/os/HandlerTester.java b/tests/AndroidTests/src/com/android/unit_tests/os/HandlerTester.java
deleted file mode 100644
index 303245f..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/os/HandlerTester.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.os;
-
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-
-public abstract class HandlerTester extends Thread {
- public abstract void go();
- public abstract void handleMessage(Message msg);
-
- public HandlerTester() {
- }
-
- public void doTest(long timeout) {
- start();
-
- synchronized (this) {
- try {
- wait(timeout);
- quit();
- }
- catch (InterruptedException e) {
- }
- }
-
- if (!mDone) {
- throw new RuntimeException("test timed out");
- }
- if (!mSuccess) {
- throw new RuntimeException("test failed");
- }
- }
-
- public void success() {
- mDone = true;
- mSuccess = true;
- }
-
- public void failure() {
- mDone = true;
- mSuccess = false;
- }
-
- public void run() {
- Looper.prepare();
- mLooper = Looper.myLooper();
- go();
- Looper.loop();
- }
-
- protected class H extends Handler {
- public void handleMessage(Message msg) {
- synchronized (HandlerTester.this) {
- // Call into them with our monitor locked, so they don't have
- // to deal with other races.
- HandlerTester.this.handleMessage(msg);
- if (mDone) {
- HandlerTester.this.notify();
- quit();
- }
- }
- }
- }
-
- private void quit() {
- mLooper.quit();
- }
-
- private boolean mDone = false;
- private boolean mSuccess = false;
- private Looper mLooper;
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/os/HandlerThreadTest.java b/tests/AndroidTests/src/com/android/unit_tests/os/HandlerThreadTest.java
deleted file mode 100644
index c62f94f..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/os/HandlerThreadTest.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.os;
-
-import junit.framework.TestCase;
-import android.os.Handler;
-import android.os.HandlerThread;
-import android.os.Message;
-import android.os.Process;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class HandlerThreadTest extends TestCase {
- private static final int TEST_WHAT = 1;
-
- private boolean mGotMessage = false;
- private int mGotMessageWhat = -1;
- private volatile boolean mDidSetup = false;
- private volatile int mLooperTid = -1;
-
- @MediumTest
- public void testHandlerThread() throws Exception {
- HandlerThread th1 = new HandlerThread("HandlerThreadTest") {
- protected void onLooperPrepared() {
- mDidSetup = true;
- mLooperTid = Process.myTid();
- }
- };
-
- assertFalse(th1.isAlive());
- assertNull(th1.getLooper());
-
- th1.start();
-
- assertTrue(th1.isAlive());
- assertNotNull(th1.getLooper());
-
- /*
- * Since getLooper() will block until the HandlerThread is setup, we are guaranteed
- * that mDidSetup and mLooperTid will have been initalized. If they have not, then
- * this test should fail
- */
- // Make sure that the onLooperPrepared() was called on a different thread.
- assertNotSame(Process.myTid(), mLooperTid);
- assertTrue(mDidSetup);
-
- final Handler h1 = new Handler(th1.getLooper()) {
- public void handleMessage(Message msg) {
- assertEquals(TEST_WHAT, msg.what);
- // Ensure that we are running on the same thread in which the looper was setup on.
- assertEquals(mLooperTid, Process.myTid());
-
- mGotMessageWhat = msg.what;
- mGotMessage = true;
- synchronized(this) {
- notifyAll();
- }
- }
- };
-
- Message msg = h1.obtainMessage(TEST_WHAT);
-
- synchronized (h1) {
- // wait until we have the lock before sending the message.
- h1.sendMessage(msg);
- try {
- // wait for the message to be handled
- h1.wait();
- } catch (InterruptedException e) {
- }
- }
-
- assertTrue(mGotMessage);
- assertEquals(TEST_WHAT, mGotMessageWhat);
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/os/IAidlTest.aidl b/tests/AndroidTests/src/com/android/unit_tests/os/IAidlTest.aidl
deleted file mode 100644
index 94c39ff..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/os/IAidlTest.aidl
+++ /dev/null
@@ -1,47 +0,0 @@
-/* //device/apps/AndroidTests/src/com.android.unit_tests/IAidlTest.aidl
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
-
-package com.android.unit_tests.os;
-
-import com.android.unit_tests.os.AidlTest;
-
-interface IAidlTest {
- int intMethod(int a);
-
- AidlTest.TestParcelable parcelableIn(in AidlTest.TestParcelable p);
- AidlTest.TestParcelable parcelableOut(out AidlTest.TestParcelable p);
- AidlTest.TestParcelable parcelableInOut(inout AidlTest.TestParcelable p);
-
- AidlTest.TestParcelable listParcelableLonger(
- inout List<AidlTest.TestParcelable> list, int index);
- int listParcelableShorter(
- inout List<AidlTest.TestParcelable> list, int index);
-
- boolean[] booleanArray(in boolean[] a0, out boolean[] a1, inout boolean[] a2);
- char[] charArray(in char[] a0, out char[] a1, inout char[] a2);
- int[] intArray(in int[] a0, out int[] a1, inout int[] a2);
- long[] longArray(in long[] a0, out long[] a1, inout long[] a2);
- float[] floatArray(in float[] a0, out float[] a1, inout float[] a2);
- double[] doubleArray(in double[] a0, out double[] a1, inout double[] a2);
- String[] stringArray(in String[] a0, out String[] a1, inout String[] a2);
- AidlTest.TestParcelable[] parcelableArray(in AidlTest.TestParcelable[] a0,
- out AidlTest.TestParcelable[] a1,
- inout AidlTest.TestParcelable[] a2);
-
- void voidSecurityException();
- int intSecurityException();
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/os/IdleHandlerTest.java b/tests/AndroidTests/src/com/android/unit_tests/os/IdleHandlerTest.java
deleted file mode 100644
index fc3b007..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/os/IdleHandlerTest.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.os;
-
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-import android.os.MessageQueue.IdleHandler;
-import android.test.suitebuilder.annotation.MediumTest;
-import junit.framework.TestCase;
-
-public class IdleHandlerTest extends TestCase {
-
- private static class BaseTestHandler extends TestHandlerThread {
- Handler mHandler;
-
- public BaseTestHandler() {
- }
-
- public void go() {
- mHandler = new Handler() {
- public void handleMessage(Message msg) {
- BaseTestHandler.this.handleMessage(msg);
- }
- };
- }
-
- public void addIdleHandler() {
- Looper.myQueue().addIdleHandler(new IdleHandler() {
- public boolean queueIdle() {
- return BaseTestHandler.this.queueIdle();
- }
- });
- }
-
- public void handleMessage(Message msg) {
- }
-
- public boolean queueIdle() {
- return false;
- }
- }
-
- @MediumTest
- public void testOneShotFirst() throws Exception {
- TestHandlerThread tester = new BaseTestHandler() {
- int mCount;
-
- public void go() {
- super.go();
- mCount = 0;
- mHandler.sendMessageDelayed(mHandler.obtainMessage(0), 100);
- addIdleHandler();
- }
-
- public void handleMessage(Message msg) {
- if (msg.what == 0) {
- mHandler.sendMessageDelayed(mHandler.obtainMessage(1), 100);
- } else if (msg.what == 1) {
- if (mCount == 1) {
- success();
- } else {
- failure(new RuntimeException(
- "Idle handler called " + mCount + " times"));
- }
- }
- }
-
- public boolean queueIdle() {
- mCount++;
- return false;
- }
- };
-
- tester.doTest(1000);
- }
-
- @MediumTest
- public void testOneShotLater() throws Exception {
- TestHandlerThread tester = new BaseTestHandler() {
- int mCount;
-
- public void go() {
- super.go();
- mCount = 0;
- mHandler.sendMessage(mHandler.obtainMessage(0));
- }
-
- public void handleMessage(Message msg) {
- if (msg.what == 0) {
- addIdleHandler();
- mHandler.sendMessageDelayed(mHandler.obtainMessage(1), 100);
- } else if (msg.what == 1) {
- mHandler.sendMessageDelayed(mHandler.obtainMessage(2), 100);
- } else if (msg.what == 2) {
- if (mCount == 1) {
- success();
- } else {
- failure(new RuntimeException(
- "Idle handler called " + mCount + " times"));
- }
- }
- }
-
- public boolean queueIdle() {
- mCount++;
- return false;
- }
- };
-
- tester.doTest(1000);
- }
-
-
- @MediumTest
- public void testRepeatedFirst() throws Exception {
- TestHandlerThread tester = new BaseTestHandler() {
- int mCount;
-
- public void go() {
- super.go();
- mCount = 0;
- mHandler.sendMessageDelayed(mHandler.obtainMessage(0), 100);
- addIdleHandler();
- }
-
- public void handleMessage(Message msg) {
- if (msg.what == 0) {
- mHandler.sendMessageDelayed(mHandler.obtainMessage(1), 100);
- } else if (msg.what == 1) {
- if (mCount == 2) {
- success();
- } else {
- failure(new RuntimeException(
- "Idle handler called " + mCount + " times"));
- }
- }
- }
-
- public boolean queueIdle() {
- mCount++;
- return true;
- }
- };
-
- tester.doTest(1000);
- }
-
- @MediumTest
- public void testRepeatedLater() throws Exception {
- TestHandlerThread tester = new BaseTestHandler() {
- int mCount;
-
- public void go() {
- super.go();
- mCount = 0;
- mHandler.sendMessage(mHandler.obtainMessage(0));
- }
-
- public void handleMessage(Message msg) {
- if (msg.what == 0) {
- addIdleHandler();
- mHandler.sendMessageDelayed(mHandler.obtainMessage(1), 100);
- } else if (msg.what == 1) {
- mHandler.sendMessageDelayed(mHandler.obtainMessage(2), 100);
- } else if (msg.what == 2) {
- if (mCount == 2) {
- success();
- } else {
- failure(new RuntimeException(
- "Idle handler called " + mCount + " times"));
- }
- }
- }
-
- public boolean queueIdle() {
- mCount++;
- return true;
- }
- };
-
- tester.doTest(1000);
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/os/MemoryFileTest.java b/tests/AndroidTests/src/com/android/unit_tests/os/MemoryFileTest.java
deleted file mode 100644
index 508afcf..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/os/MemoryFileTest.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.os;
-
-import android.os.MemoryFile;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import junit.framework.TestCase;
-
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.IOException;
-
-import java.util.List;
-import java.util.ArrayList;
-
-public class MemoryFileTest extends TestCase {
-
- private void compareBuffers(byte[] buffer1, byte[] buffer2, int length) throws Exception {
- for (int i = 0; i < length; i++) {
- if (buffer1[i] != buffer2[i]) {
- throw new Exception("readBytes did not read back what writeBytes wrote");
- }
- }
- }
-
- /**
- * Keep allocating new files till the system purges them.
- */
- @MediumTest
- public void testPurge() throws Exception {
- List<MemoryFile> files = new ArrayList<MemoryFile>();
- while (true) {
- MemoryFile newFile = new MemoryFile("MemoryFileTest", 1000000);
- newFile.allowPurging(true);
- newFile.writeBytes(testString, 0, 0, testString.length);
- files.add(newFile);
- for (MemoryFile file : files) {
- try {
- file.readBytes(testString, 0, 0, testString.length);
- } catch (IOException e) {
- // Expected
- for (MemoryFile fileToClose : files) {
- fileToClose.close();
- }
- return;
- }
- }
- }
- }
-
- @SmallTest
- public void testRun() throws Exception {
- MemoryFile file = new MemoryFile("MemoryFileTest", 1000000);
-
- byte[] buffer = new byte[testString.length];
-
- // check low level accessors
- file.writeBytes(testString, 0, 2000, testString.length);
- file.readBytes(buffer, 2000, 0, testString.length);
- compareBuffers(testString, buffer, testString.length);
-
- // check streams
- buffer = new byte[testString.length];
-
- OutputStream os = file.getOutputStream();
- os.write(testString);
-
- InputStream is = file.getInputStream();
- is.mark(testString.length);
- is.read(buffer);
- compareBuffers(testString, buffer, testString.length);
-
- // test mark/reset
- buffer = new byte[testString.length];
- is.reset();
- is.read(buffer);
- compareBuffers(testString, buffer, testString.length);
-
- file.close();
- }
-
- private static final byte[] testString = new byte[] {
- 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9, 3, 2, 3, 8, 4, 6, 2, 6, 4, 3, 3, 8, 3, 2, 7, 9, 5, 0, 2, 8, 8, 4, 1, 9, 7, 1, 6, 9, 3, 9, 9, 3, 7, 5, 1, 0, 5, 8, 2, 0, 9, 7, 4, 9, 4, 4, 5, 9, 2, 3, 0, 7, 8, 1, 6, 4,
- 0, 6, 2, 8, 6, 2, 0, 8, 9, 9, 8, 6, 2, 8, 0, 3, 4, 8, 2, 5, 3, 4, 2, 1, 1, 7, 0, 6, 7, 9, 8, 2, 1, 4, 8, 0, 8, 6, 5, 1, 3, 2, 8, 2, 3, 0, 6, 6, 4, 7, 0, 9, 3, 8, 4, 4, 6, 0, 9, 5, 5, 0, 5, 8, 2, 2, 3, 1, 7, 2,
- 5, 3, 5, 9, 4, 0, 8, 1, 2, 8, 4, 8, 1, 1, 1, 7, 4, 5, 0, 2, 8, 4, 1, 0, 2, 7, 0, 1, 9, 3, 8, 5, 2, 1, 1, 0, 5, 5, 5, 9, 6, 4, 4, 6, 2, 2, 9, 4, 8, 9, 5, 4, 9, 3, 0, 3, 8, 1, 9, 6, 4, 4, 2, 8, 8, 1, 0, 9, 7, 5,
- 6, 6, 5, 9, 3, 3, 4, 4, 6, 1, 2, 8, 4, 7, 5, 6, 4, 8, 2, 3, 3, 7, 8, 6, 7, 8, 3, 1, 6, 5, 2, 7, 1, 2, 0, 1, 9, 0, 9, 1, 4, 5, 6, 4, 8, 5, 6, 6, 9, 2, 3, 4, 6, 0, 3, 4, 8, 6, 1, 0, 4, 5, 4, 3, 2, 6, 6, 4, 8, 2,
- 1, 3, 3, 9, 3, 6, 0, 7, 2, 6, 0, 2, 4, 9, 1, 4, 1, 2, 7, 3, 7, 2, 4, 5, 8, 7, 0, 0, 6, 6, 0, 6, 3, 1, 5, 5, 8, 8, 1, 7, 4, 8, 8, 1, 5, 2, 0, 9, 2, 0, 9, 6, 2, 8, 2, 9, 2, 5, 4, 0, 9, 1, 7, 1, 5, 3, 6, 4, 3, 6,
- 7, 8, 9, 2, 5, 9, 0, 3, 6, 0, 0, 1, 1, 3, 3, 0, 5, 3, 0, 5, 4, 8, 8, 2, 0, 4, 6, 6, 5, 2, 1, 3, 8, 4, 1, 4, 6, 9, 5, 1, 9, 4, 1, 5, 1, 1, 6, 0, 9, 4, 3, 3, 0, 5, 7, 2, 7, 0, 3, 6, 5, 7, 5, 9, 5, 9, 1, 9, 5, 3,
- 0, 9, 2, 1, 8, 6, 1, 1, 7, 3, 8, 1, 9, 3, 2, 6, 1, 1, 7, 9, 3, 1, 0, 5, 1, 1, 8, 5, 4, 8, 0, 7, 4, 4, 6, 2, 3, 7, 9, 9, 6, 2, 7, 4, 9, 5, 6, 7, 3, 5, 1, 8, 8, 5, 7, 5, 2, 7, 2, 4, 8, 9, 1, 2, 2, 7, 9, 3, 8, 1,
- 8, 3, 0, 1, 1, 9, 4, 9, 1, 2, 9, 8, 3, 3, 6, 7, 3, 3, 6, 2, 4, 4, 0, 6, 5, 6, 6, 4, 3, 0, 8, 6, 0, 2, 1, 3, 9, 4, 9, 4, 6, 3, 9, 5, 2, 2, 4, 7, 3, 7, 1, 9, 0, 7, 0, 2, 1, 7, 9, 8, 6, 0, 9, 4, 3, 7, 0, 2, 7, 7,
- 0, 5, 3, 9, 2, 1, 7, 1, 7, 6, 2, 9, 3, 1, 7, 6, 7, 5, 2, 3, 8, 4, 6, 7, 4, 8, 1, 8, 4, 6, 7, 6, 6, 9, 4, 0, 5, 1, 3, 2, 0, 0, 0, 5, 6, 8, 1, 2, 7, 1, 4, 5, 2, 6, 3, 5, 6, 0, 8, 2, 7, 7, 8, 5, 7, 7, 1, 3, 4, 2,
- 7, 5, 7, 7, 8, 9, 6, 0, 9, 1, 7, 3, 6, 3, 7, 1, 7, 8, 7, 2, 1, 4, 6, 8, 4, 4, 0, 9, 0, 1, 2, 2, 4, 9, 5, 3, 4, 3, 0, 1, 4, 6, 5, 4, 9, 5, 8, 5, 3, 7, 1, 0, 5, 0, 7, 9, 2, 2, 7, 9, 6, 8, 9, 2, 5, 8, 9, 2, 3, 5,
- 4, 2, 0, 1, 9, 9, 5, 6, 1, 1, 2, 1, 2, 9, 0, 2, 1, 9, 6, 0, 8, 6, 4, 0, 3, 4, 4, 1, 8, 1, 5, 9, 8, 1, 3, 6, 2, 9, 7, 7, 4, 7, 7, 1, 3, 0, 9, 9, 6, 0, 5, 1, 8, 7, 0, 7, 2, 1, 1, 3, 4, 9, 9, 9, 9, 9, 9, 8, 3, 7,
- 2, 9, 7, 8, 0, 4, 9, 9, 5, 1, 0, 5, 9, 7, 3, 1, 7, 3, 2, 8, 1, 6, 0, 9, 6, 3, 1, 8, 5, 9, 5, 0, 2, 4, 4, 5, 9, 4, 5, 5, 3, 4, 6, 9, 0, 8, 3, 0, 2, 6, 4, 2, 5, 2, 2, 3, 0, 8, 2, 5, 3, 3, 4, 4, 6, 8, 5, 0, 3, 5,
- 2, 6, 1, 9, 3, 1, 1, 8, 8, 1, 7, 1, 0, 1, 0, 0, 0, 3, 1, 3, 7, 8, 3, 8, 7, 5, 2, 8, 8, 6, 5, 8, 7, 5, 3, 3, 2, 0, 8, 3, 8, 1, 4, 2, 0, 6, 1, 7, 1, 7, 7, 6, 6, 9, 1, 4, 7, 3, 0, 3, 5, 9, 8, 2, 5, 3, 4, 9, 0, 4,
- 2, 8, 7, 5, 5, 4, 6, 8, 7, 3, 1, 1, 5, 9, 5, 6, 2, 8, 6, 3, 8, 8, 2, 3, 5, 3, 7, 8, 7, 5, 9, 3, 7, 5, 1, 9, 5, 7, 7, 8, 1, 8, 5, 7, 7, 8, 0, 5, 3, 2, 1, 7, 1, 2, 2, 6, 8, 0, 6, 6, 1, 3, 0, 0, 1, 9, 2, 7, 8, 7,
- 6, 6, 1, 1, 1, 9, 5, 9, 0, 9, 2, 1, 6, 4, 2, 0, 1, 9, 8, 9, 3, 8, 0, 9, 5, 2, 5, 7, 2, 0, 1, 0, 6, 5, 4, 8, 5, 8, 6, 3, 2, 7, 8, 8, 6, 5, 9, 3, 6, 1, 5, 3, 3, 8, 1, 8, 2, 7, 9, 6, 8, 2, 3, 0, 3, 0, 1, 9, 5, 2,
- 0, 3, 5, 3, 0, 1, 8, 5, 2, 9, 6, 8, 9, 9, 5, 7, 7, 3, 6, 2, 2, 5, 9, 9, 4, 1, 3, 8, 9, 1, 2, 4, 9, 7, 2, 1, 7, 7, 5, 2, 8, 3, 4, 7, 9, 1, 3, 1, 5, 1, 5, 5, 7, 4, 8, 5, 7, 2, 4, 2, 4, 5, 4, 1, 5, 0, 6, 9, 5, 9,
- 5, 0, 8, 2, 9, 5, 3, 3, 1, 1, 6, 8, 6, 1, 7, 2, 7, 8, 5, 5, 8, 8, 9, 0, 7, 5, 0, 9, 8, 3, 8, 1, 7, 5, 4, 6, 3, 7, 4, 6, 4, 9, 3, 9, 3, 1, 9, 2, 5, 5, 0, 6, 0, 4, 0, 0, 9, 2, 7, 7, 0, 1, 6, 7, 1, 1, 3, 9, 0, 0,
- 9, 8, 4, 8, 8, 2, 4, 0, 1, 2, 8, 5, 8, 3, 6, 1, 6, 0, 3, 5, 6, 3, 7, 0, 7, 6, 6, 0, 1, 0, 4, 7, 1, 0, 1, 8, 1, 9, 4, 2, 9, 5, 5, 5, 9, 6, 1, 9, 8, 9, 4, 6, 7, 6, 7, 8, 3, 7, 4, 4, 9, 4, 4, 8, 2, 5, 5, 3, 7, 9,
- 7, 7, 4, 7, 2, 6, 8, 4, 7, 1, 0, 4, 0, 4, 7, 5, 3, 4, 6, 4, 6, 2, 0, 8, 0, 4, 6, 6, 8, 4, 2, 5, 9, 0, 6, 9, 4, 9, 1, 2, 9, 3, 3, 1, 3, 6, 7, 7, 0, 2, 8, 9, 8, 9, 1, 5, 2, 1, 0, 4, 7, 5, 2, 1, 6, 2, 0, 5, 6, 9,
- 6, 6, 0, 2, 4, 0, 5, 8, 0, 3, 8, 1, 5, 0, 1, 9, 3, 5, 1, 1, 2, 5, 3, 3, 8, 2, 4, 3, 0, 0, 3, 5, 5, 8, 7, 6, 4, 0, 2, 4, 7, 4, 9, 6, 4, 7, 3, 2, 6, 3, 9, 1, 4, 1, 9, 9, 2, 7, 2, 6, 0, 4, 2, 6, 9, 9, 2, 2, 7, 9,
- 6, 7, 8, 2, 3, 5, 4, 7, 8, 1, 6, 3, 6, 0, 0, 9, 3, 4, 1, 7, 2, 1, 6, 4, 1, 2, 1, 9, 9, 2, 4, 5, 8, 6, 3, 1, 5, 0, 3, 0, 2, 8, 6, 1, 8, 2, 9, 7, 4, 5, 5, 5, 7, 0, 6, 7, 4, 9, 8, 3, 8, 5, 0, 5, 4, 9, 4, 5, 8, 8,
- 5, 8, 6, 9, 2, 6, 9, 9, 5, 6, 9, 0, 9, 2, 7, 2, 1, 0, 7, 9, 7, 5, 0, 9, 3, 0, 2, 9, 5, 5, 3, 2, 1, 1, 6, 5, 3, 4, 4, 9, 8, 7, 2, 0, 2, 7, 5, 5, 9, 6, 0, 2, 3, 6, 4, 8, 0, 6, 6, 5, 4, 9, 9, 1, 1, 9, 8, 8, 1, 8,
- 3, 4, 7, 9, 7, 7, 5, 3, 5, 6, 6, 3, 6, 9, 8, 0, 7, 4, 2, 6, 5, 4, 2, 5, 2, 7, 8, 6, 2, 5, 5, 1, 8, 1, 8, 4, 1, 7, 5, 7, 4, 6, 7, 2, 8, 9, 0, 9, 7, 7, 7, 7, 2, 7, 9, 3, 8, 0, 0, 0, 8, 1, 6, 4, 7, 0, 6, 0, 0, 1,
- 6, 1, 4, 5, 2, 4, 9, 1, 9, 2, 1, 7, 3, 2, 1, 7, 2, 1, 4, 7, 7, 2, 3, 5, 0, 1, 4, 1, 4, 4, 1, 9, 7, 3, 5, 6, 8, 5, 4, 8, 1, 6, 1, 3, 6, 1, 1, 5, 7, 3, 5, 2, 5, 5, 2, 1, 3, 3, 4, 7, 5, 7, 4, 1, 8, 4, 9, 4, 6, 8,
- 4, 3, 8, 5, 2, 3, 3, 2, 3, 9, 0, 7, 3, 9, 4, 1, 4, 3, 3, 3, 4, 5, 4, 7, 7, 6, 2, 4, 1, 6, 8, 6, 2, 5, 1, 8, 9, 8, 3, 5, 6, 9, 4, 8, 5, 5, 6, 2, 0, 9, 9, 2, 1, 9, 2, 2, 2, 1, 8, 4, 2, 7, 2, 5, 5, 0, 2, 5, 4, 2,
- 5, 6, 8, 8, 7, 6, 7, 1, 7, 9, 0, 4, 9, 4, 6, 0, 1, 6, 5, 3, 4, 6, 6, 8, 0, 4, 9, 8, 8, 6, 2, 7, 2, 3, 2, 7, 9, 1, 7, 8, 6, 0, 8, 5, 7, 8, 4, 3, 8, 3, 8, 2, 7, 9, 6, 7, 9, 7, 6, 6, 8, 1, 4, 5, 4, 1, 0, 0, 9, 5,
- 3, 8, 8, 3, 7, 8, 6, 3, 6, 0, 9, 5, 0, 6, 8, 0, 0, 6, 4, 2, 2, 5, 1, 2, 5, 2, 0, 5, 1, 1, 7, 3, 9, 2, 9, 8, 4, 8, 9, 6, 0, 8, 4, 1, 2, 8, 4, 8, 8, 6, 2, 6, 9, 4, 5, 6, 0, 4, 2, 4, 1, 9, 6, 5, 2, 8, 5, 0, 2, 2,
- 2, 1, 0, 6, 6, 1, 1, 8, 6, 3, 0, 6, 7, 4, 4, 2, 7, 8, 6, 2, 2, 0, 3, 9, 1, 9, 4, 9, 4, 5, 0, 4, 7, 1, 2, 3, 7, 1, 3, 7, 8, 6, 9, 6, 0, 9, 5, 6, 3, 6, 4, 3, 7, 1, 9, 1, 7, 2, 8, 7, 4, 6, 7, 7, 6, 4, 6, 5, 7, 5,
- 7, 3, 9, 6, 2, 4, 1, 3, 8, 9, 0, 8, 6, 5, 8, 3, 2, 6, 4, 5, 9, 9, 5, 8, 1, 3, 3, 9, 0, 4, 7, 8, 0, 2, 7, 5, 9, 0, 0, 9, 9, 4, 6, 5, 7, 6, 4, 0, 7, 8, 9, 5, 1, 2, 6, 9, 4, 6, 8, 3, 9, 8, 3, 5, 2, 5, 9, 5, 7, 0,
- 9, 8, 2, 5, 8, 2, 2, 6, 2, 0, 5, 2, 2, 4, 8, 9, 4, 0, 7, 7, 2, 6, 7, 1, 9, 4, 7, 8, 2, 6, 8, 4, 8, 2, 6, 0, 1, 4, 7, 6, 9, 9, 0, 9, 0, 2, 6, 4, 0, 1, 3, 6, 3, 9, 4, 4, 3, 7, 4, 5, 5, 3, 0, 5, 0, 6, 8, 2, 0, 3,
- 4, 9, 6, 2, 5, 2, 4, 5, 1, 7, 4, 9, 3, 9, 9, 6, 5, 1, 4, 3, 1, 4, 2, 9, 8, 0, 9, 1, 9, 0, 6, 5, 9, 2, 5, 0, 9, 3, 7, 2, 2, 1, 6, 9, 6, 4, 6, 1, 5, 1, 5, 7, 0, 9, 8, 5, 8, 3, 8, 7, 4, 1, 0, 5, 9, 7, 8, 8, 5, 9,
- 5, 9, 7, 7, 2, 9, 7, 5, 4, 9, 8, 9, 3, 0, 1, 6, 1, 7, 5, 3, 9, 2, 8, 4, 6, 8, 1, 3, 8, 2, 6, 8, 6, 8, 3, 8, 6, 8, 9, 4, 2, 7, 7, 4, 1, 5, 5, 9, 9, 1, 8, 5, 5, 9, 2, 5, 2, 4, 5, 9, 5, 3, 9, 5, 9, 4, 3, 1, 0, 4,
- 9, 9, 7, 2, 5, 2, 4, 6, 8, 0, 8, 4, 5, 9, 8, 7, 2, 7, 3, 6, 4, 4, 6, 9, 5, 8, 4, 8, 6, 5, 3, 8, 3, 6, 7, 3, 6, 2, 2, 2, 6, 2, 6, 0, 9, 9, 1, 2, 4, 6, 0, 8, 0, 5, 1, 2, 4, 3, 8, 8, 4, 3, 9, 0, 4, 5, 1, 2, 4, 4,
- 1, 3, 6, 5, 4, 9, 7, 6, 2, 7, 8, 0, 7, 9, 7, 7, 1, 5, 6, 9, 1, 4, 3, 5, 9, 9, 7, 7, 0, 0, 1, 2, 9, 6, 1, 6, 0, 8, 9, 4, 4, 1, 6, 9, 4, 8, 6, 8, 5, 5, 5, 8, 4, 8, 4, 0, 6, 3, 5, 3, 4, 2, 2, 0, 7, 2, 2, 2, 5, 8,
- 2, 8, 4, 8, 8, 6, 4, 8, 1, 5, 8, 4, 5, 6, 0, 2, 8, 5, 0, 6, 0, 1, 6, 8, 4, 2, 7, 3, 9, 4, 5, 2, 2, 6, 7, 4, 6, 7, 6, 7, 8, 8, 9, 5, 2, 5, 2, 1, 3, 8, 5, 2, 2, 5, 4, 9, 9, 5, 4, 6, 6, 6, 7, 2, 7, 8, 2, 3, 9, 8,
- 6, 4, 5, 6, 5, 9, 6, 1, 1, 6, 3, 5, 4, 8, 8, 6, 2, 3, 0, 5, 7, 7, 4, 5, 6, 4, 9, 8, 0, 3, 5, 5, 9, 3, 6, 3, 4, 5, 6, 8, 1, 7, 4, 3, 2, 4, 1, 1, 2, 5, 1, 5, 0, 7, 6, 0, 6, 9, 4, 7, 9, 4, 5, 1, 0, 9, 6, 5, 9, 6,
- 0, 9, 4, 0, 2, 5, 2, 2, 8, 8, 7, 9, 7, 1, 0, 8, 9, 3, 1, 4, 5, 6, 6, 9, 1, 3, 6, 8, 6, 7, 2, 2, 8, 7, 4, 8, 9, 4, 0, 5, 6, 0, 1, 0, 1, 5, 0, 3, 3, 0, 8, 6, 1, 7, 9, 2, 8, 6, 8, 0, 9, 2, 0, 8, 7, 4, 7, 6, 0, 9,
- 1, 7, 8, 2, 4, 9, 3, 8, 5, 8, 9, 0, 0, 9, 7, 1, 4, 9, 0, 9, 6, 7, 5, 9, 8, 5, 2, 6, 1, 3, 6, 5, 5, 4, 9, 7, 8, 1, 8, 9, 3, 1, 2, 9, 7, 8, 4, 8, 2, 1, 6, 8, 2, 9, 9, 8, 9, 4, 8, 7, 2, 2, 6, 5, 8, 8, 0, 4, 8, 5,
- 7, 5, 6, 4, 0, 1, 4, 2, 7, 0, 4, 7, 7, 5, 5, 5, 1, 3, 2, 3, 7, 9, 6, 4, 1, 4, 5, 1, 5, 2, 3, 7, 4, 6, 2, 3, 4, 3, 6, 4, 5, 4, 2, 8, 5, 8, 4, 4, 4, 7, 9, 5, 2, 6, 5, 8, 6, 7, 8, 2, 1, 0, 5, 1, 1, 4, 1, 3, 5, 4,
- 7, 3, 5, 7, 3, 9, 5, 2, 3, 1, 1, 3, 4, 2, 7, 1, 6, 6, 1, 0, 2, 1, 3, 5, 9, 6, 9, 5, 3, 6, 2, 3, 1, 4, 4, 2, 9, 5, 2, 4, 8, 4, 9, 3, 7, 1, 8, 7, 1, 1, 0, 1, 4, 5, 7, 6, 5, 4, 0, 3, 5, 9, 0, 2, 7, 9, 9, 3, 4, 4,
- 0, 3, 7, 4, 2, 0, 0, 7, 3, 1, 0, 5, 7, 8, 5, 3, 9, 0, 6, 2, 1, 9, 8, 3, 8, 7, 4, 4, 7, 8, 0, 8, 4, 7, 8, 4, 8, 9, 6, 8, 3, 3, 2, 1, 4, 4, 5, 7, 1, 3, 8, 6, 8, 7, 5, 1, 9, 4, 3, 5, 0, 6, 4, 3, 0, 2, 1, 8, 4, 5,
- 3, 1, 9, 1, 0, 4, 8, 4, 8, 1, 0, 0, 5, 3, 7, 0, 6, 1, 4, 6, 8, 0, 6, 7, 4, 9, 1, 9, 2, 7, 8, 1, 9, 1, 1, 9, 7, 9, 3, 9, 9, 5, 2, 0, 6, 1, 4, 1, 9, 6, 6, 3, 4, 2, 8, 7, 5, 4, 4, 4, 0, 6, 4, 3, 7, 4, 5, 1, 2, 3,
- 7, 1, 8, 1, 9, 2, 1, 7, 9, 9, 9, 8, 3, 9, 1, 0, 1, 5, 9, 1, 9, 5, 6, 1, 8, 1, 4, 6, 7, 5, 1, 4, 2, 6, 9, 1, 2, 3, 9, 7, 4, 8, 9, 4, 0, 9, 0, 7, 1, 8, 6, 4, 9, 4, 2, 3, 1, 9, 6, 1, 5, 6, 7, 9, 4, 5, 2, 0, 8, 0,
- 9, 5, 1, 4, 6, 5, 5, 0, 2, 2, 5, 2, 3, 1, 6, 0, 3, 8, 8, 1, 9, 3, 0, 1, 4, 2, 0, 9, 3, 7, 6, 2, 1, 3, 7, 8, 5, 5, 9, 5, 6, 6, 3, 8, 9, 3, 7, 7, 8, 7, 0, 8, 3, 0, 3, 9, 0, 6, 9, 7, 9, 2, 0, 7, 7, 3, 4, 6, 7, 2,
- 2, 1, 8, 2, 5, 6, 2, 5, 9, 9, 6, 6, 1, 5, 0, 1, 4, 2, 1, 5, 0, 3, 0, 6, 8, 0, 3, 8, 4, 4, 7, 7, 3, 4, 5, 4, 9, 2, 0, 2, 6, 0, 5, 4, 1, 4, 6, 6, 5, 9, 2, 5, 2, 0, 1, 4, 9, 7, 4, 4, 2, 8, 5, 0, 7, 3, 2, 5, 1, 8,
- 6, 6, 6, 0, 0, 2, 1, 3, 2, 4, 3, 4, 0, 8, 8, 1, 9, 0, 7, 1, 0, 4, 8, 6, 3, 3, 1, 7, 3, 4, 6, 4, 9, 6, 5, 1, 4, 5, 3, 9, 0, 5, 7, 9, 6, 2, 6, 8, 5, 6, 1, 0, 0, 5, 5, 0, 8, 1, 0, 6, 6, 5, 8, 7, 9, 6, 9, 9, 8, 1,
- 6, 3, 5, 7, 4, 7, 3, 6, 3, 8, 4, 0, 5, 2, 5, 7, 1, 4, 5, 9, 1, 0, 2, 8, 9, 7, 0, 6, 4, 1, 4, 0, 1, 1, 0, 9, 7, 1, 2, 0, 6, 2, 8, 0, 4, 3, 9, 0, 3, 9, 7, 5, 9, 5, 1, 5, 6, 7, 7, 1, 5, 7, 7, 0, 0, 4, 2, 0, 3, 3,
- 7, 8, 6, 9, 9, 3, 6, 0, 0, 7, 2, 3, 0, 5, 5, 8, 7, 6, 3, 1, 7, 6, 3, 5, 9, 4, 2, 1, 8, 7, 3, 1, 2, 5, 1, 4, 7, 1, 2, 0, 5, 3, 2, 9, 2, 8, 1, 9, 1, 8, 2, 6, 1, 8, 6, 1, 2, 5, 8, 6, 7, 3, 2, 1, 5, 7, 9, 1, 9, 8,
- 4, 1, 4, 8, 4, 8, 8, 2, 9, 1, 6, 4, 4, 7, 0, 6, 0, 9, 5, 7, 5, 2, 7, 0, 6, 9, 5, 7, 2, 2, 0, 9, 1, 7, 5, 6, 7, 1, 1, 6, 7, 2, 2, 9, 1, 0, 9, 8, 1, 6, 9, 0, 9, 1, 5, 2, 8, 0, 1, 7, 3, 5, 0, 6, 7, 1, 2, 7, 4, 8,
- 5, 8, 3, 2, 2, 2, 8, 7, 1, 8, 3, 5, 2, 0, 9, 3, 5, 3, 9, 6, 5, 7, 2, 5, 1, 2, 1, 0, 8, 3, 5, 7, 9, 1, 5, 1, 3, 6, 9, 8, 8, 2, 0, 9, 1, 4, 4, 4, 2, 1, 0, 0, 6, 7, 5, 1, 0, 3, 3, 4, 6, 7, 1, 1, 0, 3, 1, 4, 1, 2,
- 6, 7, 1, 1, 1, 3, 6, 9, 9, 0, 8, 6, 5, 8, 5, 1, 6, 3, 9, 8, 3, 1, 5, 0, 1, 9, 7, 0, 1, 6, 5, 1, 5, 1, 1, 6, 8, 5, 1, 7, 1, 4, 3, 7, 6, 5, 7, 6, 1, 8, 3, 5, 1, 5, 5, 6, 5, 0, 8, 8, 4, 9, 0, 9, 9, 8, 9, 8, 5, 9,
- 9, 8, 2, 3, 8, 7, 3, 4, 5, 5, 2, 8, 3, 3, 1, 6, 3, 5, 5, 0, 7, 6, 4, 7, 9, 1, 8, 5, 3, 5, 8, 9, 3, 2, 2, 6, 1, 8, 5, 4, 8, 9, 6, 3, 2, 1, 3, 2, 9, 3, 3, 0, 8, 9, 8, 5, 7, 0, 6, 4, 2, 0, 4, 6, 7, 5, 2, 5, 9, 0,
- 7, 0, 9, 1, 5, 4, 8, 1, 4, 1, 6, 5, 4, 9, 8, 5, 9, 4, 6, 1, 6, 3, 7, 1, 8, 0, 2, 7, 0, 9, 8, 1, 9, 9, 4, 3, 0, 9, 9, 2, 4, 4, 8, 8, 9, 5, 7, 5, 7, 1, 2, 8, 2, 8, 9, 0, 5, 9, 2, 3, 2, 3, 3, 2, 6, 0, 9, 7, 2, 9,
- 9, 7, 1, 2, 0, 8, 4, 4, 3, 3, 5, 7, 3, 2, 6, 5, 4, 8, 9, 3, 8, 2, 3, 9, 1, 1, 9, 3, 2, 5, 9, 7, 4, 6, 3, 6, 6, 7, 3, 0, 5, 8, 3, 6, 0, 4, 1, 4, 2, 8, 1, 3, 8, 8, 3, 0, 3, 2, 0, 3, 8, 2, 4, 9, 0, 3, 7, 5, 8, 9,
- 8, 5, 2, 4, 3, 7, 4, 4, 1, 7, 0, 2, 9, 1, 3, 2, 7, 6, 5, 6, 1, 8, 0, 9, 3, 7, 7, 3, 4, 4, 4, 0, 3, 0, 7, 0, 7, 4, 6, 9, 2, 1, 1, 2, 0, 1, 9, 1, 3, 0, 2, 0, 3, 3, 0, 3, 8, 0, 1, 9, 7, 6, 2, 1, 1, 0, 1, 1, 0, 0,
- 4, 4, 9, 2, 9, 3, 2, 1, 5, 1, 6, 0, 8, 4, 2, 4, 4, 4, 8, 5, 9, 6, 3, 7, 6, 6, 9, 8, 3, 8, 9, 5, 2, 2, 8, 6, 8, 4, 7, 8, 3, 1, 2, 3, 5, 5, 2, 6, 5, 8, 2, 1, 3, 1, 4, 4, 9, 5, 7, 6, 8, 5, 7, 2, 6, 2, 4, 3, 3, 4,
- 4, 1, 8, 9, 3, 0, 3, 9, 6, 8, 6, 4, 2, 6, 2, 4, 3, 4, 1, 0, 7, 7, 3, 2, 2, 6, 9, 7, 8, 0, 2, 8, 0, 7, 3, 1, 8, 9, 1, 5, 4, 4, 1, 1, 0, 1, 0, 4, 4, 6, 8, 2, 3, 2, 5, 2, 7, 1, 6, 2, 0, 1, 0, 5, 2, 6, 5, 2, 2, 7,
- 2, 1, 1, 1, 6, 6, 0, 3, 9, 6, 6, 6, 5, 5, 7, 3, 0, 9, 2, 5, 4, 7, 1, 1, 0, 5, 5, 7, 8, 5, 3, 7, 6, 3, 4, 6, 6, 8, 2, 0, 6, 5, 3, 1, 0, 9, 8, 9, 6, 5, 2, 6, 9, 1, 8, 6, 2, 0, 5, 6, 4, 7, 6, 9, 3, 1, 2, 5, 7, 0,
- 5, 8, 6, 3, 5, 6, 6, 2, 0, 1, 8, 5, 5, 8, 1, 0, 0, 7, 2, 9, 3, 6, 0, 6, 5, 9, 8, 7, 6, 4, 8, 6, 1, 1, 7, 9, 1, 0, 4, 5, 3, 3, 4, 8, 8, 5, 0, 3, 4, 6, 1, 1, 3, 6, 5, 7, 6, 8, 6, 7, 5, 3, 2, 4, 9, 4, 4, 1, 6, 6,
- 8, 0, 3, 9, 6, 2, 6, 5, 7, 9, 7, 8, 7, 7, 1, 8, 5, 5, 6, 0, 8, 4, 5, 5, 2, 9, 6, 5, 4, 1, 2, 6, 6, 5, 4, 0, 8, 5, 3, 0, 6, 1, 4, 3, 4, 4, 4, 3, 1, 8, 5, 8, 6, 7, 6, 9, 7, 5, 1, 4, 5, 6, 6, 1, 4, 0, 6, 8, 0, 0,
- 7, 0, 0, 2, 3, 7, 8, 7, 7, 6, 5, 9, 1, 3, 4, 4, 0, 1, 7, 1, 2, 7, 4, 9, 4, 7, 0, 4, 2, 0, 5, 6, 2, 2, 3, 0, 5, 3, 8, 9, 9, 4, 5, 6, 1, 3, 1, 4, 0, 7, 1, 1, 2, 7, 0, 0, 0, 4, 0, 7, 8, 5, 4, 7, 3, 3, 2, 6, 9, 9,
- 3, 9, 0, 8, 1, 4, 5, 4, 6, 6, 4, 6, 4, 5, 8, 8, 0, 7, 9, 7, 2, 7, 0, 8, 2, 6, 6, 8, 3, 0, 6, 3, 4, 3, 2, 8, 5, 8, 7, 8, 5, 6, 9, 8, 3, 0, 5, 2, 3, 5, 8, 0, 8, 9, 3, 3, 0, 6, 5, 7, 5, 7, 4, 0, 6, 7, 9, 5, 4, 5,
- 7, 1, 6, 3, 7, 7, 5, 2, 5, 4, 2, 0, 2, 1, 1, 4, 9, 5, 5, 7, 6, 1, 5, 8, 1, 4, 0, 0, 2, 5, 0, 1, 2, 6, 2, 2, 8, 5, 9, 4, 1, 3, 0, 2, 1, 6, 4, 7, 1, 5, 5, 0, 9, 7, 9, 2, 5, 9, 2, 3, 0, 9, 9, 0, 7, 9, 6, 5, 4, 7,
- 3, 7, 6, 1, 2, 5, 5, 1, 7, 6, 5, 6, 7, 5, 1, 3, 5, 7, 5, 1, 7, 8, 2, 9, 6, 6, 6, 4, 5, 4, 7, 7, 9, 1, 7, 4, 5, 0, 1, 1, 2, 9, 9, 6, 1, 4, 8, 9, 0, 3, 0, 4, 6, 3, 9, 9, 4, 7, 1, 3, 2, 9, 6, 2, 1, 0, 7, 3, 4, 0,
- 4, 3, 7, 5, 1, 8, 9, 5, 7, 3, 5, 9, 6, 1, 4, 5, 8, 9, 0, 1, 9, 3, 8, 9, 7, 1, 3, 1, 1, 1, 7, 9, 0, 4, 2, 9, 7, 8, 2, 8, 5, 6, 4, 7, 5, 0, 3, 2, 0, 3, 1, 9, 8, 6, 9, 1, 5, 1, 4, 0, 2, 8, 7, 0, 8, 0, 8, 5, 9, 9,
- 0, 4, 8, 0, 1, 0, 9, 4, 1, 2, 1, 4, 7, 2, 2, 1, 3, 1, 7, 9, 4, 7, 6, 4, 7, 7, 7, 2, 6, 2, 2, 4, 1, 4, 2, 5, 4, 8, 5, 4, 5, 4, 0, 3, 3, 2, 1, 5, 7, 1, 8, 5, 3, 0, 6, 1, 4, 2, 2, 8, 8, 1, 3, 7, 5, 8, 5, 0, 4, 3,
- 0, 6, 3, 3, 2, 1, 7, 5, 1, 8, 2, 9, 7, 9, 8, 6, 6, 2, 2, 3, 7, 1, 7, 2, 1, 5, 9, 1, 6, 0, 7, 7, 1, 6, 6, 9, 2, 5, 4, 7, 4, 8, 7, 3, 8, 9, 8, 6, 6, 5, 4, 9, 4, 9, 4, 5, 0, 1, 1, 4, 6, 5, 4, 0, 6, 2, 8, 4, 3, 3,
- 6, 6, 3, 9, 3, 7, 9, 0, 0, 3, 9, 7, 6, 9, 2, 6, 5, 6, 7, 2, 1, 4, 6, 3, 8, 5, 3, 0, 6, 7, 3, 6, 0, 9, 6, 5, 7, 1, 2, 0, 9, 1, 8, 0, 7, 6, 3, 8, 3, 2, 7, 1, 6, 6, 4, 1, 6, 2, 7, 4, 8, 8, 8, 8, 0, 0, 7, 8, 6, 9,
- 2, 5, 6, 0, 2, 9, 0, 2, 2, 8, 4, 7, 2, 1, 0, 4, 0, 3, 1, 7, 2, 1, 1, 8, 6, 0, 8, 2, 0, 4, 1, 9, 0, 0, 0, 4, 2, 2, 9, 6, 6, 1, 7, 1, 1, 9, 6, 3, 7, 7, 9, 2, 1, 3, 3, 7, 5, 7, 5, 1, 1, 4, 9, 5, 9, 5, 0, 1, 5, 6,
- 6, 0, 4, 9, 6, 3, 1, 8, 6, 2, 9, 4, 7, 2, 6, 5, 4, 7, 3, 6, 4, 2, 5, 2, 3, 0, 8, 1, 7, 7, 0, 3, 6, 7, 5, 1, 5, 9, 0, 6, 7, 3, 5, 0, 2, 3, 5, 0, 7, 2, 8, 3, 5, 4, 0, 5, 6, 7, 0, 4, 0, 3, 8, 6, 7, 4, 3, 5, 1, 3,
- 6, 2, 2, 2, 2, 4, 7, 7, 1, 5, 8, 9, 1, 5, 0, 4, 9, 5, 3, 0, 9, 8, 4, 4, 4, 8, 9, 3, 3, 3, 0, 9, 6, 3, 4, 0, 8, 7, 8, 0, 7, 6, 9, 3, 2, 5, 9, 9, 3, 9, 7, 8, 0, 5, 4, 1, 9, 3, 4, 1, 4, 4, 7, 3, 7, 7, 4, 4, 1, 8,
- 4, 2, 6, 3, 1, 2, 9, 8, 6, 0, 8, 0, 9, 9, 8, 8, 8, 6, 8, 7, 4, 1, 3, 2, 6, 0, 4, 7, 2, 1, 5, 6, 9, 5, 1, 6, 2, 3, 9, 6, 5, 8, 6, 4, 5, 7, 3, 0, 2, 1, 6, 3, 1, 5, 9, 8, 1, 9, 3, 1, 9, 5, 1, 6, 7, 3, 5, 3, 8, 1,
- 2, 9, 7, 4, 1, 6, 7, 7, 2, 9, 4, 7, 8, 6, 7, 2, 4, 2, 2, 9, 2, 4, 6, 5, 4, 3, 6, 6, 8, 0, 0, 9, 8, 0, 6, 7, 6, 9, 2, 8, 2, 3, 8, 2, 8, 0, 6, 8, 9, 9, 6, 4, 0, 0, 4, 8, 2, 4, 3, 5, 4, 0, 3, 7, 0, 1, 4, 1, 6, 3,
- 1, 4, 9, 6, 5, 8, 9, 7, 9, 4, 0, 9, 2, 4, 3, 2, 3, 7, 8, 9, 6, 9, 0, 7, 0, 6, 9, 7, 7, 9, 4, 2, 2, 3, 6, 2, 5, 0, 8, 2, 2, 1, 6, 8, 8, 9, 5, 7, 3, 8, 3, 7, 9, 8, 6, 2, 3, 0, 0, 1, 5, 9, 3, 7, 7, 6, 4, 7, 1, 6,
- 5, 1, 2, 2, 8, 9, 3, 5, 7, 8, 6, 0, 1, 5, 8, 8, 1, 6, 1, 7, 5, 5, 7, 8, 2, 9, 7, 3, 5, 2, 3, 3, 4, 4, 6, 0, 4, 2, 8, 1, 5, 1, 2, 6, 2, 7, 2, 0, 3, 7, 3, 4, 3, 1, 4, 6, 5, 3, 1, 9, 7, 7, 7, 7, 4, 1, 6, 0, 3, 1,
- 9, 9, 0, 6, 6, 5, 5, 4, 1, 8, 7, 6, 3, 9, 7, 9, 2, 9, 3, 3, 4, 4, 1, 9, 5, 2, 1, 5, 4, 1, 3, 4, 1, 8, 9, 9, 4, 8, 5, 4, 4, 4, 7, 3, 4, 5, 6, 7, 3, 8, 3, 1, 6, 2, 4, 9, 9, 3, 4, 1, 9, 1, 3, 1, 8, 1, 4, 8, 0, 9,
- 2, 7, 7, 7, 7, 1, 0, 3, 8, 6, 3, 8, 7, 7, 3, 4, 3, 1, 7, 7, 2, 0, 7, 5, 4, 5, 6, 5, 4, 5, 3, 2, 2, 0, 7, 7, 7, 0, 9, 2, 1, 2, 0, 1, 9, 0, 5, 1, 6, 6, 0, 9, 6, 2, 8, 0, 4, 9, 0, 9, 2, 6, 3, 6, 0, 1, 9, 7, 5, 9,
- 8, 8, 2, 8, 1, 6, 1, 3, 3, 2, 3, 1, 6, 6, 6, 3, 6, 5, 2, 8, 6, 1, 9, 3, 2, 6, 6, 8, 6, 3, 3, 6, 0, 6, 2, 7, 3, 5, 6, 7, 6, 3, 0, 3, 5, 4, 4, 7, 7, 6, 2, 8, 0, 3, 5, 0, 4, 5, 0, 7, 7, 7, 2, 3, 5, 5, 4, 7, 1, 0,
- 5, 8, 5, 9, 5, 4, 8, 7, 0, 2, 7, 9, 0, 8, 1, 4, 3, 5, 6, 2, 4, 0, 1, 4, 5, 1, 7, 1, 8, 0, 6, 2, 4, 6, 4, 3, 6, 2, 6, 7, 9, 4, 5, 6, 1, 2, 7, 5, 3, 1, 8, 1, 3, 4, 0, 7, 8, 3, 3, 0, 3, 3, 6, 2, 5, 4, 2, 3, 2, 7,
- 8, 3, 9, 4, 4, 9, 7, 5, 3, 8, 2, 4, 3, 7, 2, 0, 5, 8, 3, 5, 3, 1, 1, 4, 7, 7, 1, 1, 9, 9, 2, 6, 0, 6, 3, 8, 1, 3, 3, 4, 6, 7, 7, 6, 8, 7, 9, 6, 9, 5, 9, 7, 0, 3, 0, 9, 8, 3, 3, 9, 1, 3, 0, 7, 7, 1, 0, 9, 8, 7,
- 0, 4, 0, 8, 5, 9, 1, 3, 3, 7, 4, 6, 4, 1, 4, 4, 2, 8, 2, 2, 7, 7, 2, 6, 3, 4, 6, 5, 9, 4, 7, 0, 4, 7, 4, 5, 8, 7, 8, 4, 7, 7, 8, 7, 2, 0, 1, 9, 2, 7, 7, 1, 5, 2, 8, 0, 7, 3, 1, 7, 6, 7, 9, 0, 7, 7, 0, 7, 1, 5,
- 7, 2, 1, 3, 4, 4, 4, 7, 3, 0, 6, 0, 5, 7, 0, 0, 7, 3, 3, 4, 9, 2, 4, 3, 6, 9, 3, 1, 1, 3, 8, 3, 5, 0, 4, 9, 3, 1, 6, 3, 1, 2, 8, 4, 0, 4, 2, 5, 1, 2, 1, 9, 2, 5, 6, 5, 1, 7, 9, 8, 0, 6, 9, 4, 1, 1, 3, 5, 2, 8,
- 0, 1, 3, 1, 4, 7, 0, 1, 3, 0, 4, 7, 8, 1, 6, 4, 3, 7, 8, 8, 5, 1, 8, 5, 2, 9, 0, 9, 2, 8, 5, 4, 5, 2, 0, 1, 1, 6, 5, 8, 3, 9, 3, 4, 1, 9, 6, 5, 6, 2, 1, 3, 4, 9, 1, 4, 3, 4, 1, 5, 9, 5, 6, 2, 5, 8, 6, 5, 8, 6,
- 5, 5, 7, 0, 5, 5, 2, 6, 9, 0, 4, 9, 6, 5, 2, 0, 9, 8, 5, 8, 0, 3, 3, 8, 5, 0, 7, 2, 2, 4, 2, 6, 4, 8, 2, 9, 3, 9, 7, 2, 8, 5, 8, 4, 7, 8, 3, 1, 6, 3, 0, 5, 7, 7, 7, 7, 5, 6, 0, 6, 8, 8, 8, 7, 6, 4, 4, 6, 2, 4,
- 8, 2, 4, 6, 8, 5, 7, 9, 2, 6, 0, 3, 9, 5, 3, 5, 2, 7, 7, 3, 4, 8, 0, 3, 0, 4, 8, 0, 2, 9, 0, 0, 5, 8, 7, 6, 0, 7, 5, 8, 2, 5, 1, 0, 4, 7, 4, 7, 0, 9, 1, 6, 4, 3, 9, 6, 1, 3, 6, 2, 6, 7, 6, 0, 4, 4, 9, 2, 5, 6,
- 2, 7, 4, 2, 0, 4, 2, 0, 8, 3, 2, 0, 8, 5, 6, 6, 1, 1, 9, 0, 6, 2, 5, 4, 5, 4, 3, 3, 7, 2, 1, 3, 1, 5, 3, 5, 9, 5, 8, 4, 5, 0, 6, 8, 7, 7, 2, 4, 6, 0, 2, 9, 0, 1, 6, 1, 8, 7, 6, 6, 7, 9, 5, 2, 4, 0, 6, 1, 6, 3,
- 4, 2, 5, 2, 2, 5, 7, 7, 1, 9, 5, 4, 2, 9, 1, 6, 2, 9, 9, 1, 9, 3, 0, 6, 4, 5, 5, 3, 7, 7, 9, 9, 1, 4, 0, 3, 7, 3, 4, 0, 4, 3, 2, 8, 7, 5, 2, 6, 2, 8, 8, 8, 9, 6, 3, 9, 9, 5, 8, 7, 9, 4, 7, 5, 7, 2, 9, 1, 7, 4,
- 6, 4, 2, 6, 3, 5, 7, 4, 5, 5, 2, 5, 4, 0, 7, 9, 0, 9, 1, 4, 5, 1, 3, 5, 7, 1, 1, 1, 3, 6, 9, 4, 1, 0, 9, 1, 1, 9, 3, 9, 3, 2, 5, 1, 9, 1, 0, 7, 6, 0, 2, 0, 8, 2, 5, 2, 0, 2, 6, 1, 8, 7, 9, 8, 5, 3, 1, 8, 8, 7,
- 7, 0, 5, 8, 4, 2, 9, 7, 2, 5, 9, 1, 6, 7, 7, 8, 1, 3, 1, 4, 9, 6, 9, 9, 0, 0, 9, 0, 1, 9, 2, 1, 1, 6, 9, 7, 1, 7, 3, 7, 2, 7, 8, 4, 7, 6, 8, 4, 7, 2, 6, 8, 6, 0, 8, 4, 9, 0, 0, 3, 3, 7, 7, 0, 2, 4, 2, 4, 2, 9,
- 1, 6, 5, 1, 3, 0, 0, 5, 0, 0, 5, 1, 6, 8, 3, 2, 3, 3, 6, 4, 3, 5, 0, 3, 8, 9, 5, 1, 7, 0, 2, 9, 8, 9, 3, 9, 2, 2, 3, 3, 4, 5, 1, 7, 2, 2, 0, 1, 3, 8, 1, 2, 8, 0, 6, 9, 6, 5, 0, 1, 1, 7, 8, 4, 4, 0, 8, 7, 4, 5,
- 1, 9, 6, 0, 1, 2, 1, 2, 2, 8, 5, 9, 9, 3, 7, 1, 6, 2, 3, 1, 3, 0, 1, 7, 1, 1, 4, 4, 4, 8, 4, 6, 4, 0, 9, 0, 3, 8, 9, 0, 6, 4, 4, 9, 5, 4, 4, 4, 0, 0, 6, 1, 9, 8, 6, 9, 0, 7, 5, 4, 8, 5, 1, 6, 0, 2, 6, 3, 2, 7,
- 5, 0, 5, 2, 9, 8, 3, 4, 9, 1, 8, 7, 4, 0, 7, 8, 6, 6, 8, 0, 8, 8, 1, 8, 3, 3, 8, 5, 1, 0, 2, 2, 8, 3, 3, 4, 5, 0, 8, 5, 0, 4, 8, 6, 0, 8, 2, 5, 0, 3, 9, 3, 0, 2, 1, 3, 3, 2, 1, 9, 7, 1, 5, 5, 1, 8, 4, 3, 0, 6,
- 3, 5, 4, 5, 5, 0, 0, 7, 6, 6, 8, 2, 8, 2, 9, 4, 9, 3, 0, 4, 1, 3, 7, 7, 6, 5, 5, 2, 7, 9, 3, 9, 7, 5, 1, 7, 5, 4, 6, 1, 3, 9, 5, 3, 9, 8, 4, 6, 8, 3, 3, 9, 3, 6, 3, 8, 3, 0, 4, 7, 4, 6, 1, 1, 9, 9, 6, 6, 5, 3,
- 8, 5, 8, 1, 5, 3, 8, 4, 2, 0, 5, 6, 8, 5, 3, 3, 8, 6, 2, 1, 8, 6, 7, 2, 5, 2, 3, 3, 4, 0, 2, 8, 3, 0, 8, 7, 1, 1, 2, 3, 2, 8, 2, 7, 8, 9, 2, 1, 2, 5, 0, 7, 7, 1, 2, 6, 2, 9, 4, 6, 3, 2, 2, 9, 5, 6, 3, 9, 8, 9,
- 8, 9, 8, 9, 3, 5, 8, 2, 1, 1, 6, 7, 4, 5, 6, 2, 7, 0, 1, 0, 2, 1, 8, 3, 5, 6, 4, 6, 2, 2, 0, 1, 3, 4, 9, 6, 7, 1, 5, 1, 8, 8, 1, 9, 0, 9, 7, 3, 0, 3, 8, 1, 1, 9, 8, 0, 0, 4, 9, 7, 3, 4, 0, 7, 2, 3, 9, 6, 1, 0,
- 3, 6, 8, 5, 4, 0, 6, 6, 4, 3, 1, 9, 3, 9, 5, 0, 9, 7, 9, 0, 1, 9, 0, 6, 9, 9, 6, 3, 9, 5, 5, 2, 4, 5, 3, 0, 0, 5, 4, 5, 0, 5, 8, 0, 6, 8, 5, 5, 0, 1, 9, 5, 6, 7, 3, 0, 2, 2, 9, 2, 1, 9, 1, 3, 9, 3, 3, 9, 1, 8,
- 5, 6, 8, 0, 3, 4, 4, 9, 0, 3, 9, 8, 2, 0, 5, 9, 5, 5, 1, 0, 0, 2, 2, 6, 3, 5, 3, 5, 3, 6, 1, 9, 2, 0, 4, 1, 9, 9, 4, 7, 4, 5, 5, 3, 8, 5, 9, 3, 8, 1, 0, 2, 3, 4, 3, 9, 5, 5, 4, 4, 9, 5, 9, 7, 7, 8, 3, 7, 7, 9,
- 0, 2, 3, 7, 4, 2, 1, 6, 1, 7, 2, 7, 1, 1, 1, 7, 2, 3, 6, 4, 3, 4, 3, 5, 4, 3, 9, 4, 7, 8, 2, 2, 1, 8, 1, 8, 5, 2, 8, 6, 2, 4, 0, 8, 5, 1, 4, 0, 0, 6, 6, 6, 0, 4, 4, 3, 3, 2, 5, 8, 8, 8, 5, 6, 9, 8, 6, 7, 0, 5,
- 4, 3, 1, 5, 4, 7, 0, 6, 9, 6, 5, 7, 4, 7, 4, 5, 8, 5, 5, 0, 3, 3, 2, 3, 2, 3, 3, 4, 2, 1, 0, 7, 3, 0, 1, 5, 4, 5, 9, 4, 0, 5, 1, 6, 5, 5, 3, 7, 9, 0, 6, 8, 6, 6, 2, 7, 3, 3, 3, 7, 9, 9, 5, 8, 5, 1, 1, 5, 6, 2,
- 5, 7, 8, 4, 3, 2, 2, 9, 8, 8, 2, 7, 3, 7, 2, 3, 1, 9, 8, 9, 8, 7, 5, 7, 1, 4, 1, 5, 9, 5, 7, 8, 1, 1, 1, 9, 6, 3, 5, 8, 3, 3, 0, 0, 5, 9, 4, 0, 8, 7, 3, 0, 6, 8, 1, 2, 1, 6, 0, 2, 8, 7, 6, 4, 9, 6, 2, 8, 6, 7,
- 4, 4, 6, 0, 4, 7, 7, 4, 6, 4, 9, 1, 5, 9, 9, 5, 0, 5, 4, 9, 7, 3, 7, 4, 2, 5, 6, 2, 6, 9, 0, 1, 0, 4, 9, 0, 3, 7, 7, 8, 1, 9, 8, 6, 8, 3, 5, 9, 3, 8, 1, 4, 6, 5, 7, 4, 1, 2, 6, 8, 0, 4, 9, 2, 5, 6, 4, 8, 7, 9,
- 8, 5, 5, 6, 1, 4, 5, 3, 7, 2, 3, 4, 7, 8, 6, 7, 3, 3, 0, 3, 9, 0, 4, 6, 8, 8, 3, 8, 3, 4, 3, 6, 3, 4, 6, 5, 5, 3, 7, 9, 4, 9, 8, 6, 4, 1, 9, 2, 7, 0, 5, 6, 3, 8, 7, 2, 9, 3, 1, 7, 4, 8, 7, 2, 3, 3, 2, 0, 8, 3,
- 7, 6, 0, 1, 1, 2, 3, 0, 2, 9, 9, 1, 1, 3, 6, 7, 9, 3, 8, 6, 2, 7, 0, 8, 9, 4, 3, 8, 7, 9, 9, 3, 6, 2, 0, 1, 6, 2, 9, 5, 1, 5, 4, 1, 3, 3, 7, 1, 4, 2, 4, 8, 9, 2, 8, 3, 0, 7, 2, 2, 0, 1, 2, 6, 9, 0, 1, 4, 7, 5,
- 4, 6, 6, 8, 4, 7, 6, 5, 3, 5, 7, 6, 1, 6, 4, 7, 7, 3, 7, 9, 4, 6, 7, 5, 2, 0, 0, 4, 9, 0, 7, 5, 7, 1, 5, 5, 5, 2, 7, 8, 1, 9, 6, 5, 3, 6, 2, 1, 3, 2, 3, 9, 2, 6, 4, 0, 6, 1, 6, 0, 1, 3, 6, 3, 5, 8, 1, 5, 5, 9,
- 0, 7, 4, 2, 2, 0, 2, 0, 2, 0, 3, 1, 8, 7, 2, 7, 7, 6, 0, 5, 2, 7, 7, 2, 1, 9, 0, 0, 5, 5, 6, 1, 4, 8, 4, 2, 5, 5, 5, 1, 8, 7, 9, 2, 5, 3, 0, 3, 4, 3, 5, 1, 3, 9, 8, 4, 4, 2, 5, 3, 2, 2, 3, 4, 1, 5, 7, 6, 2, 3,
- 3, 6, 1, 0, 6, 4, 2, 5, 0, 6, 3, 9, 0, 4, 9, 7, 5, 0, 0, 8, 6, 5, 6, 2, 7, 1, 0, 9, 5, 3, 5, 9, 1, 9, 4, 6, 5, 8, 9, 7, 5, 1, 4, 1, 3, 1, 0, 3, 4, 8, 2, 2, 7, 6, 9, 3, 0, 6, 2, 4, 7, 4, 3, 5, 3, 6, 3, 2, 5, 6,
- 9, 1, 6, 0, 7, 8, 1, 5, 4, 7, 8, 1, 8, 1, 1, 5, 2, 8, 4, 3, 6, 6, 7, 9, 5, 7, 0, 6, 1, 1, 0, 8, 6, 1, 5, 3, 3, 1, 5, 0, 4, 4, 5, 2, 1, 2, 7, 4, 7, 3, 9, 2, 4, 5, 4, 4, 9, 4, 5, 4, 2, 3, 6, 8, 2, 8, 8, 6, 0, 6,
- 1, 3, 4, 0, 8, 4, 1, 4, 8, 6, 3, 7, 7, 6, 7, 0, 0, 9, 6, 1, 2, 0, 7, 1, 5, 1, 2, 4, 9, 1, 4, 0, 4, 3, 0, 2, 7, 2, 5, 3, 8, 6, 0, 7, 6, 4, 8, 2, 3, 6, 3, 4, 1, 4, 3, 3, 4, 6, 2, 3, 5, 1, 8, 9, 7, 5, 7, 6, 6, 4,
- 5, 2, 1, 6, 4, 1, 3, 7, 6, 7, 9, 6, 9, 0, 3, 1, 4, 9, 5, 0, 1, 9, 1, 0, 8, 5, 7, 5, 9, 8, 4, 4, 2, 3, 9, 1, 9, 8, 6, 2, 9, 1, 6, 4, 2, 1, 9, 3, 9, 9, 4, 9, 0, 7, 2, 3, 6, 2, 3, 4, 6, 4, 6, 8, 4, 4, 1, 1, 7, 3,
- 9, 4, 0, 3, 2, 6, 5, 9, 1, 8, 4, 0, 4, 4, 3, 7, 8, 0, 5, 1, 3, 3, 3, 8, 9, 4, 5, 2, 5, 7, 4, 2, 3, 9, 9, 5, 0, 8, 2, 9, 6, 5, 9, 1, 2, 2, 8, 5, 0, 8, 5, 5, 5, 8, 2, 1, 5, 7, 2, 5, 0, 3, 1, 0, 7, 1, 2, 5, 7, 0,
- 1, 2, 6, 6, 8, 3, 0, 2, 4, 0, 2, 9, 2, 9, 5, 2, 5, 2, 2, 0, 1, 1, 8, 7, 2, 6, 7, 6, 7, 5, 6, 2, 2, 0, 4, 1, 5, 4, 2, 0, 5, 1, 6, 1, 8, 4, 1, 6, 3, 4, 8, 4, 7, 5, 6, 5, 1, 6, 9, 9, 9, 8, 1, 1, 6, 1, 4, 1, 0, 1,
- 0, 0, 2, 9, 9, 6, 0, 7, 8, 3, 8, 6, 9, 0, 9, 2, 9, 1, 6, 0, 3, 0, 2, 8, 8, 4, 0, 0, 2, 6, 9, 1, 0, 4, 1, 4, 0, 7, 9, 2, 8, 8, 6, 2, 1, 5, 0, 7, 8, 4, 2, 4, 5, 1, 6, 7, 0, 9, 0, 8, 7, 0, 0, 0, 6, 9, 9, 2, 8, 2,
- 1, 2, 0, 6, 6, 0, 4, 1, 8, 3, 7, 1, 8, 0, 6, 5, 3, 5, 5, 6, 7, 2, 5, 2, 5, 3, 2, 5, 6, 7, 5, 3, 2, 8, 6, 1, 2, 9, 1, 0, 4, 2, 4, 8, 7, 7, 6, 1, 8, 2, 5, 8, 2, 9, 7, 6, 5, 1, 5, 7, 9, 5, 9, 8, 4, 7, 0, 3, 5, 6,
- 2, 2, 2, 6, 2, 9, 3, 4, 8, 6, 0, 0, 3, 4, 1, 5, 8, 7, 2, 2, 9, 8, 0, 5, 3, 4, 9, 8, 9, 6, 5, 0, 2, 2, 6, 2, 9, 1, 7, 4, 8, 7, 8, 8, 2, 0, 2, 7, 3, 4, 2, 0, 9, 2, 2, 2, 2, 4, 5, 3, 3, 9, 8, 5, 6, 2, 6, 4, 7, 6,
- 6, 9, 1, 4, 9, 0, 5, 5, 6, 2, 8, 4, 2, 5, 0, 3, 9, 1, 2, 7, 5, 7, 7, 1, 0, 2, 8, 4, 0, 2, 7, 9, 9, 8, 0, 6, 6, 3, 6, 5, 8, 2, 5, 4, 8, 8, 9, 2, 6, 4, 8, 8, 0, 2, 5, 4, 5, 6, 6, 1, 0, 1, 7, 2, 9, 6, 7, 0, 2, 6,
- 6, 4, 0, 7, 6, 5, 5, 9, 0, 4, 2, 9, 0, 9, 9, 4, 5, 6, 8, 1, 5, 0, 6, 5, 2, 6, 5, 3, 0, 5, 3, 7, 1, 8, 2, 9, 4, 1, 2, 7, 0, 3, 3, 6, 9, 3, 1, 3, 7, 8, 5, 1, 7, 8, 6, 0, 9, 0, 4, 0, 7, 0, 8, 6, 6, 7, 1, 1, 4, 9,
- 6, 5, 5, 8, 3, 4, 3, 4, 3, 4, 7, 6, 9, 3, 3, 8, 5, 7, 8, 1, 7, 1, 1, 3, 8, 6, 4, 5, 5, 8, 7, 3, 6, 7, 8, 1, 2, 3, 0, 1, 4, 5, 8, 7, 6, 8, 7, 1, 2, 6, 6, 0, 3, 4, 8, 9, 1, 3, 9, 0, 9, 5, 6, 2, 0, 0, 9, 9, 3, 9,
- 3, 6, 1, 0, 3, 1, 0, 2, 9, 1, 6, 1, 6, 1, 5, 2, 8, 8, 1, 3, 8, 4, 3, 7, 9, 0, 9, 9, 0, 4, 2, 3, 1, 7, 4, 7, 3, 3, 6, 3, 9, 4, 8, 0, 4, 5, 7, 5, 9, 3, 1, 4, 9, 3, 1, 4, 0, 5, 2, 9, 7, 6, 3, 4, 7, 5, 7, 4, 8, 1,
- 1, 9, 3, 5, 6, 7, 0, 9, 1, 1, 0, 1, 3, 7, 7, 5, 1, 7, 2, 1, 0, 0, 8, 0, 3, 1, 5, 5, 9, 0, 2, 4, 8, 5, 3, 0, 9, 0, 6, 6, 9, 2, 0, 3, 7, 6, 7, 1, 9, 2, 2, 0, 3, 3, 2, 2, 9, 0, 9, 4, 3, 3, 4, 6, 7, 6, 8, 5, 1, 4,
- 2, 2, 1, 4, 4, 7, 7, 3, 7, 9, 3, 9, 3, 7, 5, 1, 7, 0, 3, 4, 4, 3, 6, 6, 1, 9, 9, 1, 0, 4, 0, 3, 3, 7, 5, 1, 1, 1, 7, 3, 5, 4, 7, 1, 9, 1, 8, 5, 5, 0, 4, 6, 4, 4, 9, 0, 2, 6, 3, 6, 5, 5, 1, 2, 8, 1, 6, 2, 2, 8,
- 8, 2, 4, 4, 6, 2, 5, 7, 5, 9, 1, 6, 3, 3, 3, 0, 3, 9, 1, 0, 7, 2, 2, 5, 3, 8, 3, 7, 4, 2, 1, 8, 2, 1, 4, 0, 8, 8, 3, 5, 0, 8, 6, 5, 7, 3, 9, 1, 7, 7, 1, 5, 0, 9, 6, 8, 2, 8, 8, 7, 4, 7, 8, 2, 6, 5, 6, 9, 9, 5,
- 9, 9, 5, 7, 4, 4, 9, 0, 6, 6, 1, 7, 5, 8, 3, 4, 4, 1, 3, 7, 5, 2, 2, 3, 9, 7, 0, 9, 6, 8, 3, 4, 0, 8, 0, 0, 5, 3, 5, 5, 9, 8, 4, 9, 1, 7, 5, 4, 1, 7, 3, 8, 1, 8, 8, 3, 9, 9, 9, 4, 4, 6, 9, 7, 4, 8, 6, 7, 6, 2,
- 6, 5, 5, 1, 6, 5, 8, 2, 7, 6, 5, 8, 4, 8, 3, 5, 8, 8, 4, 5, 3, 1, 4, 2, 7, 7, 5, 6, 8, 7, 9, 0, 0, 2, 9, 0, 9, 5, 1, 7, 0, 2, 8, 3, 5, 2, 9, 7, 1, 6, 3, 4, 4, 5, 6, 2, 1, 2, 9, 6, 4, 0, 4, 3, 5, 2, 3, 1, 1, 7,
- 6, 0, 0, 6, 6, 5, 1, 0, 1, 2, 4, 1, 2, 0, 0, 6, 5, 9, 7, 5, 5, 8, 5, 1, 2, 7, 6, 1, 7, 8, 5, 8, 3, 8, 2, 9, 2, 0, 4, 1, 9, 7, 4, 8, 4, 4, 2, 3, 6, 0, 8, 0, 0, 7, 1, 9, 3, 0, 4, 5, 7, 6, 1, 8, 9, 3, 2, 3, 4, 9,
- 2, 2, 9, 2, 7, 9, 6, 5, 0, 1, 9, 8, 7, 5, 1, 8, 7, 2, 1, 2, 7, 2, 6, 7, 5, 0, 7, 9, 8, 1, 2, 5, 5, 4, 7, 0, 9, 5, 8, 9, 0, 4, 5, 5, 6, 3, 5, 7, 9, 2, 1, 2, 2, 1, 0, 3, 3, 3, 4, 6, 6, 9, 7, 4, 9, 9, 2, 3, 5, 6,
- 3, 0, 2, 5, 4, 9, 4, 7, 8, 0, 2, 4, 9, 0, 1, 1, 4, 1, 9, 5, 2, 1, 2, 3, 8, 2, 8, 1, 5, 3, 0, 9, 1, 1, 4, 0, 7, 9, 0, 7, 3, 8, 6, 0, 2, 5, 1, 5, 2, 2, 7, 4, 2, 9, 9, 5, 8, 1, 8, 0, 7, 2, 4, 7, 1, 6, 2, 5, 9, 1,
- 6, 6, 8, 5, 4, 5, 1, 3, 3, 3, 1, 2, 3, 9, 4, 8, 0, 4, 9, 4, 7, 0, 7, 9, 1, 1, 9, 1, 5, 3, 2, 6, 7, 3, 4, 3, 0, 2, 8, 2, 4, 4, 1, 8, 6, 0, 4, 1, 4, 2, 6, 3, 6, 3, 9, 5, 4, 8, 0, 0, 0, 4, 4, 8, 0, 0, 2, 6, 7, 0,
- 4, 9, 6, 2, 4, 8, 2, 0, 1, 7, 9, 2, 8, 9, 6, 4, 7, 6, 6, 9, 7, 5, 8, 3, 1, 8, 3, 2, 7, 1, 3, 1, 4, 2, 5, 1, 7, 0, 2, 9, 6, 9, 2, 3, 4, 8, 8, 9, 6, 2, 7, 6, 6, 8, 4, 4, 0, 3, 2, 3, 2, 6, 0, 9, 2, 7, 5, 2, 4, 9,
- 6, 0, 3, 5, 7, 9, 9, 6, 4, 6, 9, 2, 5, 6, 5, 0, 4, 9, 3, 6, 8, 1, 8, 3, 6, 0, 9, 0, 0, 3, 2, 3, 8, 0, 9, 2, 9, 3, 4, 5,
- 9, 5, 8, 8, 9, 7, 0, 6, 9, 5, 3, 6, 5, 3, 4, 9, 4, 0, 6, 0, 3, 4, 0, 2, 1, 6, 6, 5, 4, 4, 3, 7, 5, 5, 8, 9, 0, 0, 4, 5, 6, 3, 2, 8, 8, 2, 2, 5, 0, 5, 4, 5, 2, 5, 5, 6, 4, 0, 5, 6, 4, 4, 8, 2, 4, 6, 5, 1, 5, 1,
- 8, 7, 5, 4, 7, 1, 1, 9, 6, 2, 1, 8, 4, 4, 3, 9, 6, 5, 8, 2, 5, 3, 3, 7, 5, 4, 3, 8, 8, 5, 6, 9, 0, 9, 4, 1, 1, 3, 0, 3, 1, 5, 0, 9, 5, 2, 6, 1, 7, 9, 3, 7, 8, 0, 0, 2, 9, 7, 4, 1, 2, 0, 7, 6, 6, 5, 1, 4, 7, 9,
- 3, 9, 4, 2, 5, 9, 0, 2, 9, 8, 9, 6, 9, 5, 9, 4, 6, 9, 9, 5, 5, 6, 5, 7, 6, 1, 2, 1, 8, 6, 5, 6, 1, 9, 6, 7, 3, 3, 7, 8, 6, 2, 3, 6, 2, 5, 6, 1, 2, 5, 2, 1, 6, 3, 2, 0, 8, 6, 2, 8, 6, 9, 2, 2, 2, 1, 0, 3, 2, 7,
- 4, 8, 8, 9, 2, 1, 8, 6, 5, 4, 3, 6, 4, 8, 0, 2, 2, 9, 6, 7, 8, 0, 7, 0, 5, 7, 6, 5, 6, 1, 5, 1, 4, 4, 6, 3, 2, 0, 4, 6, 9, 2, 7, 9, 0, 6, 8, 2, 1, 2, 0, 7, 3, 8, 8, 3, 7, 7, 8, 1, 4, 2, 3, 3, 5, 6, 2, 8, 2, 3,
- 6, 0, 8, 9, 6, 3, 2, 0, 8, 0, 6, 8, 2, 2, 2, 4, 6, 8, 0, 1, 2, 2, 4, 8, 2, 6, 1, 1, 7, 7, 1, 8, 5, 8, 9, 6, 3, 8, 1, 4, 0, 9, 1, 8, 3, 9, 0, 3, 6, 7, 3, 6, 7, 2, 2, 2, 0, 8, 8, 8, 3, 2, 1, 5, 1, 3, 7, 5, 5, 6,
- 0, 0, 3, 7, 2, 7, 9, 8, 3, 9, 4, 0, 0, 4, 1, 5, 2, 9, 7, 0, 0, 2, 8, 7, 8, 3, 0, 7, 6, 6, 7, 0, 9, 4, 4, 4, 7, 4, 5, 6, 0, 1, 3, 4, 5, 5, 6, 4, 1, 7, 2, 5, 4, 3, 7, 0, 9, 0, 6, 9, 7, 9, 3, 9, 6, 1, 2, 2, 5, 7,
- 1, 4, 2, 9, 8, 9, 4, 6, 7, 1, 5, 4, 3, 5, 7, 8, 4, 6, 8, 7, 8, 8, 6, 1, 4, 4, 4, 5, 8, 1, 2, 3, 1, 4, 5, 9, 3, 5, 7, 1, 9, 8, 4, 9, 2, 2, 5, 2, 8, 4, 7, 1, 6, 0, 5, 0, 4, 9, 2, 2, 1, 2, 4, 2, 4, 7, 0, 1, 4, 1,
- 2, 1, 4, 7, 8, 0, 5, 7, 3, 4, 5, 5, 1, 0, 5, 0, 0, 8, 0, 1, 9, 0, 8, 6, 9, 9, 6, 0, 3, 3, 0, 2, 7, 6, 3, 4, 7, 8, 7, 0, 8, 1, 0, 8, 1, 7, 5, 4, 5, 0, 1, 1, 9, 3, 0, 7, 1, 4, 1, 2, 2, 3, 3, 9, 0, 8, 6, 6, 3, 9,
- 3, 8, 3, 3, 9, 5, 2, 9, 4, 2, 5, 7, 8, 6, 9, 0, 5, 0, 7, 6, 4, 3, 1, 0, 0, 6, 3, 8, 3, 5, 1, 9, 8, 3, 4, 3, 8, 9, 3, 4, 1, 5, 9, 6, 1, 3, 1, 8, 5, 4, 3, 4, 7, 5, 4, 6, 4, 9, 5, 5, 6, 9, 7, 8, 1, 0, 3, 8, 2, 9,
- 3, 0, 9, 7, 1, 6, 4, 6, 5, 1, 4, 3, 8, 4, 0, 7, 0, 0, 7, 0, 7, 3, 6, 0, 4, 1, 1, 2, 3, 7, 3, 5, 9, 9, 8, 4, 3, 4, 5, 2, 2, 5, 1, 6, 1, 0, 5, 0, 7, 0, 2, 7, 0, 5, 6, 2, 3, 5, 2, 6, 6, 0, 1, 2, 7, 6, 4, 8, 4, 8,
- 3, 0, 8, 4, 0, 7, 6, 1, 1, 8, 3, 0, 1, 3, 0, 5, 2, 7, 9, 3, 2, 0, 5, 4, 2, 7, 4, 6, 2, 8, 6, 5, 4, 0, 3, 6, 0, 3, 6, 7, 4, 5, 3, 2, 8, 6, 5, 1, 0, 5, 7, 0, 6, 5, 8, 7, 4, 8, 8, 2, 2, 5, 6, 9, 8, 1, 5, 7, 9, 3,
- 6, 7, 8, 9, 7, 6, 6, 9, 7, 4, 2, 2, 0, 5, 7, 5, 0, 5, 9, 6, 8, 3, 4, 4, 0, 8, 6, 9, 7, 3, 5, 0, 2, 0, 1, 4, 1, 0, 2, 0, 6, 7, 2, 3, 5, 8, 5, 0, 2, 0, 0, 7, 2, 4, 5, 2, 2, 5, 6, 3, 2, 6, 5, 1, 3, 4, 1, 0, 5, 5,
- 9, 2, 4, 0, 1, 9, 0, 2, 7, 4, 2, 1, 6, 2, 4, 8, 4, 3, 9, 1, 4, 0, 3, 5, 9, 9, 8, 9, 5, 3, 5, 3, 9, 4, 5, 9, 0, 9, 4, 4, 0, 7, 0, 4, 6, 9, 1, 2, 0, 9, 1, 4, 0, 9, 3, 8, 7, 0, 0, 1, 2, 6, 4, 5, 6, 0, 0, 1, 6, 2,
- 3, 7, 4, 2, 8, 8, 0, 2, 1, 0, 9, 2, 7, 6, 4, 5, 7, 9, 3, 1, 0, 6, 5, 7, 9, 2, 2, 9, 5, 5, 2, 4, 9, 8, 8, 7, 2, 7, 5, 8, 4, 6, 1, 0, 1, 2, 6, 4, 8, 3, 6, 9, 9, 9, 8, 9, 2, 2, 5, 6, 9, 5, 9, 6, 8, 8, 1, 5, 9, 2,
- 0, 5, 6, 0, 0, 1, 0, 1, 6, 5, 5, 2, 5, 6, 3, 7, 5, 6, 7, 8
- };
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/os/MessageQueueTest.java b/tests/AndroidTests/src/com/android/unit_tests/os/MessageQueueTest.java
deleted file mode 100644
index 155a247..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/os/MessageQueueTest.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.os;
-
-import android.os.Handler;
-import android.os.Message;
-import android.os.SystemClock;
-import android.test.suitebuilder.annotation.MediumTest;
-import junit.framework.TestCase;
-
-public class MessageQueueTest extends TestCase {
-
- private static class BaseTestHandler extends TestHandlerThread {
- Handler mHandler;
- int mLastMessage;
- int mCount;
-
- public BaseTestHandler() {
- }
-
- public void go() {
- mHandler = new Handler() {
- public void handleMessage(Message msg) {
- BaseTestHandler.this.handleMessage(msg);
- }
- };
- }
-
- public void handleMessage(Message msg) {
- if (mCount <= mLastMessage) {
- if (msg.what != mCount) {
- failure(new RuntimeException(
- "Expected message #" + mCount
- + ", received #" + msg.what));
- } else if (mCount == mLastMessage) {
- success();
- }
- mCount++;
- } else {
- failure(new RuntimeException(
- "Message received after done, #" + msg.what));
- }
- }
- }
-
- @MediumTest
- public void testMessageOrder() throws Exception {
- TestHandlerThread tester = new BaseTestHandler() {
- public void go() {
- super.go();
- long now = SystemClock.uptimeMillis() + 200;
- mLastMessage = 4;
- mCount = 0;
- mHandler.sendMessageAtTime(mHandler.obtainMessage(2), now + 1);
- mHandler.sendMessageAtTime(mHandler.obtainMessage(3), now + 2);
- mHandler.sendMessageAtTime(mHandler.obtainMessage(4), now + 2);
- mHandler.sendMessageAtTime(mHandler.obtainMessage(0), now + 0);
- mHandler.sendMessageAtTime(mHandler.obtainMessage(1), now + 0);
- }
- };
-
- tester.doTest(1000);
- }
-
- @MediumTest
- public void testAtFrontOfQueue() throws Exception {
- TestHandlerThread tester = new BaseTestHandler() {
- public void go() {
- super.go();
- long now = SystemClock.uptimeMillis() + 200;
- mLastMessage = 3;
- mCount = 0;
- mHandler.sendMessageAtTime(mHandler.obtainMessage(3), now);
- mHandler.sendMessageAtFrontOfQueue(mHandler.obtainMessage(2));
- mHandler.sendMessageAtFrontOfQueue(mHandler.obtainMessage(0));
- }
-
- public void handleMessage(Message msg) {
- super.handleMessage(msg);
- if (msg.what == 0) {
- mHandler.sendMessageAtFrontOfQueue(mHandler.obtainMessage(1));
- }
- }
- };
-
- tester.doTest(1000);
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/os/MessengerService.java b/tests/AndroidTests/src/com/android/unit_tests/os/MessengerService.java
deleted file mode 100644
index 9228a43..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/os/MessengerService.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.os;
-
-import android.app.Service;
-import android.content.Intent;
-import android.os.RemoteException;
-import android.os.IBinder;
-import android.os.Handler;
-import android.os.Message;
-import android.os.Messenger;
-
-public class MessengerService extends Service {
- private final Handler mHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- Message reply = Message.obtain();
- reply.copyFrom(msg);
- try {
- msg.replyTo.send(reply);
- } catch (RemoteException e) {
- }
- }
- };
-
- private final Messenger mMessenger = new Messenger(mHandler);
-
- public MessengerService() {
- }
-
- @Override
- public IBinder onBind(Intent intent) {
- return mMessenger.getBinder();
- }
-}
-
diff --git a/tests/AndroidTests/src/com/android/unit_tests/os/MessengerTest.java b/tests/AndroidTests/src/com/android/unit_tests/os/MessengerTest.java
deleted file mode 100644
index 2a3e204..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/os/MessengerTest.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.os;
-
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.ServiceConnection;
-import android.os.RemoteException;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.Message;
-import android.os.Messenger;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-
-public class MessengerTest extends AndroidTestCase {
- private Messenger mServiceMessenger;
-
- private ServiceConnection mConnection = new ServiceConnection() {
- public void onServiceConnected(ComponentName name, IBinder service) {
- synchronized (MessengerTest.this) {
- mServiceMessenger = new Messenger(service);
- MessengerTest.this.notifyAll();
- }
- }
- public void onServiceDisconnected(ComponentName name) {
- mServiceMessenger = null;
- }
- };
-
- private class TestThread extends TestHandlerThread {
- private Handler mTestHandler;
- private Messenger mTestMessenger;
-
- public void go() {
- synchronized (MessengerTest.this) {
- mTestHandler = new Handler() {
- public void handleMessage(Message msg) {
- TestThread.this.handleMessage(msg);
- }
- };
- mTestMessenger = new Messenger(mTestHandler);
- TestThread.this.executeTest();
- }
- }
-
- public void executeTest() {
- Message msg = Message.obtain();
- msg.arg1 = 100;
- msg.arg2 = 1000;
- msg.replyTo = mTestMessenger;
- try {
- mServiceMessenger.send(msg);
- } catch (RemoteException e) {
- }
- }
-
- public void handleMessage(Message msg) {
- if (msg.arg1 != 100) {
- failure(new RuntimeException(
- "Message.arg1 is not 100: " + msg.arg1));
- return;
- }
- if (msg.arg2 != 1000) {
- failure(new RuntimeException(
- "Message.arg2 is not 1000: " + msg.arg2));
- return;
- }
- if (!mTestMessenger.equals(msg.replyTo)) {
- failure(new RuntimeException(
- "Message.replyTo is not me: " + msg.replyTo));
- return;
- }
- success();
- }
- };
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- getContext().bindService(new Intent(mContext, MessengerService.class),
- mConnection, Context.BIND_AUTO_CREATE);
- synchronized (this) {
- while (mServiceMessenger == null) {
- try {
- wait();
- } catch (InterruptedException e) {
- }
- }
- }
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
- getContext().unbindService(mConnection);
- }
-
- @MediumTest
- public void testSend() {
- (new TestThread()).doTest(1000);
-
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/os/OsTests.java b/tests/AndroidTests/src/com/android/unit_tests/os/OsTests.java
deleted file mode 100644
index bf02509..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/os/OsTests.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.os;
-
-import com.google.android.collect.Lists;
-import junit.framework.TestSuite;
-
-import java.util.Enumeration;
-import java.util.List;
-
-public class OsTests {
- public static TestSuite suite() {
- TestSuite suite = new TestSuite(OsTests.class.getName());
-
- suite.addTestSuite(AidlTest.class);
- suite.addTestSuite(BroadcasterTest.class);
- suite.addTestSuite(FileObserverTest.class);
- suite.addTestSuite(IdleHandlerTest.class);
- suite.addTestSuite(MemoryFileTest.class);
- suite.addTestSuite(MessageQueueTest.class);
- suite.addTestSuite(MessengerTest.class);
- suite.addTestSuite(PowerManagerTest.class);
- suite.addTestSuite(SystemPropertiesTest.class);
-
- return suite;
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/os/PowerManagerTest.java b/tests/AndroidTests/src/com/android/unit_tests/os/PowerManagerTest.java
deleted file mode 100644
index bd5c955..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/os/PowerManagerTest.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.os;
-
-import android.content.Context;
-import android.os.PowerManager;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-
-public class PowerManagerTest extends AndroidTestCase {
-
- private PowerManager mPm;
-
- /**
- * Setup any common data for the upcoming tests.
- */
- @Override
- public void setUp() throws Exception {
- super.setUp();
- mPm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
- }
-
- /**
- * Confirm that the setup is good.
- *
- * @throws Exception
- */
- @MediumTest
- public void testPreconditions() throws Exception {
- assertNotNull(mPm);
- }
-
- /**
- * Confirm that we can create functional wakelocks.
- *
- * @throws Exception
- */
- @MediumTest
- public void testNewWakeLock() throws Exception {
- PowerManager.WakeLock wl = mPm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "FULL_WAKE_LOCK");
- doTestWakeLock(wl);
-
- wl = mPm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "SCREEN_BRIGHT_WAKE_LOCK");
- doTestWakeLock(wl);
-
- wl = mPm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "SCREEN_DIM_WAKE_LOCK");
- doTestWakeLock(wl);
-
- wl = mPm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "PARTIAL_WAKE_LOCK");
- doTestWakeLock(wl);
-
- // TODO: Some sort of functional test (maybe not in the unit test here?)
- // that confirms that things are really happening e.g. screen power, keyboard power.
-}
-
- /**
- * Confirm that we can't create dysfunctional wakelocks.
- *
- * @throws Exception
- */
- @MediumTest
- public void testBadNewWakeLock() throws Exception {
-
- final int badFlags = PowerManager.SCREEN_BRIGHT_WAKE_LOCK
- | PowerManager.SCREEN_DIM_WAKE_LOCK;
- // wrap in try because we want the error here
- try {
- PowerManager.WakeLock wl = mPm.newWakeLock(badFlags, "foo");
- } catch (IllegalArgumentException e) {
- return;
- }
- fail("Bad WakeLock flag was not caught.");
- }
-
- /**
- * Apply a few tests to a wakelock to make sure it's healthy.
- *
- * @param wl The wakelock to be tested.
- */
- private void doTestWakeLock(PowerManager.WakeLock wl) {
- // First try simple acquire/release
- wl.acquire();
- assertTrue(wl.isHeld());
- wl.release();
- assertFalse(wl.isHeld());
-
- // Try ref-counted acquire/release
- wl.setReferenceCounted(true);
- wl.acquire();
- assertTrue(wl.isHeld());
- wl.acquire();
- assertTrue(wl.isHeld());
- wl.release();
- assertTrue(wl.isHeld());
- wl.release();
- assertFalse(wl.isHeld());
-
- // Try non-ref-counted
- wl.setReferenceCounted(false);
- wl.acquire();
- assertTrue(wl.isHeld());
- wl.acquire();
- assertTrue(wl.isHeld());
- wl.release();
- assertFalse(wl.isHeld());
-
- // TODO: Threaded test (needs handler) to make sure timed wakelocks work too
- }
-
-
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/os/SystemPropertiesTest.java b/tests/AndroidTests/src/com/android/unit_tests/os/SystemPropertiesTest.java
deleted file mode 100644
index df08bb9..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/os/SystemPropertiesTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.os;
-
-import static junit.framework.Assert.assertEquals;
-import junit.framework.TestCase;
-
-import android.os.SystemProperties;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class SystemPropertiesTest extends TestCase {
- private static final String KEY = "com.android.unit_tests";
- @SmallTest
- public void testProperties() throws Exception {
- if (false) {
- String value;
-
- SystemProperties.set(KEY, "");
- value = SystemProperties.get(KEY, "default");
- assertEquals("default", value);
-
- SystemProperties.set(KEY, "AAA");
- value = SystemProperties.get(KEY, "default");
- assertEquals("AAA", value);
-
- value = SystemProperties.get(KEY);
- assertEquals("AAA", value);
-
- SystemProperties.set(KEY, "");
- value = SystemProperties.get(KEY, "default");
- assertEquals("default", value);
-
- value = SystemProperties.get(KEY);
- assertEquals("", value);
- }
- }
-}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/os/TestHandlerThread.java b/tests/AndroidTests/src/com/android/unit_tests/os/TestHandlerThread.java
deleted file mode 100644
index dba8dde..0000000
--- a/tests/AndroidTests/src/com/android/unit_tests/os/TestHandlerThread.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.unit_tests.os;
-
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-import android.os.MessageQueue.IdleHandler;
-
-abstract class TestHandlerThread {
- private boolean mDone = false;
- private boolean mSuccess = false;
- private RuntimeException mFailure = null;
- private Looper mLooper;
-
- public abstract void go();
-
- public TestHandlerThread() {
- }
-
- public void doTest(long timeout) {
- (new LooperThread()).start();
-
- synchronized (this) {
- long now = System.currentTimeMillis();
- long endTime = now + timeout;
- while (!mDone && now < endTime) {
- try {
- wait(endTime-now);
- }
- catch (InterruptedException e) {
- }
- now = System.currentTimeMillis();
- }
- }
-
- mLooper.quit();
-
- if (!mDone) {
- throw new RuntimeException("test timed out");
- }
- if (!mSuccess) {
- throw mFailure;
- }
- }
-
- public Looper getLooper() {
- return mLooper;
- }
-
- public void success() {
- synchronized (this) {
- mSuccess = true;
- quit();
- }
- }
-
- public void failure(RuntimeException failure) {
- synchronized (this) {
- mSuccess = false;
- mFailure = failure;
- quit();
- }
- }
-
- class LooperThread extends Thread {
- public void run() {
- Looper.prepare();
- mLooper = Looper.myLooper();
- go();
- Looper.loop();
-
- synchronized (TestHandlerThread.this) {
- mDone = true;
- if (!mSuccess && mFailure == null) {
- mFailure = new RuntimeException("no failure exception set");
- }
- TestHandlerThread.this.notifyAll();
- }
- }
-
- }
-
- private void quit() {
- synchronized (this) {
- mDone = true;
- notifyAll();
- }
- }
-}
diff --git a/tests/CoreTests/Android.mk b/tests/CoreTests/Android.mk
deleted file mode 100644
index 8338432..0000000
--- a/tests/CoreTests/Android.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-include $(call all-subdir-makefiles)
-
diff --git a/tests/CoreTests/MODULE_LICENSE_APACHE2 b/tests/CoreTests/MODULE_LICENSE_APACHE2
deleted file mode 100644
index e69de29..0000000
--- a/tests/CoreTests/MODULE_LICENSE_APACHE2
+++ /dev/null
diff --git a/tests/CoreTests/android/Android.mk b/tests/CoreTests/android/Android.mk
deleted file mode 100644
index e6b5c45..0000000
--- a/tests/CoreTests/android/Android.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := tests
-
-LOCAL_SRC_FILES := \
- $(call all-subdir-java-files)
-LOCAL_SRC_FILES += \
- $(call all-java-files-under, ../com)
-
-LOCAL_JAVA_LIBRARIES := android.test.runner
-
-LOCAL_PACKAGE_NAME := CoreTests
-
-include $(BUILD_PACKAGE)
diff --git a/tests/CoreTests/android/AndroidManifest.xml b/tests/CoreTests/android/AndroidManifest.xml
deleted file mode 100644
index 4809f844..0000000
--- a/tests/CoreTests/android/AndroidManifest.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="android.core">
- <uses-permission android:name="android.permission.RECEIVE_SMS"/>
- <uses-permission android:name="android.permission.INTERNET" />
- <uses-permission android:name="android.permission.READ_CONTACTS" />
- <uses-permission android:name="android.permission.WRITE_CONTACTS" />
- <uses-permission android:name="android.permission.WAKE_LOCK" />
- <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
- <uses-permission android:name="android.permission.WRITE_APN_SETTINGS" />
- <uses-permission android:name="android.permission.BROADCAST_STICKY" />
-
- <!-- location test permissions -->
- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
- <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>
- <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
- <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
-
- <application>
- <uses-library android:name="android.test.runner" />
- <activity android:name="StubTestBrowserActivity" android:label="Stubbed Test Browser">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.FOR_TESTS_ONLY"/>
- </intent-filter>
- </activity>
-
- <activity android:name="android.test.TestBrowserTests" android:label="Test Browser Tests">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.UNIT_TEST"/>
- </intent-filter>
- </activity>
- </application>
-
- <instrumentation
- android:name="android.test.InstrumentationTestRunner"
- android:targetPackage="android.core"
- android:label="Core Tests" />
-</manifest>
diff --git a/tests/CoreTests/android/content/ObserverNodeTest.java b/tests/CoreTests/android/content/ObserverNodeTest.java
deleted file mode 100644
index 68cc75b..0000000
--- a/tests/CoreTests/android/content/ObserverNodeTest.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.content;
-
-import java.util.ArrayList;
-
-import android.content.ContentService.ObserverCall;
-import android.content.ContentService.ObserverNode;
-import android.database.ContentObserver;
-import android.net.Uri;
-import android.os.Handler;
-import android.test.AndroidTestCase;
-import android.util.Log;
-
-public class ObserverNodeTest extends AndroidTestCase {
- static class TestObserver extends ContentObserver {
- public TestObserver() {
- super(new Handler());
- }
- }
-
- public void testUri() {
- ObserverNode root = new ObserverNode("");
- Uri[] uris = new Uri[] {
- Uri.parse("content://c/a/"),
- Uri.parse("content://c/"),
- Uri.parse("content://x/"),
- Uri.parse("content://c/b/"),
- Uri.parse("content://c/a/a1/1/"),
- Uri.parse("content://c/a/a1/2/"),
- Uri.parse("content://c/b/1/"),
- Uri.parse("content://c/b/2/"),
- };
-
- int[] nums = new int[] {4, 7, 1, 4, 2, 2, 3, 3};
-
- // special case
- root.addObserver(uris[0], new TestObserver().getContentObserver(), false);
- for(int i = 1; i < uris.length; i++) {
- root.addObserver(uris[i], new TestObserver().getContentObserver(), true);
- }
-
- ArrayList<ObserverCall> calls = new ArrayList<ObserverCall>();
-
- for (int i = nums.length - 1; i >=0; --i) {
- root.collectObservers(uris[i], 0, null, false, calls);
- assertEquals(nums[i], calls.size());
- calls.clear();
- }
- }
-
- public void testUriNotNotify() {
- ObserverNode root = new ObserverNode("");
- Uri[] uris = new Uri[] {
- Uri.parse("content://c/"),
- Uri.parse("content://x/"),
- Uri.parse("content://c/a/"),
- Uri.parse("content://c/b/"),
- Uri.parse("content://c/a/1/"),
- Uri.parse("content://c/a/2/"),
- Uri.parse("content://c/b/1/"),
- Uri.parse("content://c/b/2/"),
- };
- int[] nums = new int[] {7, 1, 3, 3, 1, 1, 1, 1};
-
- for(int i = 0; i < uris.length; i++) {
- root.addObserver(uris[i], new TestObserver().getContentObserver(), false);
- }
-
- ArrayList<ObserverCall> calls = new ArrayList<ObserverCall>();
-
- for (int i = uris.length - 1; i >=0; --i) {
- root.collectObservers(uris[i], 0, null, false, calls);
- assertEquals(nums[i], calls.size());
- calls.clear();
- }
- }
-}
diff --git a/tests/CoreTests/android/content/SyncStorageEngineTest.java b/tests/CoreTests/android/content/SyncStorageEngineTest.java
deleted file mode 100644
index 36805b1..0000000
--- a/tests/CoreTests/android/content/SyncStorageEngineTest.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.content;
-
-import android.test.AndroidTestCase;
-import android.test.RenamingDelegatingContext;
-import android.test.mock.MockContext;
-import android.test.mock.MockContentResolver;
-import android.provider.Sync;
-
-public class SyncStorageEngineTest extends AndroidTestCase {
-
- /**
- * Test that we handle the case of a history row being old enough to purge before the
- * correcponding sync is finished. This can happen if the clock changes while we are syncing.
- */
- public void testPurgeActiveSync() throws Exception {
- final String account = "a@example.com";
- final String authority = "testprovider";
-
- MockContentResolver mockResolver = new MockContentResolver();
-
- SyncStorageEngine engine = SyncStorageEngine.newTestInstance(
- new TestContext(mockResolver, getContext()));
-
- long time0 = 1000;
- long historyId = engine.insertStartSyncEvent(
- account, authority, time0, Sync.History.SOURCE_LOCAL);
- long time1 = time0 + SyncStorageEngine.MILLIS_IN_4WEEKS * 2;
- engine.stopSyncEvent(historyId, time1 - time0, "yay", 0, 0);
- }
-}
-
-class TestContext extends ContextWrapper {
-
- ContentResolver mResolver;
-
- public TestContext(ContentResolver resolver, Context realContext) {
- super(new RenamingDelegatingContext(new MockContext(), realContext, "test."));
- mResolver = resolver;
- }
-
- @Override
- public void enforceCallingOrSelfPermission(String permission, String message) {
- }
-
-
- @Override
- public ContentResolver getContentResolver() {
- return mResolver;
- }
-}
diff --git a/tests/CoreTests/android/core/AbstractJDBCDriverTest.java b/tests/CoreTests/android/core/AbstractJDBCDriverTest.java
deleted file mode 100644
index e381a5e..0000000
--- a/tests/CoreTests/android/core/AbstractJDBCDriverTest.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import java.io.File;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-
-/**
- * Tests for the most commonly used methods of sql like creating a connection,
- * inserting, selecting, updating.
- */
-public abstract class AbstractJDBCDriverTest extends TestCase {
-
- @MediumTest
- public void testJDBCDriver() throws Exception {
- Connection firstConnection = null;
- Connection secondConnection = null;
- File dbFile = getDbFile();
- String connectionURL = getConnectionURL();
- Statement firstStmt = null;
- Statement secondStmt = null;
- try {
- Class.forName(getJDBCDriverClassName());
- firstConnection = DriverManager.getConnection(connectionURL);
- secondConnection = DriverManager.getConnection(connectionURL);
-
- String[] ones = {"hello!", "goodbye"};
- short[] twos = {10, 20};
- String[] onesUpdated = new String[ones.length];
- for (int i = 0; i < ones.length; i++) {
- onesUpdated[i] = ones[i] + twos[i];
- }
- firstStmt = firstConnection.createStatement();
- firstStmt.execute("create table tbl1(one varchar(10), two smallint)");
- secondStmt = secondConnection.createStatement();
-
- autoCommitInsertSelectTest(firstStmt, ones, twos);
- updateSelectCommitSelectTest(firstStmt, secondStmt, ones, onesUpdated, twos);
- updateSelectRollbackSelectTest(firstStmt, secondStmt, onesUpdated, ones, twos);
- } finally {
- closeConnections(firstConnection, secondConnection, dbFile, firstStmt, secondStmt);
- }
- }
-
- protected abstract String getJDBCDriverClassName();
- protected abstract String getConnectionURL();
- protected abstract File getDbFile();
-
- private void closeConnections(Connection firstConnection, Connection secondConnection,
- File dbFile, Statement firstStmt, Statement secondStmt) {
- String failText = null;
- try {
- if (firstStmt != null) {
- firstStmt.execute("drop table tbl1");
- }
- } catch (SQLException e) {
- failText = e.getLocalizedMessage();
- }
- try {
- if (firstStmt != null) {
- firstStmt.close();
- }
- } catch (SQLException e) {
- failText = e.getLocalizedMessage();
- }
- try {
- if (firstConnection != null) {
- firstConnection.close();
- }
- } catch (SQLException e) {
- failText = e.getLocalizedMessage();
- }
- try {
- if (secondStmt != null) {
- secondStmt.close();
- }
- } catch (SQLException e) {
- failText = e.getLocalizedMessage();
- }
- try {
- if (secondConnection != null) {
- secondConnection.close();
- }
- } catch (SQLException e) {
- failText = e.getLocalizedMessage();
- }
- dbFile.delete();
- assertNull(failText, failText);
- }
-
- /**
- * Inserts the values from 'ones' with the values from 'twos' into 'tbl1'
- * @param stmt the statement to use for the inserts.
- * @param ones the string values to insert into tbl1.
- * @param twos the corresponding numerical values to insert into tbl1.
- * @throws SQLException in case of a problem during insert.
- */
- private void autoCommitInsertSelectTest(Statement stmt, String[] ones,
- short[] twos) throws SQLException {
- for (int i = 0; i < ones.length; i++) {
- stmt.execute("insert into tbl1 values('" + ones[i] + "'," + twos[i]
- + ")");
- }
- assertAllFromTbl1(stmt, ones, twos);
- }
-
- /**
- * Asserts that all values that where added to tbl1 are actually in tbl1.
- * @param stmt the statement to use for the select.
- * @param ones the string values that where added.
- * @param twos the numerical values that where added.
- * @throws SQLException in case of a problem during select.
- */
- private void assertAllFromTbl1(Statement stmt, String[] ones, short[] twos)
- throws SQLException {
- ResultSet rs = stmt.executeQuery("select * from tbl1");
- int i = 0;
- for (; rs.next(); i++) {
- assertTrue(i < ones.length);
- assertEquals(ones[i], rs.getString("one"));
- assertEquals(twos[i], rs.getShort("two"));
- }
- assertEquals(i, ones.length);
- }
-
- /**
- * Tests the results of an update followed bz a select on a diffrent statement.
- * After that the first statement commits its update. and now the second
- * statement should also be able to see the changed values in a select.
- * @param firstStmt the statement to use for the update and commit.
- * @param secondStmt the statement that should be used to check if the commit works
- * @param ones the original string values.
- * @param onesUpdated the updated string values.
- * @param twos the numerical values.
- * @throws SQLException in case of a problem during any of the executed commands.
- */
- private void updateSelectCommitSelectTest(Statement firstStmt,
- Statement secondStmt, String[] ones, String[] onesUpdated,
- short[] twos) throws SQLException {
- firstStmt.getConnection().setAutoCommit(false);
- try {
- updateOnes(firstStmt, onesUpdated, twos);
- assertAllFromTbl1(secondStmt, ones, twos);
- firstStmt.getConnection().commit();
- assertAllFromTbl1(secondStmt, onesUpdated, twos);
- } finally {
- firstStmt.getConnection().setAutoCommit(true);
- }
- }
-
- /**
- * Tests if an update followed by a select works. After that a rollback will
- * be made and again a select should show that the rollback worked.
- * @param firstStmt the statement to use for the update and the rollback
- * @param secondStmt the statement to use for checking if the rollback worked as intended.
- * @param ones the original string values.
- * @param onesUpdated the updated string values.
- * @param twos the nomerical values.
- * @throws SQLException in case of a problem during any command.
- */
- private void updateSelectRollbackSelectTest(Statement firstStmt,
- Statement secondStmt, String[] ones, String[] onesUpdated,
- short[] twos) throws SQLException {
- firstStmt.getConnection().setAutoCommit(false);
- try {
- updateOnes(firstStmt, onesUpdated, twos);
- assertAllFromTbl1(secondStmt, ones, twos);
- firstStmt.getConnection().rollback();
- assertAllFromTbl1(secondStmt, ones, twos);
- } finally {
- firstStmt.getConnection().setAutoCommit(true);
- }
- }
-
- /**
- * updates the sring values. the original values are stored in 'ones'
- * and the updated values in 'ones_updated'
- * @param stmt the statement to use for the update.
- * @param onesUpdated the new string values.
- * @param twos the numerical values.
- * @throws SQLException in case of a problem during update.
- */
- private void updateOnes(Statement stmt, String[] onesUpdated, short[] twos)
- throws SQLException {
- for (int i = 0; i < onesUpdated.length; i++) {
- stmt.execute("UPDATE tbl1 SET one = '" + onesUpdated[i]
- + "' WHERE two = " + twos[i]);
- }
- }
-}
diff --git a/tests/CoreTests/android/core/ArrayListTest.java b/tests/CoreTests/android/core/ArrayListTest.java
deleted file mode 100644
index 763bf99..0000000
--- a/tests/CoreTests/android/core/ArrayListTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.util.ArrayList;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * This test case tests several often used functionality of ArrayLists.
- */
-public class ArrayListTest extends TestCase {
-
- @SuppressWarnings("unchecked")
- @SmallTest
- public void testArrayList() throws Exception {
- ArrayList array = new ArrayList();
- assertEquals(0, array.size());
- assertTrue(array.isEmpty());
-
- array.add(new Integer(0));
- array.add(0, new Integer(1));
- array.add(1, new Integer(2));
- array.add(new Integer(3));
- array.add(new Integer(1));
-
- assertEquals(5, array.size());
- assertFalse(array.isEmpty());
-
- assertEquals(1, ((Integer) array.get(0)).intValue());
- assertEquals(2, ((Integer) array.get(1)).intValue());
- assertEquals(0, ((Integer) array.get(2)).intValue());
- assertEquals(3, ((Integer) array.get(3)).intValue());
- assertEquals(1, ((Integer) array.get(4)).intValue());
-
- assertFalse(array.contains(null));
- assertTrue(array.contains(new Integer(2)));
- assertEquals(0, array.indexOf(new Integer(1)));
- assertEquals(4, array.lastIndexOf(new Integer(1)));
- assertTrue(array.indexOf(new Integer(5)) < 0);
- assertTrue(array.lastIndexOf(new Integer(5)) < 0);
-
-
- array.remove(1);
- array.remove(1);
-
- assertEquals(3, array.size());
- assertFalse(array.isEmpty());
- assertEquals(1, ((Integer) array.get(0)).intValue());
- assertEquals(3, ((Integer) array.get(1)).intValue());
- assertEquals(1, ((Integer) array.get(2)).intValue());
-
- assertFalse(array.contains(null));
- assertFalse(array.contains(new Integer(2)));
- assertEquals(0, array.indexOf(new Integer(1)));
- assertEquals(2, array.lastIndexOf(new Integer(1)));
- assertTrue(array.indexOf(new Integer(5)) < 0);
- assertTrue(array.lastIndexOf(new Integer(5)) < 0);
-
- array.clear();
-
- assertEquals(0, array.size());
- assertTrue(array.isEmpty());
- assertTrue(array.indexOf(new Integer(5)) < 0);
- assertTrue(array.lastIndexOf(new Integer(5)) < 0);
-
- ArrayList al = new ArrayList();
-
- assertFalse(al.remove(null));
- assertFalse(al.remove("string"));
-
- al.add("string");
- al.add(null);
-
- assertTrue(al.remove(null));
- assertTrue(al.remove("string"));
- }
-}
-
diff --git a/tests/CoreTests/android/core/AtParserTest.java b/tests/CoreTests/android/core/AtParserTest.java
deleted file mode 100644
index 09cb6e9..0000000
--- a/tests/CoreTests/android/core/AtParserTest.java
+++ /dev/null
@@ -1,348 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import android.bluetooth.AtCommandHandler;
-import android.bluetooth.AtCommandResult;
-import android.bluetooth.AtParser;
-
-import java.util.*;
-import junit.framework.*;
-
-public class AtParserTest extends TestCase {
-
- /* An AtCommandHandler instrumented for testing purposes
- */
- private class HandlerTest extends AtCommandHandler {
- boolean mBasicCalled, mActionCalled, mReadCalled, mTestCalled,
- mSetCalled;
- int mBasicReturn, mActionReturn, mReadReturn, mTestReturn, mSetReturn;
- Object[] mSetArgs;
- String mBasicArgs;
-
- HandlerTest() {
- this(AtCommandResult.ERROR, AtCommandResult.ERROR,
- AtCommandResult.ERROR, AtCommandResult.ERROR,
- AtCommandResult.ERROR);
- }
-
- HandlerTest(int a, int b, int c, int d, int e) {
- mBasicReturn = a;
- mActionReturn = b;
- mReadReturn = c;
- mSetReturn = d;
- mTestReturn = e;
- reset();
- }
- public void reset() {
- mBasicCalled = false;
- mActionCalled = false;
- mReadCalled = false;
- mSetCalled = false;
- mTestCalled = false;
- mSetArgs = null;
- mBasicArgs = null;
- }
- public boolean wasCalled() { // helper
- return mBasicCalled || mActionCalled || mReadCalled ||
- mTestCalled || mSetCalled;
- }
- @Override
- public AtCommandResult handleBasicCommand(String args) {
- mBasicCalled = true;
- mBasicArgs = args;
- return new AtCommandResult(mBasicReturn);
- }
- @Override
- public AtCommandResult handleActionCommand() {
- mActionCalled = true;
- return new AtCommandResult(mActionReturn);
- }
- @Override
- public AtCommandResult handleReadCommand() {
- mReadCalled = true;
- return new AtCommandResult(mReadReturn);
- }
- @Override
- public AtCommandResult handleSetCommand(Object[] args) {
- mSetCalled = true;
- mSetArgs = args;
- return new AtCommandResult(mSetReturn);
- }
- @Override
- public AtCommandResult handleTestCommand() {
- mTestCalled = true;
- return new AtCommandResult(mTestReturn);
- }
- }
-
- private AtParser mParser;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mParser = new AtParser();
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
- }
-
-
- /* Test that the right method is being called
- */
-/* public void testBasic1() throws Exception {
- HandlerTest D = new HandlerTest(0, 1, 1, 1, 1);
- HandlerTest A = new HandlerTest(0, 1, 1, 1, 1);
- mParser.register('D', D);
- mParser.register('A', A);
-
- assertTrue(Arrays.equals(
- new String[]{"OK"},
- mParser.process(" A T D = ? T 1 2 3 4 ").toStrings()));
- assertTrue(D.mBasicCalled);
- assertFalse(D.mActionCalled);
- assertFalse(D.mTestCalled);
- assertFalse(D.mSetCalled);
- assertFalse(D.mReadCalled);
- assertFalse(A.wasCalled());
- assertEquals("=?T1234", D.mBasicArgs);
- }
-*/
- /* Test some crazy strings
- *//*
- public void testBasic2() throws Exception {
- HandlerTest A = new HandlerTest(0, 1, 1, 1, 1);
- mParser.register('A', A);
-
- assertTrue(Arrays.equals(
- new String[]{},
- mParser.process(" ").toStrings()));
-
- assertTrue(Arrays.equals(
- new String[]{"OK"},
- mParser.process(" a T a t \"\" 1 2 3 a 4 ")
- .toStrings()));
- assertEquals("T\"\"123A4", A.mBasicArgs);
-
- assertTrue(Arrays.equals(
- new String[]{"OK"},
- mParser.process(" a T a t \"foo BaR12Z\" 1 2 3 a 4 ")
- .toStrings()));
- assertEquals("T\"foo BaR12Z\"123A4", A.mBasicArgs);
-
- assertTrue(Arrays.equals(
- new String[]{"OK"},
- mParser.process("ATA\"").toStrings()));
- assertEquals("\"\"", A.mBasicArgs);
-
- assertTrue(Arrays.equals(
- new String[]{"OK"},
- mParser.process("ATA\"a").toStrings()));
- assertEquals("\"a\"", A.mBasicArgs);
-
- assertTrue(Arrays.equals(
- new String[]{"OK"},
- mParser.process("ATa\" ").toStrings()));
- assertEquals("\" \"", A.mBasicArgs);
-
- assertTrue(Arrays.equals(
- new String[]{"OK"},
- mParser.process("ATA \"one \" two \"t hr ee ")
- .toStrings()));
- assertEquals("\"one \"TWO\"t hr ee \"", A.mBasicArgs);
- }*/
-
- /* Simple extended commands
- *//*
- public void testExt1() throws Exception {
- HandlerTest A = new HandlerTest(1, 0, 0, 0, 0);
- mParser.register("+A", A);
-
- assertTrue(Arrays.equals(
- new String[]{"ERROR"},
- mParser.process("AT+B").toStrings()));
- assertFalse(A.wasCalled());
-
- assertTrue(Arrays.equals(
- new String[]{"OK"},
- mParser.process("AT+A").toStrings()));
- assertTrue(A.mActionCalled);
- A.mActionCalled = false;
- assertFalse(A.wasCalled());
- A.reset();
-
- assertTrue(Arrays.equals(
- new String[]{"OK"},
- mParser.process("AT+A=").toStrings()));
- assertTrue(A.mSetCalled);
- A.mSetCalled = false;
- assertFalse(A.wasCalled());
- assertEquals(1, A.mSetArgs.length);
- A.reset();
-
- assertTrue(Arrays.equals(
- new String[]{"OK"},
- mParser.process("AT+A=?").toStrings()));
- assertTrue(A.mTestCalled);
- A.mTestCalled = false;
- assertFalse(A.wasCalled());
- A.reset();
-
- assertTrue(Arrays.equals(
- new String[]{"OK"},
- mParser.process("AT+A?").toStrings()));
- assertTrue(A.mReadCalled);
- A.mReadCalled = false;
- assertFalse(A.wasCalled());
- A.reset();
- }
-*/
-
-
- /* Test chained commands
- *//*
- public void testChain1() throws Exception {
- HandlerTest A = new HandlerTest(0, 1, 1, 1, 1);
- HandlerTest B = new HandlerTest(1, 0, 0, 0, 0);
- HandlerTest C = new HandlerTest(1, 1, 1, 1, 1);
- mParser.register('A', A);
- mParser.register("+B", B);
- mParser.register("+C", C);
-
- assertTrue(Arrays.equals(
- new String[]{"ERROR"},
- mParser.process("AT+B;+C").toStrings()));
- assertTrue(B.mActionCalled);
- assertTrue(C.mActionCalled);
- B.reset();
- C.reset();
-
- assertTrue(Arrays.equals(
- new String[]{"ERROR"},
- mParser.process("AT+C;+B").toStrings()));
- assertFalse(B.wasCalled());
- assertTrue(C.mActionCalled);
- B.reset();
- C.reset();
- }*/
-
- /* Test Set command
- *//*
- public void testSet1() throws Exception {
- HandlerTest A = new HandlerTest(1, 1, 1, 0, 1);
- mParser.register("+AAAA", A);
- Object[] expectedResult;
-
- assertTrue(Arrays.equals(
- new String[]{"OK"},
- mParser.process("AT+AAAA=1").toStrings()));
- expectedResult = new Object[]{(Integer)1};
- assertTrue(Arrays.equals(expectedResult, A.mSetArgs));
- A.reset();
-
- assertTrue(Arrays.equals(
- new String[]{"OK"},
- mParser.process("AT+AAAA=1,2,3").toStrings()));
- expectedResult = new Object[]{(Integer)1, (Integer)2, (Integer)3};
- assertTrue(Arrays.equals(expectedResult, A.mSetArgs));
- A.reset();
-
- assertTrue(Arrays.equals(
- new String[]{"OK"},
- mParser.process("AT+AAAA=3,0,0,1").toStrings()));
- expectedResult = new Object[]{(Integer)3, (Integer)0, (Integer)0,
- (Integer)1};
- assertTrue(Arrays.equals(expectedResult, A.mSetArgs));
- A.reset();
-
- assertTrue(Arrays.equals(
- new String[]{"OK"},
- mParser.process("AT+AAAA=\"foo\",1,\"b,ar").toStrings()));
- expectedResult = new Object[]{"\"foo\"", 1, "\"b,ar\""};
- assertTrue(Arrays.equals(expectedResult, A.mSetArgs));
- A.reset();
-
- assertTrue(Arrays.equals(
- new String[]{"OK"},
- mParser.process("AT+AAAA=").toStrings()));
- expectedResult = new Object[]{""};
- assertTrue(Arrays.equals(expectedResult, A.mSetArgs));
- A.reset();
-
- assertTrue(Arrays.equals(
- new String[]{"OK"},
- mParser.process("AT+AAAA=,").toStrings()));
- expectedResult = new Object[]{"", ""};
- assertTrue(Arrays.equals(expectedResult, A.mSetArgs));
- A.reset();
-
- assertTrue(Arrays.equals(
- new String[]{"OK"},
- mParser.process("AT+AAAA=,,,").toStrings()));
- expectedResult = new Object[]{"", "", "", ""};
- assertTrue(Arrays.equals(expectedResult, A.mSetArgs));
- A.reset();
-
- assertTrue(Arrays.equals(
- new String[]{"OK"},
- mParser.process("AT+AAAA=,1,,\"foo\",").toStrings()));
- expectedResult = new Object[]{"", 1, "", "\"foo\"", ""};
- assertEquals(5, A.mSetArgs.length);
- assertTrue(Arrays.equals(expectedResult, A.mSetArgs));
- A.reset();
- }*/
-
- /* Test repeat command "A/"
- *//*
- public void testRepeat() throws Exception {
- HandlerTest A = new HandlerTest(0, 0, 0, 0, 0);
- mParser.register('A', A);
-
- // Try repeated command on fresh parser
- assertTrue(Arrays.equals(
- new String[]{},
- mParser.process("A/").toStrings()));
- assertFalse(A.wasCalled());
- A.reset();
-
- assertTrue(Arrays.equals(
- new String[]{"OK"},
- mParser.process("ATA").toStrings()));
- assertTrue(A.mBasicCalled);
- assertEquals("", A.mBasicArgs);
- A.reset();
-
- // Now repeat the command
- assertTrue(Arrays.equals(
- new String[]{"OK"},
- mParser.process("A/").toStrings()));
- assertTrue(A.mBasicCalled);
- assertEquals("", A.mBasicArgs);
- A.reset();
-
- // Multiple repeats
- assertTrue(Arrays.equals(
- new String[]{"OK"},
- mParser.process("A/").toStrings()));
- assertTrue(A.mBasicCalled);
- assertEquals("", A.mBasicArgs);
- A.reset();
-
- }*/
-}
diff --git a/tests/CoreTests/android/core/BooleanTest.java b/tests/CoreTests/android/core/BooleanTest.java
deleted file mode 100644
index 211947e..0000000
--- a/tests/CoreTests/android/core/BooleanTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Tests some basic functionality of Booleans.
- */
-public class BooleanTest extends TestCase {
-
- @SmallTest
- public void testBoolean() throws Exception {
- Boolean a = new Boolean(true);
- Boolean b = new Boolean("True");
- Boolean c = new Boolean(false);
- Boolean d = new Boolean("Yes");
-
- assertEquals(a, b);
- assertEquals(c, d);
- assertTrue(a.booleanValue());
- assertFalse(c.booleanValue());
- assertEquals("true", a.toString());
- assertEquals("false", c.toString());
- assertEquals(Boolean.TRUE, a);
- assertEquals(Boolean.FALSE, c);
- assertSame(Boolean.valueOf(true), Boolean.TRUE);
- assertSame(Boolean.valueOf(false), Boolean.FALSE);
- }
-}
-
diff --git a/tests/CoreTests/android/core/BufferedInputStreamTest.java b/tests/CoreTests/android/core/BufferedInputStreamTest.java
deleted file mode 100644
index 1ad95a1..0000000
--- a/tests/CoreTests/android/core/BufferedInputStreamTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayInputStream;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Tests to verify that simple functionality works for BufferedInputStreams.
- */
-public class BufferedInputStreamTest extends TestCase {
-
- @SmallTest
- public void testBufferedInputStream() throws Exception {
- String str = "AbCdEfGhIjKlM\nOpQrStUvWxYz";
- ByteArrayInputStream aa = new ByteArrayInputStream(str.getBytes());
- ByteArrayInputStream ba = new ByteArrayInputStream(str.getBytes());
- ByteArrayInputStream ca = new ByteArrayInputStream(str.getBytes());
- ByteArrayInputStream da = new ByteArrayInputStream(str.getBytes());
- ByteArrayInputStream ea = new ByteArrayInputStream(str.getBytes());
-
- BufferedInputStream a = new BufferedInputStream(aa, 6);
- try {
- assertEquals(str, IOUtil.read(a));
- } finally {
- a.close();
- }
-
- BufferedInputStream b = new BufferedInputStream(ba, 7);
- try {
- assertEquals("AbCdEfGhIj", IOUtil.read(b, 10));
- } finally {
- b.close();
- }
-
- BufferedInputStream c = new BufferedInputStream(ca, 9);
- try {
- assertEquals("bdfhjl\nprtvxz", IOUtil.skipRead(c));
- } finally {
- c.close();
- }
-
- BufferedInputStream d = new BufferedInputStream(da, 9);
- try {
- assertEquals('A', d.read());
- d.mark(15);
- assertEquals('b', d.read());
- assertEquals('C', d.read());
- d.reset();
- assertEquals('b', d.read());
- } finally {
- d.close();
- }
-
- BufferedInputStream e = new BufferedInputStream(ea, 11);
- try {
- // test that we can ask for more than is present, and that we'll get
- // back only what is there.
- assertEquals(str, IOUtil.read(e, 10000));
- } finally {
- e.close();
- }
- }
-}
diff --git a/tests/CoreTests/android/core/BufferedOutputStreamTest.java b/tests/CoreTests/android/core/BufferedOutputStreamTest.java
deleted file mode 100644
index cd8ec08..0000000
--- a/tests/CoreTests/android/core/BufferedOutputStreamTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.BufferedOutputStream;
-import java.io.ByteArrayOutputStream;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Tests to verify that simple functionality works for BufferedOutputStreams.
- */
-public class BufferedOutputStreamTest extends TestCase {
-
- @SmallTest
- public void testBufferedOutputStream() throws Exception {
- String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
- ByteArrayOutputStream aa = new ByteArrayOutputStream();
- BufferedOutputStream a = new BufferedOutputStream(aa, 15);
- try {
- a.write(str.getBytes(), 0, 26);
- a.write('A');
-
- assertEquals(26, aa.size());
- assertEquals(aa.toString(), str);
-
- a.flush();
-
- assertEquals(27, aa.size());
- assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzA", aa.toString());
- } finally {
- a.close();
- }
- }
-}
diff --git a/tests/CoreTests/android/core/BufferedReaderTest.java b/tests/CoreTests/android/core/BufferedReaderTest.java
deleted file mode 100644
index a94ca02..0000000
--- a/tests/CoreTests/android/core/BufferedReaderTest.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.BufferedReader;
-import java.io.StringReader;
-import android.test.suitebuilder.annotation.MediumTest;
-
-/**
- * Tests to verify that simple functionality works for BufferedReaders.
- */
-public class BufferedReaderTest extends TestCase {
-
- @MediumTest
- public void testBufferedReader() throws Exception {
- String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
- StringReader aa = new StringReader(str);
- StringReader ba = new StringReader(str);
- StringReader ca = new StringReader(str);
- StringReader da = new StringReader(str);
-
- BufferedReader a = new BufferedReader(aa, 5);
- try {
- assertEquals(str, IOUtil.read(a));
- } finally {
- a.close();
- }
-
- BufferedReader b = new BufferedReader(ba, 15);
- try {
- assertEquals("AbCdEfGhIj", IOUtil.read(b, 10));
- } finally {
- b.close();
- }
-
- BufferedReader c = new BufferedReader(ca);
- try {
- assertEquals("bdfhjlnprtvxz", IOUtil.skipRead(c));
- } finally {
- c.close();
- }
-
- BufferedReader d = new BufferedReader(da);
- try {
- assertEquals("AbCdEfGdEfGhIjKlMnOpQrStUvWxYz", IOUtil.markRead(d, 3, 4));
- } finally {
- d.close();
- }
- }
-}
diff --git a/tests/CoreTests/android/core/BufferedWriterTest.java b/tests/CoreTests/android/core/BufferedWriterTest.java
deleted file mode 100644
index 12dfcef..0000000
--- a/tests/CoreTests/android/core/BufferedWriterTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.BufferedWriter;
-import java.io.StringWriter;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Some basic tests for BufferedWriter.
- */
-public class BufferedWriterTest extends TestCase {
-
- @SmallTest
- public void testBufferedWriter() throws Exception {
- String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
- StringWriter aa = new StringWriter();
-
- BufferedWriter a = new BufferedWriter(aa, 20);
- try {
- a.write(str.toCharArray(), 0, 26);
- a.write('X');
- a.flush();
- assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzX", aa.toString());
-
- a.write("alphabravodelta", 5, 5);
- a.flush();
- assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzXbravo", aa.toString());
- a.newLine();
- a.write("I'm on a new line.");
- a.flush();
- assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzXbravo\nI\'m on a new line.", aa.toString());
- } finally {
- a.close();
- }
- }
-}
diff --git a/tests/CoreTests/android/core/ByteArrayInputStreamTest.java b/tests/CoreTests/android/core/ByteArrayInputStreamTest.java
deleted file mode 100644
index d964102..0000000
--- a/tests/CoreTests/android/core/ByteArrayInputStreamTest.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.ByteArrayInputStream;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Tests to verify that simple functionality works for ByteArrayInputStreams.
- */
-public class ByteArrayInputStreamTest extends TestCase {
-
- @SmallTest
- public void testByteArrayInputStream() throws Exception {
- String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
-
- ByteArrayInputStream a = new ByteArrayInputStream(str.getBytes());
- ByteArrayInputStream b = new ByteArrayInputStream(str.getBytes());
- ByteArrayInputStream c = new ByteArrayInputStream(str.getBytes());
- ByteArrayInputStream d = new ByteArrayInputStream(str.getBytes());
-
- assertEquals(str, IOUtil.read(a));
- assertEquals("AbCdEfGhIj", IOUtil.read(b, 10));
- assertEquals("bdfhjlnprtvxz", IOUtil.skipRead(c));
- assertEquals("AbCdEfGdEfGhIjKlMnOpQrStUvWxYz", IOUtil.markRead(d, 3, 4));
- }
-}
diff --git a/tests/CoreTests/android/core/ByteArrayOutputStreamTest.java b/tests/CoreTests/android/core/ByteArrayOutputStreamTest.java
deleted file mode 100644
index e605214..0000000
--- a/tests/CoreTests/android/core/ByteArrayOutputStreamTest.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.ByteArrayOutputStream;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * A basic test for ByteArrayOutputStraem.
- */
-public class ByteArrayOutputStreamTest extends TestCase {
-
- @SmallTest
- public void testByteArrayOutputStream() throws Exception {
- String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
- ByteArrayOutputStream a = new ByteArrayOutputStream();
- ByteArrayOutputStream b = new ByteArrayOutputStream(10);
-
- a.write(str.getBytes(), 0, 26);
- a.write('X');
- a.writeTo(b);
-
- assertEquals(27, a.size());
- assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzX", a.toString());
- assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzX", b.toString());
- }
-}
diff --git a/tests/CoreTests/android/core/CharArrayReaderTest.java b/tests/CoreTests/android/core/CharArrayReaderTest.java
deleted file mode 100644
index 50a217a..0000000
--- a/tests/CoreTests/android/core/CharArrayReaderTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.CharArrayReader;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Basic tests for CharArrayReader.
- */
-public class CharArrayReaderTest extends TestCase {
-
- @SmallTest
- public void testCharArrayReader() throws Exception {
- String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
- CharArrayReader a = new CharArrayReader(str.toCharArray());
- CharArrayReader b = new CharArrayReader(str.toCharArray());
- CharArrayReader c = new CharArrayReader(str.toCharArray());
- CharArrayReader d = new CharArrayReader(str.toCharArray());
-
- assertEquals(str, IOUtil.read(a));
- assertEquals("AbCdEfGhIj", IOUtil.read(b, 10));
- assertEquals("bdfhjlnprtvxz", IOUtil.skipRead(c));
- assertEquals("AbCdEfGdEfGhIjKlMnOpQrStUvWxYz", IOUtil.markRead(d, 3, 4));
- }
-}
diff --git a/tests/CoreTests/android/core/CharArrayWriterTest.java b/tests/CoreTests/android/core/CharArrayWriterTest.java
deleted file mode 100644
index 0aae1e4..0000000
--- a/tests/CoreTests/android/core/CharArrayWriterTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.CharArrayWriter;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Basic tests for CharArrayWriter.
- */
-public class CharArrayWriterTest extends TestCase {
-
- @SmallTest
- public void testCharArrayWriter() throws Exception {
- String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
- CharArrayWriter a = new CharArrayWriter();
- CharArrayWriter b = new CharArrayWriter();
-
- a.write(str, 0, 26);
- a.write('X');
- a.writeTo(b);
-
- assertEquals(27, a.size());
- assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzX", a.toString());
-
- b.write("alphabravodelta", 5, 5);
- b.append('X');
- assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzXbravoX", b.toString());
- b.append("omega");
- assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzXbravoXomega", b.toString());
- }
-}
diff --git a/tests/CoreTests/android/core/ChecksumTest.java b/tests/CoreTests/android/core/ChecksumTest.java
deleted file mode 100644
index 24fb739..0000000
--- a/tests/CoreTests/android/core/ChecksumTest.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.util.zip.Adler32;
-import java.util.zip.CRC32;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * tests for CRC32 and Adler32 checksum algorithms.
- */
-public class ChecksumTest extends TestCase {
-
- @SmallTest
- public void testChecksum() throws Exception {
- /*
- * Values computed experimentally, using C interfaces.
- */
- adler32Test(mTestString, 0x9de210dbL);
- cRC32Test(mTestString, 0x939f04afL);
-
- // Test for issue 1016037
- wrongChecksumWithAdler32Test();
- }
-
- private void adler32Test(byte[] values, long expected) {
- Adler32 adler = new Adler32();
-
- // try it all at once
- adler.update(values);
- assertEquals(adler.getValue(), expected);
-
- // try resetting and computing one byte at a time
- adler.reset();
- for (int i = 0; i < values.length; i++) {
- adler.update(values[i]);
- }
- assertEquals(adler.getValue(), expected);
- }
-
- private void cRC32Test(byte[] values, long expected) {
- CRC32 crc = new CRC32();
-
- // try it all at once
- crc.update(values);
- assertEquals(crc.getValue(), expected);
-
- // try resetting and computing one byte at a time
- crc.reset();
- for (int i = 0; i < values.length; i++) {
- crc.update(values[i]);
- }
- assertEquals(crc.getValue(), expected);
- }
-
- // "The quick brown fox jumped over the lazy dogs\n"
- private static byte[] mTestString = {
- 0x54, 0x68, 0x65, 0x20, 0x71, 0x75, 0x69, 0x63,
- 0x6b, 0x20, 0x62, 0x72, 0x6f, 0x77, 0x6e, 0x20,
- 0x66, 0x6f, 0x78, 0x20, 0x6a, 0x75, 0x6d, 0x70,
- 0x65, 0x64, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x20,
- 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x7a, 0x79,
- 0x20, 0x64, 0x6f, 0x67, 0x73, 0x2e, 0x0a
- };
-
-
- // Test for issue 1016037
- private void wrongChecksumWithAdler32Test() {
- byte[] bytes = {1, 0, 5, 0, 15, 0, 1, 11, 0, 1};
- Adler32 adler = new Adler32();
- adler.update(bytes);
- long arrayChecksum = adler.getValue();
- adler.reset();
- for (int i = 0; i < bytes.length; i++) {
- adler.update(bytes[i]);
- }
- assertEquals("Checksums not equal: expected: " + arrayChecksum +
- " actual: " + adler.getValue(), arrayChecksum, adler.getValue());
- }
-}
-
diff --git a/tests/CoreTests/android/core/ClassLoaderTest.java b/tests/CoreTests/android/core/ClassLoaderTest.java
deleted file mode 100644
index 5e7f5a4..0000000
--- a/tests/CoreTests/android/core/ClassLoaderTest.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import android.test.suitebuilder.annotation.Suppress;
-
-/**
- * Test for basic ClassLoader functionality.
- */
-@Suppress
-public class ClassLoaderTest extends TestCase {
- /*
- package my.pkg;
- public class CLTest {
- public CLTest() {}
-
- public String test() { return "This is test 1"; }
- }
- */
- static private byte[] test1class = {
- (byte) 0xca, (byte) 0xfe, (byte) 0xba, (byte) 0xbe,
- (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x31,
- (byte) 0x00, (byte) 0x11, (byte) 0x0a, (byte) 0x00,
- (byte) 0x04, (byte) 0x00, (byte) 0x0d, (byte) 0x08,
- (byte) 0x00, (byte) 0x0e, (byte) 0x07, (byte) 0x00,
- (byte) 0x0f, (byte) 0x07, (byte) 0x00, (byte) 0x10,
- (byte) 0x01, (byte) 0x00, (byte) 0x06, (byte) 0x3c,
- (byte) 0x69, (byte) 0x6e, (byte) 0x69, (byte) 0x74,
- (byte) 0x3e, (byte) 0x01, (byte) 0x00, (byte) 0x03,
- (byte) 0x28, (byte) 0x29, (byte) 0x56, (byte) 0x01,
- (byte) 0x00, (byte) 0x04, (byte) 0x43, (byte) 0x6f,
- (byte) 0x64, (byte) 0x65, (byte) 0x01, (byte) 0x00,
- (byte) 0x0f, (byte) 0x4c, (byte) 0x69, (byte) 0x6e,
- (byte) 0x65, (byte) 0x4e, (byte) 0x75, (byte) 0x6d,
- (byte) 0x62, (byte) 0x65, (byte) 0x72, (byte) 0x54,
- (byte) 0x61, (byte) 0x62, (byte) 0x6c, (byte) 0x65,
- (byte) 0x01, (byte) 0x00, (byte) 0x04, (byte) 0x74,
- (byte) 0x65, (byte) 0x73, (byte) 0x74, (byte) 0x01,
- (byte) 0x00, (byte) 0x14, (byte) 0x28, (byte) 0x29,
- (byte) 0x4c, (byte) 0x6a, (byte) 0x61, (byte) 0x76,
- (byte) 0x61, (byte) 0x2f, (byte) 0x6c, (byte) 0x61,
- (byte) 0x6e, (byte) 0x67, (byte) 0x2f, (byte) 0x53,
- (byte) 0x74, (byte) 0x72, (byte) 0x69, (byte) 0x6e,
- (byte) 0x67, (byte) 0x3b, (byte) 0x01, (byte) 0x00,
- (byte) 0x0a, (byte) 0x53, (byte) 0x6f, (byte) 0x75,
- (byte) 0x72, (byte) 0x63, (byte) 0x65, (byte) 0x46,
- (byte) 0x69, (byte) 0x6c, (byte) 0x65, (byte) 0x01,
- (byte) 0x00, (byte) 0x0b, (byte) 0x43, (byte) 0x4c,
- (byte) 0x54, (byte) 0x65, (byte) 0x73, (byte) 0x74,
- (byte) 0x2e, (byte) 0x6a, (byte) 0x61, (byte) 0x76,
- (byte) 0x61, (byte) 0x0c, (byte) 0x00, (byte) 0x05,
- (byte) 0x00, (byte) 0x06, (byte) 0x01, (byte) 0x00,
- (byte) 0x0e, (byte) 0x54, (byte) 0x68, (byte) 0x69,
- (byte) 0x73, (byte) 0x20, (byte) 0x69, (byte) 0x73,
- (byte) 0x20, (byte) 0x74, (byte) 0x65, (byte) 0x73,
- (byte) 0x74, (byte) 0x20, (byte) 0x31, (byte) 0x01,
- (byte) 0x00, (byte) 0x0d, (byte) 0x6d, (byte) 0x79,
- (byte) 0x2f, (byte) 0x70, (byte) 0x6b, (byte) 0x67,
- (byte) 0x2f, (byte) 0x43, (byte) 0x4c, (byte) 0x54,
- (byte) 0x65, (byte) 0x73, (byte) 0x74, (byte) 0x01,
- (byte) 0x00, (byte) 0x10, (byte) 0x6a, (byte) 0x61,
- (byte) 0x76, (byte) 0x61, (byte) 0x2f, (byte) 0x6c,
- (byte) 0x61, (byte) 0x6e, (byte) 0x67, (byte) 0x2f,
- (byte) 0x4f, (byte) 0x62, (byte) 0x6a, (byte) 0x65,
- (byte) 0x63, (byte) 0x74, (byte) 0x00, (byte) 0x21,
- (byte) 0x00, (byte) 0x03, (byte) 0x00, (byte) 0x04,
- (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
- (byte) 0x00, (byte) 0x02, (byte) 0x00, (byte) 0x01,
- (byte) 0x00, (byte) 0x05, (byte) 0x00, (byte) 0x06,
- (byte) 0x00, (byte) 0x01, (byte) 0x00, (byte) 0x07,
- (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x1d,
- (byte) 0x00, (byte) 0x01, (byte) 0x00, (byte) 0x01,
- (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x05,
- (byte) 0x2a, (byte) 0xb7, (byte) 0x00, (byte) 0x01,
- (byte) 0xb1, (byte) 0x00, (byte) 0x00, (byte) 0x00,
- (byte) 0x01, (byte) 0x00, (byte) 0x08, (byte) 0x00,
- (byte) 0x00, (byte) 0x00, (byte) 0x06, (byte) 0x00,
- (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00,
- (byte) 0x04, (byte) 0x00, (byte) 0x01, (byte) 0x00,
- (byte) 0x09, (byte) 0x00, (byte) 0x0a, (byte) 0x00,
- (byte) 0x01, (byte) 0x00, (byte) 0x07, (byte) 0x00,
- (byte) 0x00, (byte) 0x00, (byte) 0x1b, (byte) 0x00,
- (byte) 0x01, (byte) 0x00, (byte) 0x01, (byte) 0x00,
- (byte) 0x00, (byte) 0x00, (byte) 0x03, (byte) 0x12,
- (byte) 0x02, (byte) 0xb0, (byte) 0x00, (byte) 0x00,
- (byte) 0x00, (byte) 0x01, (byte) 0x00, (byte) 0x08,
- (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x06,
- (byte) 0x00, (byte) 0x01, (byte) 0x00, (byte) 0x00,
- (byte) 0x00, (byte) 0x06, (byte) 0x00, (byte) 0x01,
- (byte) 0x00, (byte) 0x0b, (byte) 0x00, (byte) 0x00,
- (byte) 0x00, (byte) 0x02, (byte) 0x00, (byte) 0x0c
- };
-
- /*
- package my.pkg;
- public class CLTest {
- public CLTest() {}
-
- public String test() { return "This is test 2"; }
- }
- */
- static private byte[] test2class = {
- (byte) 0xca, (byte) 0xfe, (byte) 0xba, (byte) 0xbe,
- (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x31,
- (byte) 0x00, (byte) 0x11, (byte) 0x0a, (byte) 0x00,
- (byte) 0x04, (byte) 0x00, (byte) 0x0d, (byte) 0x08,
- (byte) 0x00, (byte) 0x0e, (byte) 0x07, (byte) 0x00,
- (byte) 0x0f, (byte) 0x07, (byte) 0x00, (byte) 0x10,
- (byte) 0x01, (byte) 0x00, (byte) 0x06, (byte) 0x3c,
- (byte) 0x69, (byte) 0x6e, (byte) 0x69, (byte) 0x74,
- (byte) 0x3e, (byte) 0x01, (byte) 0x00, (byte) 0x03,
- (byte) 0x28, (byte) 0x29, (byte) 0x56, (byte) 0x01,
- (byte) 0x00, (byte) 0x04, (byte) 0x43, (byte) 0x6f,
- (byte) 0x64, (byte) 0x65, (byte) 0x01, (byte) 0x00,
- (byte) 0x0f, (byte) 0x4c, (byte) 0x69, (byte) 0x6e,
- (byte) 0x65, (byte) 0x4e, (byte) 0x75, (byte) 0x6d,
- (byte) 0x62, (byte) 0x65, (byte) 0x72, (byte) 0x54,
- (byte) 0x61, (byte) 0x62, (byte) 0x6c, (byte) 0x65,
- (byte) 0x01, (byte) 0x00, (byte) 0x04, (byte) 0x74,
- (byte) 0x65, (byte) 0x73, (byte) 0x74, (byte) 0x01,
- (byte) 0x00, (byte) 0x14, (byte) 0x28, (byte) 0x29,
- (byte) 0x4c, (byte) 0x6a, (byte) 0x61, (byte) 0x76,
- (byte) 0x61, (byte) 0x2f, (byte) 0x6c, (byte) 0x61,
- (byte) 0x6e, (byte) 0x67, (byte) 0x2f, (byte) 0x53,
- (byte) 0x74, (byte) 0x72, (byte) 0x69, (byte) 0x6e,
- (byte) 0x67, (byte) 0x3b, (byte) 0x01, (byte) 0x00,
- (byte) 0x0a, (byte) 0x53, (byte) 0x6f, (byte) 0x75,
- (byte) 0x72, (byte) 0x63, (byte) 0x65, (byte) 0x46,
- (byte) 0x69, (byte) 0x6c, (byte) 0x65, (byte) 0x01,
- (byte) 0x00, (byte) 0x0b, (byte) 0x43, (byte) 0x4c,
- (byte) 0x54, (byte) 0x65, (byte) 0x73, (byte) 0x74,
- (byte) 0x2e, (byte) 0x6a, (byte) 0x61, (byte) 0x76,
- (byte) 0x61, (byte) 0x0c, (byte) 0x00, (byte) 0x05,
- (byte) 0x00, (byte) 0x06, (byte) 0x01, (byte) 0x00,
- (byte) 0x0e, (byte) 0x54, (byte) 0x68, (byte) 0x69,
- (byte) 0x73, (byte) 0x20, (byte) 0x69, (byte) 0x73,
- (byte) 0x20, (byte) 0x74, (byte) 0x65, (byte) 0x73,
- (byte) 0x74, (byte) 0x20, (byte) 0x32, (byte) 0x01,
- (byte) 0x00, (byte) 0x0d, (byte) 0x6d, (byte) 0x79,
- (byte) 0x2f, (byte) 0x70, (byte) 0x6b, (byte) 0x67,
- (byte) 0x2f, (byte) 0x43, (byte) 0x4c, (byte) 0x54,
- (byte) 0x65, (byte) 0x73, (byte) 0x74, (byte) 0x01,
- (byte) 0x00, (byte) 0x10, (byte) 0x6a, (byte) 0x61,
- (byte) 0x76, (byte) 0x61, (byte) 0x2f, (byte) 0x6c,
- (byte) 0x61, (byte) 0x6e, (byte) 0x67, (byte) 0x2f,
- (byte) 0x4f, (byte) 0x62, (byte) 0x6a, (byte) 0x65,
- (byte) 0x63, (byte) 0x74, (byte) 0x00, (byte) 0x21,
- (byte) 0x00, (byte) 0x03, (byte) 0x00, (byte) 0x04,
- (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
- (byte) 0x00, (byte) 0x02, (byte) 0x00, (byte) 0x01,
- (byte) 0x00, (byte) 0x05, (byte) 0x00, (byte) 0x06,
- (byte) 0x00, (byte) 0x01, (byte) 0x00, (byte) 0x07,
- (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x1d,
- (byte) 0x00, (byte) 0x01, (byte) 0x00, (byte) 0x01,
- (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x05,
- (byte) 0x2a, (byte) 0xb7, (byte) 0x00, (byte) 0x01,
- (byte) 0xb1, (byte) 0x00, (byte) 0x00, (byte) 0x00,
- (byte) 0x01, (byte) 0x00, (byte) 0x08, (byte) 0x00,
- (byte) 0x00, (byte) 0x00, (byte) 0x06, (byte) 0x00,
- (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00,
- (byte) 0x04, (byte) 0x00, (byte) 0x01, (byte) 0x00,
- (byte) 0x09, (byte) 0x00, (byte) 0x0a, (byte) 0x00,
- (byte) 0x01, (byte) 0x00, (byte) 0x07, (byte) 0x00,
- (byte) 0x00, (byte) 0x00, (byte) 0x1b, (byte) 0x00,
- (byte) 0x01, (byte) 0x00, (byte) 0x01, (byte) 0x00,
- (byte) 0x00, (byte) 0x00, (byte) 0x03, (byte) 0x12,
- (byte) 0x02, (byte) 0xb0, (byte) 0x00, (byte) 0x00,
- (byte) 0x00, (byte) 0x01, (byte) 0x00, (byte) 0x08,
- (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x06,
- (byte) 0x00, (byte) 0x01, (byte) 0x00, (byte) 0x00,
- (byte) 0x00, (byte) 0x06, (byte) 0x00, (byte) 0x01,
- (byte) 0x00, (byte) 0x0b, (byte) 0x00, (byte) 0x00,
- (byte) 0x00, (byte) 0x02, (byte) 0x00, (byte) 0x0c
- };
-
- /*
- * Custom class loader.
- */
- private class MyLoader extends ClassLoader {
- public MyLoader(byte[] data) {
- super();
- mData = data;
- }
-
- protected Class<?> findClass(String name) throws ClassNotFoundException {
- assertEquals("my.pkg.CLTest", name);
- return defineClass(name, mData, 0, mData.length);
- }
-
- byte[] mData;
- }
-
-
- /*
- * Simple test: manually load two class files that have the same class
- * name but different contents.
- */
- public void testClassLoader() throws Exception {
- Class test1, test2;
- MyLoader loader1 = new MyLoader(test1class);
- MyLoader loader2 = new MyLoader(test2class);
-
- test1 = loader1.loadClass("my.pkg.CLTest");
- test2 = loader2.loadClass("my.pkg.CLTest");
-
- methodTest(test1, "This is test 1");
- methodTest(test2, "This is test 2");
- }
-
- /*
- * Invoke the test() method and verify that the string returned
- * matches what we expect.
- */
- private static void methodTest(Class clazz, String expect)
- throws NoSuchMethodException, InstantiationException,
- IllegalAccessException, InvocationTargetException {
- Method meth = clazz.getMethod("test", (Class[]) null);
- Object obj = clazz.newInstance();
- Object result = meth.invoke(obj, (Object[]) null);
-
- assertEquals(result, expect);
- }
-}
-
diff --git a/tests/CoreTests/android/core/ClassTest.java b/tests/CoreTests/android/core/ClassTest.java
deleted file mode 100644
index cc1b4ca..0000000
--- a/tests/CoreTests/android/core/ClassTest.java
+++ /dev/null
@@ -1,337 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.widget.Button;
-import junit.framework.TestCase;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.util.HashSet;
-import java.util.Set;
-
-
-class ClassWithPrivateConstructor {
- private ClassWithPrivateConstructor() {
- }
-}
-
-public class ClassTest extends TestCase {
-
- @SmallTest
- public void testClass() throws Exception {
- // Now, never mind the fact that most of this stuff has to work
- // for the test harness to get this far....
-
- //System.out.println("Class.forName()");
- Class helloClass = Class.forName(ClassTest.class.getName());
-
- //System.out.println("Class.newInstance()");
- Object instance = helloClass.newInstance();
- assertNotNull(instance);
-
- //System.out.println("Class.forName() nonexisting class");
- try {
- Class.forName("this.class.DoesNotExist");
- fail("unexpected success");
- } catch (ClassNotFoundException ex) {
- // expected
- }
-
- //System.out.println("Class.newInstance() private constructor");
- try {
- Class.forName("android.core.ClassWithPrivateConstructor").newInstance();
- fail("unexpected success");
- } catch (IllegalAccessException ex) {
- // this is expected
- }
-
- //System.out.println("Class.getDeclaredMethod()");
-
- Method method = helloClass.getDeclaredMethod("method", (Class[]) null);
-
- method.invoke(new ClassTest(), (Object[]) null);
-
- //System.out.println("Class.getDeclaredMethod() w/ args");
-
- method = helloClass.getDeclaredMethod("methodWithArgs", Object.class);
-
- Object invokeArgs[] = new Object[1];
- invokeArgs[0] = "Hello";
- Object ret = method.invoke(new ClassTest(), invokeArgs);
- assertEquals(ret, invokeArgs[0]);
-
- //System.out.println("Class.getDeclaredMethod() -- private");
-
- method = helloClass.getDeclaredMethod("privateMethod", (Class[]) null);
-
- method.invoke(new ClassTest(), (Object[]) null);
- //fail("unexpected success");
- // TODO: I think this actually *should* succeed, because the
- // call to the private method is being made from the same class.
- // This needs to be replaced with a private call to a different
- // class.
-
- //System.out.println("Class.getSuperclass");
- Class objectClass = Class.forName("java.lang.Object");
- assertEquals(helloClass.getSuperclass().getSuperclass().getSuperclass(), objectClass);
-
- //System.out.println("Class.isAssignableFrom");
- assertTrue(objectClass.isAssignableFrom(helloClass));
- assertFalse(helloClass.isAssignableFrom(objectClass));
-
- //System.out.println("Class.getConstructor");
-
- Constructor constructor = helloClass.getConstructor((Class[]) null);
- assertNotNull(constructor);
-
- //System.out.println("Class.getModifiers");
-
- assertTrue(Modifier.isPublic(helloClass.getModifiers()));
- //System.out.println("Modifiers: " + Modifier.toString(helloClass.getModifiers()));
-
- //System.out.println("Class.getMethod");
-
- helloClass.getMethod("method", (Class[]) null);
-
- try {
- Class[] argTypes = new Class[1];
- argTypes[0] = helloClass;
- helloClass.getMethod("method", argTypes);
- fail("unexpected success");
- } catch (NoSuchMethodException ex) {
- // exception expected
- }
-
- // Test for public tracker issue 14
- SimpleClass obj = new SimpleClass();
- Field field = obj.getClass().getDeclaredField("str");
- field.set(obj, null);
- }
-
- public class SimpleClass {
- public String str;
- }
-
- public Object methodWithArgs(Object o) {
- return o;
- }
-
- boolean methodInvoked;
-
- public void method() {
- methodInvoked = true;
- }
-
- boolean privateMethodInvoked;
-
- public void privateMethod() {
- privateMethodInvoked = true;
- }
-
- // Regression for 1018067: Class.getMethods() returns the same method over
- // and over again from all base classes
- @MediumTest
- public void testClassGetMethodsNoDupes() {
- Method[] methods = Button.class.getMethods();
- Set<String> set = new HashSet<String>();
-
- for (int i = 0; i < methods.length; i++) {
- String signature = methods[i].toString();
-
- int par = signature.indexOf('(');
- int dot = signature.lastIndexOf('.', par);
-
- signature = signature.substring(dot + 1);
-
- assertFalse("Duplicate " + signature, set.contains(signature));
- set.add(signature);
- }
- }
-
- interface MyInterface {
- void foo();
- }
-
- interface MyOtherInterface extends MyInterface {
- void bar();
- }
-
- abstract class MyClass implements MyOtherInterface {
- public void gabba() {
- }
-
- public void hey() {
- }
- }
-
- // Check if we also reflect methods from interfaces
- @SmallTest
- public void testGetMethodsInterfaces() {
- Method[] methods = MyInterface.class.getMethods();
- assertTrue("Interface method must be there", hasMethod(methods, ".foo("));
-
- methods = MyOtherInterface.class.getMethods();
- assertTrue("Interface method must be there", hasMethod(methods, ".foo("));
- assertTrue("Interface method must be there", hasMethod(methods, ".bar("));
-
- methods = MyClass.class.getMethods();
- assertTrue("Interface method must be there", hasMethod(methods, ".foo("));
- assertTrue("Interface method must be there", hasMethod(methods, ".bar("));
-
- assertTrue("Declared method must be there", hasMethod(methods, ".gabba("));
- assertTrue("Declared method must be there", hasMethod(methods, ".hey("));
-
- assertTrue("Inherited method must be there", hasMethod(methods, ".toString("));
- }
-
- private boolean hasMethod(Method[] methods, String signature) {
- for (int i = 0; i < methods.length; i++) {
- if (methods[i].toString().contains(signature)) {
- return true;
- }
- }
-
- return false;
- }
-
- // Test for Class.getPackage();
- @SmallTest
- public void testClassGetPackage() {
- assertNotNull("Package must be non-null", getClass().getPackage());
- assertEquals("Package must have expected name", "android.core", getClass().getPackage().getName());
- assertEquals("Package must have expected title", "Unknown", getClass().getPackage().getSpecificationTitle());
-
- Package p = java.lang.Object.class.getPackage();
- assertNotNull("Package must be non-null", p);
- assertEquals("Package must have expected name", "java.lang", p.getName());
- assertSame("Package object must be same for each call", p, java.lang.Object.class.getPackage());
- }
-
- // Regression test for #1123708: Problem with getCanonicalName(),
- // getSimpleName(), and getPackage().
- //
- // A couple of interesting cases need to be checked: Top-level classes,
- // member classes, local classes, and anonymous classes. Also, boundary
- // cases with '$' in the class names are checked, since the '$' is used
- // as the separator between outer and inner class, so this might lead
- // to problems (it did in the previous implementation).
- //
- // Caution: Adding local or anonymous classes elsewhere in this
- // file might affect the test.
- private class MemberClass {
- // This space intentionally left blank.
- }
-
- private class Mi$o$oup {
- // This space intentionally left blank.
- }
-
- @SmallTest
- public void testVariousClassNames() {
- Class<?> clazz = this.getClass();
- String pkg = (clazz.getPackage() == null ? "" : clazz.getPackage().getName() + ".");
-
- // Simple, top-level class
-
- assertEquals("Top-level class name must be correct", pkg + "ClassTest", clazz.getName());
- assertEquals("Top-level class simple name must be correct", "ClassTest", clazz.getSimpleName());
- assertEquals("Top-level class canonical name must be correct", pkg + "ClassTest", clazz.getCanonicalName());
-
- clazz = MemberClass.class;
-
- assertEquals("Member class name must be correct", pkg + "ClassTest$MemberClass", clazz.getName());
- assertEquals("Member class simple name must be correct", "MemberClass", clazz.getSimpleName());
- assertEquals("Member class canonical name must be correct", pkg + "ClassTest.MemberClass", clazz.getCanonicalName());
-
- class LocalClass {
- // This space intentionally left blank.
- }
-
- clazz = LocalClass.class;
-
- assertEquals("Local class name must be correct", pkg + "ClassTest$1LocalClass", clazz.getName());
- assertEquals("Local class simple name must be correct", "LocalClass", clazz.getSimpleName());
- assertNull("Local class canonical name must be null", clazz.getCanonicalName());
-
- clazz = new Object() { }.getClass();
-
- assertEquals("Anonymous class name must be correct", pkg + "ClassTest$1", clazz.getName());
- assertEquals("Anonymous class simple name must be empty", "", clazz.getSimpleName());
- assertNull("Anonymous class canonical name must be null", clazz.getCanonicalName());
-
- // Weird special cases with dollar in name.
-
- clazz = Mou$$aka.class;
-
- assertEquals("Top-level class name must be correct", pkg + "Mou$$aka", clazz.getName());
- assertEquals("Top-level class simple name must be correct", "Mou$$aka", clazz.getSimpleName());
- assertEquals("Top-level class canonical name must be correct", pkg + "Mou$$aka", clazz.getCanonicalName());
-
- clazz = Mi$o$oup.class;
-
- assertEquals("Member class name must be correct", pkg + "ClassTest$Mi$o$oup", clazz.getName());
- assertEquals("Member class simple name must be correct", "Mi$o$oup", clazz.getSimpleName());
- assertEquals("Member class canonical name must be correct", pkg + "ClassTest.Mi$o$oup", clazz.getCanonicalName());
-
- class Ma$hedPotatoe$ {
- // This space intentionally left blank.
- }
-
- clazz = Ma$hedPotatoe$.class;
-
- assertEquals("Member class name must be correct", pkg + "ClassTest$1Ma$hedPotatoe$", clazz.getName());
- assertEquals("Member class simple name must be correct", "Ma$hedPotatoe$", clazz.getSimpleName());
- assertNull("Member class canonical name must be null", clazz.getCanonicalName());
- }
-
- @SmallTest
- public void testLocalMemberClass() {
- Class<?> clazz = this.getClass();
-
- assertFalse("Class must not be member", clazz.isMemberClass());
- assertFalse("Class must not be local", clazz.isLocalClass());
-
- clazz = MemberClass.class;
-
- assertTrue("Class must be member", clazz.isMemberClass());
- assertFalse("Class must not be local", clazz.isLocalClass());
-
- class OtherLocalClass {
- // This space intentionally left blank.
- }
-
- clazz = OtherLocalClass.class;
-
- assertFalse("Class must not be member", clazz.isMemberClass());
- assertTrue("Class must be local", clazz.isLocalClass());
-
- clazz = new Object() { }.getClass();
-
- assertFalse("Class must not be member", clazz.isMemberClass());
- assertFalse("Class must not be local", clazz.isLocalClass());
- }
-
-}
-
-class Mou$$aka {
- // This space intentionally left blank.
-}
diff --git a/tests/CoreTests/android/core/CoreTests.java b/tests/CoreTests/android/core/CoreTests.java
deleted file mode 100644
index e4f835c..0000000
--- a/tests/CoreTests/android/core/CoreTests.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import com.android.internal.telephony.TelephonyTests;
-
-import junit.framework.TestSuite;
-
-import android.graphics.ColorStateListTest;
-import android.location.LocationManagerProximityTest;
-import android.location.LocationTest;
-import android.test.AndroidTestRunnerTest;
-import android.test.InstrumentationTestRunnerTest;
-import android.util.*;
-import android.view.FocusFinderTest;
-import android.view.ViewGroupAttributesTest;
-import android.webkit.*;
-
-public class CoreTests extends TestSuite {
-
- /**
- * To run these tests:
- * $ mmm java/tests && adb sync
- * $ adb shell am instrument -w \
- * -e class android.core.CoreTests \
- * android.core/android.test.InstrumentationTestRunner
- */
- public static TestSuite suite() {
- TestSuite suite = new TestSuite(CoreTests.class.getName());
-
- // Re-enable StateListDrawableTest when we are running in the
- // framework-test directory which allows access to package private
- // access for MockView
- // suite.addTestSuite(StateListDrawableTest.class);
- suite.addTestSuite(DayOfMonthCursorTest.class);
- suite.addTestSuite(MonthDisplayHelperTest.class);
- suite.addTestSuite(StateSetTest.class);
- suite.addTestSuite(ColorStateListTest.class);
- suite.addTestSuite(FocusFinderTest.class);
- suite.addTestSuite(ViewGroupAttributesTest.class);
- suite.addTest(TelephonyTests.suite());
- suite.addTestSuite(FloatMathTest.class);
- suite.addTest(JavaTests.suite());
- suite.addTestSuite(LocationTest.class);
- suite.addTestSuite(LocationManagerProximityTest.class);
- suite.addTestSuite(AndroidTestRunnerTest.class);
- suite.addTestSuite(InstrumentationTestRunnerTest.class);
- suite.addTestSuite(CookieTest.class);
-
- return suite;
- }
-}
diff --git a/tests/CoreTests/android/core/CryptoTest.java b/tests/CoreTests/android/core/CryptoTest.java
deleted file mode 100644
index f00d49f..0000000
--- a/tests/CoreTests/android/core/CryptoTest.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.apache.harmony.xnet.provider.jsse.OpenSSLMessageDigest;
-import org.bouncycastle.crypto.Digest;
-import org.bouncycastle.crypto.ExtendedDigest;
-import org.bouncycastle.crypto.digests.MD2Digest;
-import org.bouncycastle.crypto.digests.MD4Digest;
-import org.bouncycastle.crypto.digests.MD5Digest;
-import org.bouncycastle.crypto.digests.SHA1Digest;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-
-/**
- * Implements unit tests for our JNI wrapper around OpenSSL. We use the
- * existing Bouncy Castle implementation as our test oracle.
- */
-public class CryptoTest extends TestCase {
-
- /**
- * Processes the two given message digests for the same data and checks
- * the results. Requirement is that the results must be equal, the digest
- * implementations must have the same properties, and the new implementation
- * must be faster than the old one.
- *
- * @param oldDigest The old digest implementation, provided by Bouncy Castle
- * @param newDigest The new digest implementation, provided by OpenSSL
- */
- public void doTestMessageDigest(Digest oldDigest, Digest newDigest) {
- final int ITERATIONS = 10;
-
- byte[] data = new byte[1024];
-
- byte[] oldHash = new byte[oldDigest.getDigestSize()];
- byte[] newHash = new byte[newDigest.getDigestSize()];
-
- Assert.assertEquals("Hash names must be equal", oldDigest.getAlgorithmName(), newDigest.getAlgorithmName());
- Assert.assertEquals("Hash sizes must be equal", oldHash.length, newHash.length);
- Assert.assertEquals("Hash block sizes must be equal", ((ExtendedDigest)oldDigest).getByteLength(), ((ExtendedDigest)newDigest).getByteLength());
- for (int i = 0; i < data.length; i++) {
- data[i] = (byte)i;
- }
-
- long oldTime = 0;
- long newTime = 0;
-
- for (int j = 0; j < ITERATIONS; j++) {
- long t0 = System.currentTimeMillis();
- for (int i = 0; i < 4; i++) {
- oldDigest.update(data, 0, data.length);
- }
- int oldLength = oldDigest.doFinal(oldHash, 0);
- long t1 = System.currentTimeMillis();
-
- oldTime = oldTime + (t1 - t0);
-
- long t2 = System.currentTimeMillis();
- for (int i = 0; i < 4; i++) {
- newDigest.update(data, 0, data.length);
- }
- int newLength = newDigest.doFinal(newHash, 0);
- long t3 = System.currentTimeMillis();
-
- newTime = newTime + (t3 - t2);
-
- Assert.assertEquals("Hash sizes must be equal", oldLength, newLength);
-
- for (int i = 0; i < oldLength; i++) {
- Assert.assertEquals("Hashes[" + i + "] must be equal", oldHash[i], newHash[i]);
- }
- }
-
- android.util.Log.d("CryptoTest", "Time for " + ITERATIONS + " x old hash processing: " + oldTime + " ms");
- android.util.Log.d("CryptoTest", "Time for " + ITERATIONS + " x new hash processing: " + newTime + " ms");
-
- // Assert.assertTrue("New hash should be faster", newTime < oldTime);
- }
-
- /**
- * Tests the MD2 implementation.
- */
- @LargeTest
- public void testMD2() {
- Digest oldDigest = new MD2Digest();
- Digest newDigest = OpenSSLMessageDigest.getInstance("MD2");
- doTestMessageDigest(oldDigest, newDigest);
- }
-
- /**
- * Tests the MD4 implementation.
- */
- @MediumTest
- public void testMD4() {
- Digest oldDigest = new MD4Digest();
- Digest newDigest = OpenSSLMessageDigest.getInstance("MD4");
- doTestMessageDigest(oldDigest, newDigest);
- }
-
- /**
- * Tests the MD5 implementation.
- */
- @MediumTest
- public void testMD5() {
- Digest oldDigest = new MD5Digest();
- Digest newDigest = OpenSSLMessageDigest.getInstance("MD5");
- doTestMessageDigest(oldDigest, newDigest);
- }
-
- /**
- * Tests the SHA-1 implementation.
- */
- @MediumTest
- public void testSHA1() {
- Digest oldDigest = new SHA1Digest();
- Digest newDigest = OpenSSLMessageDigest.getInstance("SHA-1");
- doTestMessageDigest(oldDigest, newDigest);
- }
-
-}
diff --git a/tests/CoreTests/android/core/DataInputStreamTest.java b/tests/CoreTests/android/core/DataInputStreamTest.java
deleted file mode 100644
index ca801d6..0000000
--- a/tests/CoreTests/android/core/DataInputStreamTest.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class DataInputStreamTest extends TestCase {
-
- @SmallTest
- public void testDataInputStream() throws Exception {
- String str = "AbCdEfGhIjKlM\nOpQ\rStUvWxYz";
- ByteArrayInputStream aa = new ByteArrayInputStream(str.getBytes());
- ByteArrayInputStream ba = new ByteArrayInputStream(str.getBytes());
- ByteArrayInputStream ca = new ByteArrayInputStream(str.getBytes());
- ByteArrayInputStream da = new ByteArrayInputStream(str.getBytes());
-
- DataInputStream a = new DataInputStream(aa);
- try {
- assertEquals(str, IOUtil.read(a));
- } finally {
- a.close();
- }
-
- DataInputStream b = new DataInputStream(ba);
- try {
- assertEquals("AbCdEfGhIj", IOUtil.read(b, 10));
- } finally {
- b.close();
- }
-
- DataInputStream c = new DataInputStream(ca);
- try {
- assertEquals("bdfhjl\np\rtvxz", IOUtil.skipRead(c));
- } finally {
- c.close();
- }
-
- DataInputStream d = new DataInputStream(da);
- try {
- assertEquals("AbCdEfGhIjKlM", d.readLine());
- assertEquals("OpQ", d.readLine());
- assertEquals("StUvWxYz", d.readLine());
- } finally {
- d.close();
- }
-
- ByteArrayOutputStream e = new ByteArrayOutputStream();
- DataOutputStream f = new DataOutputStream(e);
- try {
- f.writeBoolean(true);
- f.writeByte('a');
- f.writeBytes("BCD");
- f.writeChar('e');
- f.writeChars("FGH");
- f.writeUTF("ijklm");
- f.writeDouble(1);
- f.writeFloat(2);
- f.writeInt(3);
- f.writeLong(4);
- f.writeShort(5);
- } finally {
- f.close();
- }
-
- ByteArrayInputStream ga = new ByteArrayInputStream(e.toByteArray());
- DataInputStream g = new DataInputStream(ga);
-
- try {
- assertTrue(g.readBoolean());
- assertEquals('a', g.readByte());
- assertEquals(2, g.skipBytes(2));
- assertEquals('D', g.readByte());
- assertEquals('e', g.readChar());
- assertEquals('F', g.readChar());
- assertEquals('G', g.readChar());
- assertEquals('H', g.readChar());
- assertEquals("ijklm", g.readUTF());
- assertEquals(1, g.readDouble(), 0);
- assertEquals(2f, g.readFloat(), 0f);
- assertEquals(3, g.readInt());
- assertEquals(4, g.readLong());
- assertEquals(5, g.readShort());
- } finally {
- g.close();
- }
- }
-}
diff --git a/tests/CoreTests/android/core/DataOutputStreamTest.java b/tests/CoreTests/android/core/DataOutputStreamTest.java
deleted file mode 100644
index 95502b3..0000000
--- a/tests/CoreTests/android/core/DataOutputStreamTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.ByteArrayOutputStream;
-import java.io.DataOutputStream;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Basic tests for DataOutputStreams.
- */
-public class DataOutputStreamTest extends TestCase {
-
- @SmallTest
- public void testDataOutputStream() throws Exception {
- String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
- ByteArrayOutputStream aa = new ByteArrayOutputStream();
- DataOutputStream a = new DataOutputStream(aa);
-
- try {
- a.write(str.getBytes(), 0, 26);
- a.write('A');
-
- assertEquals(27, aa.size());
- assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzA", aa.toString());
-
- a.writeByte('B');
- assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzAB", aa.toString());
- a.writeBytes("BYTES");
- assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzABBYTES", aa.toString());
- } finally {
- a.close();
- }
- }
-}
diff --git a/tests/CoreTests/android/core/DatagramTest.java b/tests/CoreTests/android/core/DatagramTest.java
deleted file mode 100644
index 355a267..0000000
--- a/tests/CoreTests/android/core/DatagramTest.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.IOException;
-import java.net.DatagramPacket;
-import java.net.DatagramSocket;
-import java.net.InetAddress;
-import java.net.SocketTimeoutException;
-import android.test.suitebuilder.annotation.LargeTest;
-
-/**
- * Implements some simple tests for datagrams. Not as excessive as the core
- * tests, but good enough for the harness.
- */
-public class DatagramTest extends TestCase {
-
- /**
- * Helper class that listens to incoming datagrams and reflects them to the
- * sender. Incoming datagram is interpreted as a String. It is uppercased
- * before being sent back.
- */
-
- class Reflector extends Thread {
- // Helper class for reflecting incoming datagrams.
- DatagramSocket socket;
-
- boolean alive = true;
-
- byte[] buffer = new byte[256];
-
- DatagramPacket packet;
-
- /**
- * Main loop. Receives datagrams and reflects them.
- */
- @Override
- public void run() {
- try {
- while (alive) {
- try {
- packet.setLength(buffer.length);
- socket.receive(packet);
- String s = stringFromPacket(packet);
- // System.out.println(s + " (from " + packet.getAddress() + ":" + packet.getPort() + ")");
-
- try {
- Thread.sleep(100);
- } catch (InterruptedException ex) {
- // Ignore.
- }
-
- stringToPacket(s.toUpperCase(), packet);
-
- packet.setAddress(InetAddress.getLocalHost());
- packet.setPort(2345);
-
- socket.send(packet);
- } catch (java.io.InterruptedIOException e) {
- }
- }
- } catch (java.io.IOException ex) {
- ex.printStackTrace();
- } finally {
- socket.close();
- }
- }
-
- /**
- * Creates a new Relfector object for the given local address and port.
- */
- public Reflector(int port, InetAddress address) {
- try {
- packet = new DatagramPacket(buffer, buffer.length);
- socket = new DatagramSocket(port, address);
- } catch (IOException ex) {
- throw new RuntimeException(
- "Creating datagram reflector failed", ex);
- }
- }
- }
-
- /**
- * Converts a given datagram packet's contents to a String.
- */
- static String stringFromPacket(DatagramPacket packet) {
- return new String(packet.getData(), 0, packet.getLength());
- }
-
- /**
- * Converts a given String into a datagram packet.
- */
- static void stringToPacket(String s, DatagramPacket packet) {
- byte[] bytes = s.getBytes();
- System.arraycopy(bytes, 0, packet.getData(), 0, bytes.length);
- packet.setLength(bytes.length);
- }
-
- /**
- * Implements the main part of the Datagram test.
- */
- @LargeTest
- public void testDatagram() throws Exception {
-
- Reflector reflector = null;
- DatagramSocket socket = null;
-
- try {
- // Setup the reflector, so we have a partner to send to
- reflector = new Reflector(1234, InetAddress.getLocalHost());
- reflector.start();
-
- byte[] buffer = new byte[256];
-
- DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
- socket = new DatagramSocket(2345, InetAddress.getLocalHost());
-
- // Send ten simple packets and check for the expected responses.
- for (int i = 1; i <= 10; i++) {
- String s = "Hello, Android world #" + i + "!";
- stringToPacket(s, packet);
-
- packet.setAddress(InetAddress.getLocalHost());
- packet.setPort(1234);
-
- socket.send(packet);
-
- try {
- Thread.sleep(100);
- } catch (InterruptedException ex) {
- // Ignore.
- }
-
- packet.setLength(buffer.length);
- socket.receive(packet);
- String t = stringFromPacket(packet);
- // System.out.println(t + " (from " + packet.getAddress() + ":" + packet.getPort() + ")");
-
- assertEquals(s.toUpperCase(), t);
- }
- } finally {
- if (reflector != null) {
- reflector.alive = false;
- }
-
- if (socket != null) {
- socket.close();
- }
- }
- }
-
- // Regression test for issue 1018003: DatagramSocket ignored a set timeout.
- @LargeTest
- public void testDatagramSocketSetSOTimeout() throws Exception {
- DatagramSocket sock = null;
- int timeout = 5000;
- long start = System.currentTimeMillis();
- try {
- sock = new DatagramSocket();
- DatagramPacket pack = new DatagramPacket(new byte[100], 100);
- sock.setSoTimeout(timeout);
- sock.receive(pack);
- } catch (SocketTimeoutException e) {
- // expected
- long delay = System.currentTimeMillis() - start;
- if (Math.abs(delay - timeout) > 1000) {
- fail("timeout was not accurate. expected: " + timeout
- + " actual: " + delay + " miliseconds.");
- }
- } finally {
- if (sock != null) {
- sock.close();
- }
- }
- }
-}
diff --git a/tests/CoreTests/android/core/DeflateTest.java b/tests/CoreTests/android/core/DeflateTest.java
deleted file mode 100644
index d68d697..0000000
--- a/tests/CoreTests/android/core/DeflateTest.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.UnsupportedEncodingException;
-import java.util.zip.DataFormatException;
-import java.util.zip.Deflater;
-import java.util.zip.Inflater;
-import android.test.suitebuilder.annotation.LargeTest;
-
-public class DeflateTest extends TestCase {
-
- @LargeTest
- public void testDeflate() throws Exception {
- simpleTest();
-
- bigTest(0, 1738149618);
- bigTest(1, 934350518);
- bigTest(2, -532869390);
- }
-
- /*
- * Simple inflate/deflate test, taken from the reference docs for the
- * Inflater/Deflater classes.
- */
- private void simpleTest()
- throws UnsupportedEncodingException, DataFormatException {
- // Encode a String into bytes
- String inputString = "blahblahblah??";
- byte[] input = inputString.getBytes("UTF-8");
-
- // Compress the bytes
- byte[] output = new byte[100];
- Deflater compresser = new Deflater();
- compresser.setInput(input);
- compresser.finish();
- int compressedDataLength = compresser.deflate(output);
-
- // Decompress the bytes
- Inflater decompresser = new Inflater();
- decompresser.setInput(output, 0, compressedDataLength);
- byte[] result = new byte[100];
- int resultLength = decompresser.inflate(result);
-
- // Decode the bytes into a String
- String outputString = new String(result, 0, resultLength, "UTF-8");
-
- assertEquals(inputString, outputString);
- assertEquals(compresser.getAdler(), decompresser.getAdler());
-
- decompresser.end();
- }
-
- /*
- * "step" determines how compressible the data is.
- *
- * Note we must set "nowrap" to false, or the Adler-32 doesn't get
- * computed.
- */
- private void bigTest(int step, int expectedAdler)
- throws UnsupportedEncodingException, DataFormatException {
- byte[] input = new byte[128 * 1024];
- byte[] comp = new byte[128 * 1024 + 512];
- byte[] output = new byte[128 * 1024 + 512];
- Inflater inflater = new Inflater(false);
- Deflater deflater = new Deflater(Deflater.BEST_COMPRESSION, false);
-
- createSample(input, step);
-
- compress(deflater, input, comp);
- expand(inflater, comp, (int) deflater.getBytesWritten(), output);
-
- assertEquals(inflater.getBytesWritten(), input.length);
- assertEquals(deflater.getAdler(), inflater.getAdler());
- assertEquals(deflater.getAdler(), expectedAdler);
- }
-
- /*
- * Create a large data sample.
- * stepStep = 0 --> >99% compression
- * stepStep = 1 --> ~30% compression
- * stepStep = 2 --> no compression
- */
- private void createSample(byte[] sample, int stepStep) {
- byte val, step;
- int i, j, offset;
-
- assertTrue(sample.length >= 128 * 1024);
-
- val = 0;
- step = 1;
- offset = 0;
- for (i = 0; i < (128 * 1024) / 256; i++) {
- for (j = 0; j < 256; j++) {
- sample[offset++] = val;
- val += step;
- }
-
- step += stepStep;
- }
- }
-
- private static final int LOCAL_BUF_SIZE = 256;
-
- /*
- * Compress all data in "in" to "out". We use a small window on input
- * and output to exercise that part of the code.
- *
- * It's the caller's responsibility to ensure that "out" has enough
- * space.
- */
- private void compress(Deflater deflater, byte[] inBuf, byte[] outBuf) {
- int inCount = inBuf.length; // use all
- int inPosn;
- int outPosn;
-
- inPosn = outPosn = 0;
-
- //System.out.println("### starting compress");
-
- while (!deflater.finished()) {
- int want = -1, got;
-
- // only read if the input buffer is empty
- if (deflater.needsInput() && inCount != 0) {
- want = (inCount < LOCAL_BUF_SIZE) ? inCount : LOCAL_BUF_SIZE;
-
- deflater.setInput(inBuf, inPosn, want);
-
- inCount -= want;
- inPosn += want;
- if (inCount == 0) {
- deflater.finish();
- }
- }
-
- // deflate to current position in output buffer
- int compCount;
-
- compCount = deflater.deflate(outBuf, outPosn, LOCAL_BUF_SIZE);
- outPosn += compCount;
-
- //System.out.println("Compressed " + want + ", output " + compCount);
- }
- }
-
- /*
- * Expand data from "inBuf" to "outBuf". Uses a small window to better
- * exercise the code.
- */
- private void expand(Inflater inflater, byte[] inBuf, int inCount,
- byte[] outBuf) throws DataFormatException {
- int inPosn;
- int outPosn;
-
- inPosn = outPosn = 0;
-
- //System.out.println("### starting expand, inCount is " + inCount);
-
- while (!inflater.finished()) {
- int want = -1, got;
-
- // only read if the input buffer is empty
- if (inflater.needsInput() && inCount != 0) {
- want = (inCount < LOCAL_BUF_SIZE) ? inCount : LOCAL_BUF_SIZE;
-
- inflater.setInput(inBuf, inPosn, want);
-
- inCount -= want;
- inPosn += want;
- }
-
- // inflate to current position in output buffer
- int compCount;
-
- compCount = inflater.inflate(outBuf, outPosn, LOCAL_BUF_SIZE);
- outPosn += compCount;
-
- //System.out.println("Expanded " + want + ", output " + compCount);
- }
- }
-}
-
diff --git a/tests/CoreTests/android/core/EnumTest.java b/tests/CoreTests/android/core/EnumTest.java
deleted file mode 100644
index d479491..0000000
--- a/tests/CoreTests/android/core/EnumTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Tests basic behavior of enums.
- */
-public class EnumTest extends TestCase {
- enum MyEnum {
- ZERO, ONE, TWO, THREE, FOUR {boolean isFour() {
- return true;
- }};
-
- boolean isFour() {
- return false;
- }
- }
-
- enum MyEnumTwo {
- FIVE, SIX
- }
-
- @SmallTest
- public void testEnum() throws Exception {
- assertTrue(MyEnum.ZERO.compareTo(MyEnum.ONE) < 0);
- assertEquals(MyEnum.ZERO, MyEnum.ZERO);
- assertTrue(MyEnum.TWO.compareTo(MyEnum.ONE) > 0);
- assertTrue(MyEnum.FOUR.compareTo(MyEnum.ONE) > 0);
-
- assertEquals("ONE", MyEnum.ONE.name());
- assertSame(MyEnum.ONE.getDeclaringClass(), MyEnum.class);
- assertSame(MyEnum.FOUR.getDeclaringClass(), MyEnum.class);
-
- assertTrue(MyEnum.FOUR.isFour());
-
- MyEnum e;
-
- e = MyEnum.ZERO;
-
- switch (e) {
- case ZERO:
- break;
- default:
- fail("wrong switch");
- }
- }
-}
diff --git a/tests/CoreTests/android/core/FileTest.java b/tests/CoreTests/android/core/FileTest.java
deleted file mode 100644
index 980452e..0000000
--- a/tests/CoreTests/android/core/FileTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.File;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Checks creation and deletion of a file.
- */
-public class FileTest extends TestCase {
-
- @SmallTest
- public void testFile() throws Exception {
-
- File file = File.createTempFile(String.valueOf(System.currentTimeMillis()), null, null);
-
- assertTrue(file.exists());
- assertTrue(file.delete());
- assertFalse(file.exists());
- }
-}
diff --git a/tests/CoreTests/android/core/FloatDoubleTest.java b/tests/CoreTests/android/core/FloatDoubleTest.java
deleted file mode 100644
index 8c8455b..0000000
--- a/tests/CoreTests/android/core/FloatDoubleTest.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Tests for basic functionality of floats and doubles.
- */
-public class FloatDoubleTest extends TestCase {
-
- @SmallTest
- public void testFloatDouble() throws Exception {
- Double d = Double.valueOf(1.0);
- Float f = Float.valueOf(1.0f);
- Object o = new Object();
-
- assertFalse(f.equals(d));
- assertFalse(d.equals(f));
- assertFalse(f.equals(o));
- assertFalse(d.equals(o));
- assertFalse(f.equals(null));
- assertFalse(d.equals(null));
- }
-
- @SmallTest
- public void testFloat() throws Exception {
- float pz = 0.0f;
- float nz = -0.0f;
-
- float pzero = 1.0f / Float.POSITIVE_INFINITY;
- float nzero = 1.0f / Float.NEGATIVE_INFINITY;
-
- // Everything compares as '=='
- assertTrue(pz == pz);
- assertTrue(pz == nz);
- assertTrue(pz == pzero);
- assertTrue(pz == nzero);
-
- assertTrue(nz == pz);
- assertTrue(nz == nz);
- assertTrue(nz == pzero);
- assertTrue(nz == nzero);
-
- assertTrue(pzero == pz);
- assertTrue(pzero == nz);
- assertTrue(pzero == pzero);
- assertTrue(pzero == nzero);
-
- assertTrue(nzero == pz);
- assertTrue(nzero == nz);
- assertTrue(nzero == pzero);
- assertTrue(nzero == nzero);
-
- // +-0 are distinct as Floats
- assertEquals(Float.valueOf(pz), Float.valueOf(pz));
- assertTrue(!Float.valueOf(pz).equals(Float.valueOf(nz)));
- assertEquals(Float.valueOf(pz), Float.valueOf(pzero));
- assertTrue(!Float.valueOf(pz).equals(Float.valueOf(nzero)));
-
- assertTrue(!Float.valueOf(nz).equals(Float.valueOf(pz)));
- assertEquals(Float.valueOf(nz), Float.valueOf(nz));
- assertTrue(!Float.valueOf(nz).equals(Float.valueOf(pzero)));
- assertEquals(Float.valueOf(nz), Float.valueOf(nzero));
-
- assertEquals(Float.valueOf(pzero), Float.valueOf(pz));
- assertTrue(!Float.valueOf(pzero).equals(Float.valueOf(nz)));
- assertEquals(Float.valueOf(pzero), Float.valueOf(pzero));
- assertTrue(!Float.valueOf(pzero).equals(Float.valueOf(nzero)));
-
- assertTrue(!Float.valueOf(nzero).equals(Float.valueOf(pz)));
- assertEquals(Float.valueOf(nzero), Float.valueOf(nz));
- assertTrue(!Float.valueOf(nzero).equals(Float.valueOf(pzero)));
- assertEquals(Float.valueOf(nzero), Float.valueOf(nzero));
-
- // Nan's compare as equal
- Float sqrtm2 = Float.valueOf((float) Math.sqrt(-2.0f));
- Float sqrtm3 = Float.valueOf((float) Math.sqrt(-3.0f));
- assertEquals(sqrtm2, sqrtm3);
- }
-
- @SmallTest
- public void testDouble() throws Exception {
- double pz = 0.0;
- double nz = -0.0;
-
- double pzero = 1.0 / Double.POSITIVE_INFINITY;
- double nzero = 1.0 / Double.NEGATIVE_INFINITY;
-
- // Everything compares as '=='
- assertTrue(pz == pz);
- assertTrue(pz == nz);
- assertTrue(pz == pzero);
- assertTrue(pz == nzero);
-
- assertTrue(nz == pz);
- assertTrue(nz == nz);
- assertTrue(nz == pzero);
- assertTrue(nz == nzero);
-
- assertTrue(pzero == pz);
- assertTrue(pzero == nz);
- assertTrue(pzero == pzero);
- assertTrue(pzero == nzero);
-
- assertTrue(nzero == pz);
- assertTrue(nzero == nz);
- assertTrue(nzero == pzero);
- assertTrue(nzero == nzero);
-
- // +-0 are distinct as Doubles
- assertEquals(Double.valueOf(pz), Double.valueOf(pz));
- assertTrue(!Double.valueOf(pz).equals(Double.valueOf(nz)));
- assertEquals(Double.valueOf(pz), Double.valueOf(pzero));
- assertTrue(!Double.valueOf(pz).equals(Double.valueOf(nzero)));
-
- assertTrue(!Double.valueOf(nz).equals(Double.valueOf(pz)));
- assertEquals(Double.valueOf(nz), Double.valueOf(nz));
- assertTrue(!Double.valueOf(nz).equals(Double.valueOf(pzero)));
- assertEquals(Double.valueOf(nz), Double.valueOf(nzero));
-
- assertEquals(Double.valueOf(pzero), Double.valueOf(pz));
- assertTrue(!Double.valueOf(pzero).equals(Double.valueOf(nz)));
- assertEquals(Double.valueOf(pzero), Double.valueOf(pzero));
- assertTrue(!Double.valueOf(pzero).equals(Double.valueOf(nzero)));
-
- assertTrue(!Double.valueOf(nzero).equals(Double.valueOf(pz)));
- assertEquals(Double.valueOf(nzero), Double.valueOf(nz));
- assertTrue(!Double.valueOf(nzero).equals(Double.valueOf(pzero)));
- assertEquals(Double.valueOf(nzero), Double.valueOf(nzero));
-
- // Nan's compare as equal
- Double sqrtm2 = Double.valueOf(Math.sqrt(-2.0));
- Double sqrtm3 = Double.valueOf(Math.sqrt(-3.0));
- assertEquals(sqrtm2, sqrtm3);
- }
-}
diff --git a/tests/CoreTests/android/core/GZIPStreamTest.java b/tests/CoreTests/android/core/GZIPStreamTest.java
deleted file mode 100644
index dd56fb7..0000000
--- a/tests/CoreTests/android/core/GZIPStreamTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.zip.GZIPInputStream;
-import java.util.zip.GZIPOutputStream;
-import android.test.suitebuilder.annotation.MediumTest;
-
-/**
- * Deflates and inflates some test data with GZipStreams
- */
-public class GZIPStreamTest extends TestCase {
-
- @MediumTest
- public void testGZIPStream() throws Exception {
- ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
- createGZIP(bytesOut);
-
- byte[] zipData;
- zipData = bytesOut.toByteArray();
-
- /*
- FileOutputStream outFile = new FileOutputStream("/tmp/foo.gz");
- outFile.write(zipData, 0, zipData.length);
- outFile.close();
- */
-
- /*
- FileInputStream inFile = new FileInputStream("/tmp/foo.gz");
- int inputLength = inFile.available();
- zipData = new byte[inputLength];
- if (inFile.read(zipData) != inputLength)
- throw new RuntimeException();
- inFile.close();
- */
-
- ByteArrayInputStream bytesIn = new ByteArrayInputStream(zipData);
- scanGZIP(bytesIn);
- }
-
- /*
- * stepStep == 0 --> >99% compression
- * stepStep == 1 --> ~30% compression
- * stepStep == 2 --> no compression
- */
- static byte[] makeSampleFile(int stepStep) throws IOException {
- byte[] sample = new byte[128 * 1024];
- byte val, step;
- int i, j, offset;
-
- val = 0;
- step = 1;
- offset = 0;
- for (i = 0; i < (128 * 1024) / 256; i++) {
- for (j = 0; j < 256; j++) {
- sample[offset++] = val;
- val += step;
- }
-
- step += stepStep;
- }
-
- return sample;
- }
-
- static void createGZIP(ByteArrayOutputStream bytesOut) throws IOException {
- GZIPOutputStream out = new GZIPOutputStream(bytesOut);
- try {
- byte[] input = makeSampleFile(1);
- out.write(input, 0, input.length);
- //out.finish();
- } finally {
- out.close();
- }
- }
-
- static void scanGZIP(ByteArrayInputStream bytesIn) throws IOException {
- GZIPInputStream in = new GZIPInputStream(bytesIn);
- try {
- ByteArrayOutputStream contents = new ByteArrayOutputStream();
- byte[] buf = new byte[4096];
- int len, totalLen = 0;
-
- while ((len = in.read(buf)) > 0) {
- contents.write(buf, 0, len);
- totalLen += len;
- }
-
- assertEquals(totalLen, 128 * 1024);
- } finally {
- in.close();
- }
- }
-}
-
diff --git a/tests/CoreTests/android/core/HashMapPerfTest.java b/tests/CoreTests/android/core/HashMapPerfTest.java
deleted file mode 100644
index 8475222..0000000
--- a/tests/CoreTests/android/core/HashMapPerfTest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import android.os.SystemClock;
-import android.test.suitebuilder.annotation.LargeTest;
-import junit.framework.TestCase;
-
-import java.util.HashMap;
-import java.util.Random;
-
-/**
- * Tests basic functionality of HashMaps and prints the time needed to System.out
- */
-public class HashMapPerfTest extends TestCase {
-
- private static final Random sRandom = new Random(1);
-
- class StringThing {
-
- String mId;
-
- public StringThing() {
- int len = sRandom.nextInt(20) + 1;
- char[] chars = new char[len];
- chars[0] = 't';
- for (int i = 1; i < len; i++) {
- chars[i] = (char) ('q' + sRandom.nextInt(4));
- }
- mId = new String(chars, 0, len);
- }
-
- public String getId() {
- return mId;
- }
- }
-
- private static final int NUM_ELTS = 1000;
- private static final int ITERS = 100;
-
- String[] keyCopies = new String[NUM_ELTS];
-
- private static final boolean lookupByOriginals = false;
-
- @LargeTest
- public void testHashMapPerformance() throws Exception {
- StringThing[] st = new StringThing[NUM_ELTS];
- for (int i = 0; i < NUM_ELTS; i++) {
- st[i] = new StringThing();
- keyCopies[i] = st[i].getId();
- }
-
- // android.os.Debug.startMethodTracing();
- long start = SystemClock.uptimeMillis();
- for (int i = 0; i < ITERS; i++) {
- HashMap<String, StringThing> map = new HashMap<String, StringThing>();
- for (int j = 0; j < NUM_ELTS; j++) {
- StringThing s = st[i];
- map.put(s.getId(), s);
- }
- for (int j = 0; j < NUM_ELTS; j++) {
- if (lookupByOriginals) {
- StringThing s = st[i];
- map.get(s.getId());
- } else {
- map.get(keyCopies[j]);
- }
- }
- }
- long finish = SystemClock.uptimeMillis();
- // android.os.Debug.stopMethodTracing();
-
- // This should be an assertion instead
-
-// System.out.println("time (" + NUM_ELTS +
-// ", elts, " + ITERS +
-// " iters) = " + (finish - start));
- }
-}
diff --git a/tests/CoreTests/android/core/HashMapTest.java b/tests/CoreTests/android/core/HashMapTest.java
deleted file mode 100644
index 99b2a47..0000000
--- a/tests/CoreTests/android/core/HashMapTest.java
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Test cases for Hashmap.
- */
-public class HashMapTest extends TestCase {
- private static final Integer ONE = new Integer(1);
- private static final Integer TWO = new Integer(2);
- private static final Integer THREE = new Integer(3);
- private static final Integer FOUR = new Integer(4);
-
- private void addItems(HashMap map) {
- map.put("one", ONE);
- map.put("two", TWO);
- map.put("three", THREE);
- map.put("four", FOUR);
-
- assertEquals(4, map.size());
-
- assertEquals(ONE, map.get("one"));
- assertEquals(TWO, map.get("two"));
- assertEquals(THREE, map.get("three"));
- assertEquals(FOUR, map.get("four"));
- }
-
- /**
- * checks if simple adding elements works.
- */
- @SmallTest
- public void testAdd() throws Exception {
- HashMap map = new HashMap();
- addItems(map);
- }
-
- /**
- * checks if clearing the map works.
- */
- @SmallTest
- public void testClear() throws Exception {
- HashMap map = new HashMap();
-
- addItems(map);
- map.clear();
- assertEquals(0, map.size());
- }
-
- /**
- * checks if removing an elemt works.
- */
- @SmallTest
- public void testRemove() throws Exception {
- HashMap map = new HashMap();
-
- addItems(map);
- map.remove("three");
- assertNull(map.get("three"));
- }
-
- /**
- * does some manipulation with a filled HashMap and checks
- * if they work as intended
- */
- @SmallTest
- public void testManipulate() throws Exception {
- HashMap map = new HashMap();
-
- assertTrue(map.isEmpty());
- assertEquals(0, map.size());
- assertNull(map.get(null));
- assertNull(map.get("one"));
- assertFalse(map.containsKey("one"));
- assertFalse(map.containsValue(new Integer(1)));
- assertNull(map.remove(null));
- assertNull(map.remove("one"));
-
- assertNull(map.put(null, new Integer(-1)));
- assertNull(map.put("one", new Integer(1)));
- assertNull(map.put("two", new Integer(2)));
- assertNull(map.put("three", new Integer(3)));
- assertEquals(-1, ((Integer) map.put(null, new Integer(0))).intValue());
-
- assertEquals(0, ((Integer) map.get(null)).intValue());
- assertEquals(1, ((Integer) map.get("one")).intValue());
- assertEquals(2, ((Integer) map.get("two")).intValue());
- assertEquals(3, ((Integer) map.get("three")).intValue());
-
- assertTrue(map.containsKey(null));
- assertTrue(map.containsKey("one"));
- assertTrue(map.containsKey("two"));
- assertTrue(map.containsKey("three"));
-
- assertTrue(map.containsValue(new Integer(0)));
- assertTrue(map.containsValue(new Integer(1)));
- assertTrue(map.containsValue(new Integer(2)));
- assertTrue(map.containsValue(new Integer(3)));
-
- assertEquals(0, ((Integer) map.remove(null)).intValue());
- assertEquals(1, ((Integer) map.remove("one")).intValue());
- assertEquals(2, ((Integer) map.remove("two")).intValue());
- assertEquals(3, ((Integer) map.remove("three")).intValue());
-
- assertTrue(map.isEmpty());
- assertEquals(0, map.size());
- assertNull(map.get(null));
- assertNull(map.get("one"));
- assertFalse(map.containsKey("one"));
- assertFalse(map.containsValue(new Integer(1)));
- assertNull(map.remove(null));
- assertNull(map.remove("one"));
- }
-
- /**
- * checks if the key iterator of HashMaps work.
- */
- @SmallTest
- public void testKeyIterator() throws Exception {
- HashMap map = new HashMap();
-
- boolean[] slots = new boolean[4];
-
- addItems(map);
-
- Iterator iter = map.keySet().iterator();
-
- while (iter.hasNext()) {
- int slot = 0;
- Object key = iter.next();
-
- if (key.equals("one"))
- slot = 0;
- else if (key.equals("two"))
- slot = 1;
- else if (key.equals("three"))
- slot = 2;
- else if (key.equals("four"))
- slot = 3;
- else
- fail("Unkown key in hashmap");
-
- if (slots[slot])
- fail("key returned more than once");
- else
- slots[slot] = true;
- }
-
- assertTrue(slots[0]);
- assertTrue(slots[1]);
- assertTrue(slots[2]);
- assertTrue(slots[3]);
- }
-
- /**
- * checks if the value iterator works.
- */
- @SmallTest
- public void testValueIterator() throws Exception {
- HashMap map = new HashMap();
-
- boolean[] slots = new boolean[4];
-
- addItems(map);
-
- Iterator iter = map.values().iterator();
-
- while (iter.hasNext()) {
- int slot = 0;
- Object value = iter.next();
-
- if (value.equals(ONE))
- slot = 0;
- else if (value.equals(TWO))
- slot = 1;
- else if (value.equals(THREE))
- slot = 2;
- else if (value.equals(FOUR))
- slot = 3;
- else
- fail("Unkown value in hashmap");
-
- if (slots[slot])
- fail("value returned more than once");
- else
- slots[slot] = true;
- }
-
- assertTrue(slots[0]);
- assertTrue(slots[1]);
- assertTrue(slots[2]);
- assertTrue(slots[3]);
- }
-
- /**
- * checks if the entry iterator works for HashMaps.
- */
- @SmallTest
- public void testEntryIterator() throws Exception {
- HashMap map = new HashMap();
-
- boolean[] slots = new boolean[4];
-
- addItems(map);
-
- Iterator iter = map.entrySet().iterator();
-
- while (iter.hasNext()) {
- int slot = 0;
- Object entry = iter.next();
-
- if (entry.toString().equals("one=1"))
- slot = 0;
- else if (entry.toString().equals("two=2"))
- slot = 1;
- else if (entry.toString().equals("three=3"))
- slot = 2;
- else if (entry.toString().equals("four=4"))
- slot = 3;
- else
- fail("Unkown entry in hashmap");
-
- if (slots[slot])
- fail("entry returned more than once");
- else
- slots[slot] = true;
- }
-
- assertTrue(slots[0]);
- assertTrue(slots[1]);
- assertTrue(slots[2]);
- assertTrue(slots[3]);
- }
-
- /**
- * checks if the HashMap equals method works.
- */
- @SmallTest
- public void testEquals() throws Exception {
- HashMap map1 = new HashMap();
- HashMap map2 = new HashMap();
- HashMap map3 = new HashMap();
-
- map1.put("one", "1");
- map1.put("two", "2");
- map1.put("three", "3");
-
- map2.put("one", new String("1"));
- map2.put(new String("two"), "2");
- map2.put(new String("three"), new String("3"));
-
- assertTrue(map1.equals(map2));
-
- map3.put("one", "1");
- map3.put("two", "1");
- map3.put("three", "1");
-
- assertFalse(map1.equals(map3));
- assertFalse(map2.equals(map3));
- }
-}
-
diff --git a/tests/CoreTests/android/core/HttpConstants.java b/tests/CoreTests/android/core/HttpConstants.java
deleted file mode 100644
index d655d52..0000000
--- a/tests/CoreTests/android/core/HttpConstants.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-interface HttpConstants {
- /** 2XX: generally "OK" */
- public static final int HTTP_OK = 200;
- public static final int HTTP_CREATED = 201;
- public static final int HTTP_ACCEPTED = 202;
- public static final int HTTP_NOT_AUTHORITATIVE = 203;
- public static final int HTTP_NO_CONTENT = 204;
- public static final int HTTP_RESET = 205;
- public static final int HTTP_PARTIAL = 206;
-
- /** 3XX: relocation/redirect */
- public static final int HTTP_MULT_CHOICE = 300;
- public static final int HTTP_MOVED_PERM = 301;
- public static final int HTTP_MOVED_TEMP = 302;
- public static final int HTTP_SEE_OTHER = 303;
- public static final int HTTP_NOT_MODIFIED = 304;
- public static final int HTTP_USE_PROXY = 305;
-
- /** 4XX: client error */
- public static final int HTTP_BAD_REQUEST = 400;
- public static final int HTTP_UNAUTHORIZED = 401;
- public static final int HTTP_PAYMENT_REQUIRED = 402;
- public static final int HTTP_FORBIDDEN = 403;
- public static final int HTTP_NOT_FOUND = 404;
- public static final int HTTP_BAD_METHOD = 405;
- public static final int HTTP_NOT_ACCEPTABLE = 406;
- public static final int HTTP_PROXY_AUTH = 407;
- public static final int HTTP_CLIENT_TIMEOUT = 408;
- public static final int HTTP_CONFLICT = 409;
- public static final int HTTP_GONE = 410;
- public static final int HTTP_LENGTH_REQUIRED = 411;
- public static final int HTTP_PRECON_FAILED = 412;
- public static final int HTTP_ENTITY_TOO_LARGE = 413;
- public static final int HTTP_REQ_TOO_LONG = 414;
- public static final int HTTP_UNSUPPORTED_TYPE = 415;
-
- /** 5XX: server error */
- public static final int HTTP_SERVER_ERROR = 500;
- public static final int HTTP_INTERNAL_ERROR = 501;
- public static final int HTTP_BAD_GATEWAY = 502;
- public static final int HTTP_UNAVAILABLE = 503;
- public static final int HTTP_GATEWAY_TIMEOUT = 504;
- public static final int HTTP_VERSION = 505;
-
- /** Method IDs */
- public static final int UNKNOWN_METHOD = 0;
- public static final int GET_METHOD = 1;
- public static final int HEAD_METHOD = 2;
- public static final int POST_METHOD = 3;
-
- public static final String[] requestHeaders = {
- "cache-control",
- "connection",
- "date",
- "pragma",
- "trailer",
- "transfer-encoding",
- "upgrade",
- "via",
- "warning",
- "accept",
- "accept-charset",
- "accept-encoding",
- "accept-language",
- "authorization",
- "expect",
- "from",
- "host",
- "if-match",
- "if-modified-since",
- "if-none-match",
- "if-range",
- "if-unmodified-since",
- "max-forwards",
- "proxy-authentication",
- "range",
- "referer",
- "te",
- "user-agent",
- "keep-alive",
- "allow",
- "content-encoding",
- "content-language",
- "content-length",
- "content-location",
- "content-md5",
- "content-range",
- "content-type",
- "expires",
- "last-modified",
- "location",
- "server"
-
- };
-
- public static final int REQ_UNKNOWN = -1;
- public static final int REQ_CACHE_CONTROL = 0;
- public static final int REQ_CONNECTION = 1;
- public static final int REQ_DATE = 2;
- public static final int REQ_PRAGMA = 3;
- public static final int REQ_TRAILER = 4;
- public static final int REQ_TRANSFER_ENCODING = 5;
- public static final int REQ_UPGRADE = 6;
- public static final int REQ_VIA = 7;
- public static final int REQ_WARNING = 8;
- public static final int REQ_ACCEPT = 9;
- public static final int REQ_ACCEPT_CHARSET = 10;
- public static final int REQ_ACCEPT_ENCODING = 11;
- public static final int REQ_ACCEPT_LANGUAGE = 12;
- public static final int REQ_AUTHORIZATION = 13;
- public static final int REQ_EXPECT = 14;
- public static final int REQ_FROM = 15;
- public static final int REQ_HOST = 16;
- public static final int REQ_IF_MATCH = 17;
- public static final int REQ_IF_MODIFIED_SINCE = 18;
- public static final int REQ_IF_NONE_MATCH = 19;
- public static final int REQ_IF_RANGE = 20;
- public static final int REQ_IF_UNMODIFIED_SINCE = 21;
- public static final int REQ_MAX_FORWARDS = 22;
- public static final int REQ_PROXY_AUTHENTICATION = 23;
- public static final int REQ_RANGE = 24;
- public static final int REQ_REFERER = 25;
- public static final int REQ_TE = 26;
- public static final int REQ_USER_AGENT = 27;
- public static final int REQ_KEEP_ALIVE = 28;
- public static final int REQ_ALLOW = 29;
- public static final int REQ_CONTENT_ENCODING = 30;
- public static final int REQ_CONTENT_LANGUAGE = 31;
- public static final int REQ_CONTENT_LENGTH = 32;
- public static final int REQ_CONTENT_LOCATION = 33;
- public static final int REQ_CONTENT_MD5 = 34;
- public static final int REQ_CONTENT_RANGE = 35;
- public static final int REQ_CONTENT_TYPE = 36;
- public static final int REQ_EXPIRES = 37;
- public static final int REQ_LAST_MODIFIED = 38;
- public static final int REQ_LOCATION = 39;
- public static final int REQ_SERVER = 40;
-
-}
diff --git a/tests/CoreTests/android/core/IOUtil.java b/tests/CoreTests/android/core/IOUtil.java
deleted file mode 100644
index 6f69418..0000000
--- a/tests/CoreTests/android/core/IOUtil.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import java.io.InputStream;
-import java.io.IOException;
-import java.io.Reader;
-import java.io.InputStreamReader;
-
-public final class IOUtil {
-
- private IOUtil() {
- }
-
- /**
- * returns the content of an InputStream as a String.
- *
- * @param a the input stream.
- * @return the string
- * @throws java.io.IOException
- */
- public static String read(InputStream a) throws IOException {
- int r;
- StringBuilder builder = new StringBuilder();
- do {
- r = a.read();
- if (r != -1)
- builder.append((char) r);
- } while (r != -1);
- return builder.toString();
- }
-
- /**
- * reads characters from a reader and returns them as a string.
- *
- * @param a the reader.
- * @return the string.
- * @throws IOException
- */
- public static String read(Reader a) throws IOException {
- int r;
- StringBuilder builder = new StringBuilder();
- do {
- r = a.read();
- if (r != -1)
- builder.append((char) r);
- } while (r != -1);
- return builder.toString();
- }
-
- /**
- * returns the content of an InputStream as a String. It reads x characters.
- *
- * @param a the input stream.
- * @param x number of characters to read.
- * @return the string
- * @throws IOException
- */
- public static String read(InputStream a, int x) throws IOException {
- byte[] b = new byte[x];
- int len = a.read(b, 0, x);
- if (len < 0) {
- return "";
- }
- return new String(b, 0, len);
- }
-
- /**
- * reads a number of characters from a reader and returns them as a string.
- *
- * @param a the reader.
- * @param x the number of characters to read.
- * @return the string.
- * @throws IOException
- */
- public static String read(Reader a, int x) throws IOException {
- char[] b = new char[x];
- int len = a.read(b, 0, x);
- if (len < 0) {
- return "";
- }
- return new String(b, 0, len);
- }
-
- /**
- * returns the content of the input stream as a String. It only appends
- * every second character.
- *
- * @param a the input stream.
- * @return the string created from every second character of the input stream.
- * @throws IOException
- */
- public static String skipRead(InputStream a) throws IOException {
- int r;
- StringBuilder builder = new StringBuilder();
- do {
- a.skip(1);
- r = a.read();
- if (r != -1)
- builder.append((char) r);
- } while (r != -1);
- return builder.toString();
- }
-
- /**
- * reads every second characters from a reader and returns them as a string.
- *
- * @param a the reader.
- * @return the string.
- * @throws IOException
- */
- public static String skipRead(Reader a) throws IOException {
- int r;
- StringBuilder builder = new StringBuilder();
- do {
- a.skip(1);
- r = a.read();
- if (r != -1)
- builder.append((char) r);
- } while (r != -1);
- return builder.toString();
- }
-
- /**
- * reads characters from a InputStream, skips back y characters and continues
- * reading from that new position up to the end.
- *
- * @param a the InputStream.
- * @param x the position of the mark. the marks position is x+y
- * @param y the number of characters to jump back after the position x+y was reached.
- * @return the string.
- * @throws IOException
- */
- public static String markRead(InputStream a, int x, int y) throws IOException {
- int m = 0;
- int r;
- StringBuilder builder = new StringBuilder();
- do {
- m++;
- r = a.read();
- if (m == x)
- a.mark((x + y));
- if (m == (x + y))
- a.reset();
-
- if (r != -1)
- builder.append((char) r);
- } while (r != -1);
- return builder.toString();
- }
-
- /**
- * reads characters from a reader, skips back y characters and continues
- * reading from that new position up to the end.
- *
- * @param a the reader.
- * @param x the position of the mark. the marks position is x+y
- * @param y the number of characters to jump back after the position x+y was reached.
- * @return the string.
- * @throws IOException
- */
- public static String markRead(Reader a, int x, int y) throws IOException {
- int m = 0;
- int r;
- StringBuilder builder = new StringBuilder();
- do {
- m++;
- r = a.read();
- if (m == x)
- a.mark((x + y));
- if (m == (x + y))
- a.reset();
-
- if (r != -1)
- builder.append((char) r);
- } while (r != -1);
- return builder.toString();
- }
-}
diff --git a/tests/CoreTests/android/core/InetAddrTest.java b/tests/CoreTests/android/core/InetAddrTest.java
deleted file mode 100644
index c7b89e1..0000000
--- a/tests/CoreTests/android/core/InetAddrTest.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.util.Random;
-
-import android.test.suitebuilder.annotation.Suppress;
-
-/**
- * Tests InetAddr class by checking methods to resolve domains to IP addresses
- * and by checking if the class returns correct addresses for local host address
- * and host name.
- */
-@Suppress
-public class InetAddrTest extends TestCase {
- private static final String[] HOSTS = {
- "localhost", "www.google.com", "www.slashdot.org", "www.wikipedia.org",
- "www.paypal.com", "www.cnn.com", "www.yahoo.com", "www.amazon.com",
- "www.ebay.com", "www.android.com"
- };
-
- public void testInetAddr() throws Exception {
- byte[] raw;
-
- InetAddress ia = InetAddress.getByName("localhost");
-
- raw = ia.getAddress();
-
- assertEquals(127, raw[0]);
- assertEquals(0, raw[1]);
- assertEquals(0, raw[2]);
- assertEquals(1, raw[3]);
-
- ia = InetAddress.getByName("127.0.0.1");
-
- raw = ia.getAddress();
-
- assertEquals(127, raw[0]);
- assertEquals(0, raw[1]);
- assertEquals(0, raw[2]);
- assertEquals(1, raw[3]);
-
- ia = InetAddress.getByName(null);
-
- try {
- InetAddress.getByName(".0.0.1");
- fail("expected ex");
- } catch (UnknownHostException ex) {
- // expected
- }
-
- try {
- InetAddress.getByName("thereisagoodchancethisdomaindoesnotexist.weirdtld");
- fail("expected ex");
- } catch (UnknownHostException ex) {
- // expected
- }
-
- try {
- InetAddress.getByName("127.0.0.");
- fail("expected ex");
- } catch (UnknownHostException ex) {
- // expected
- }
-
- Random random = new Random();
- int count = 0;
- for (int i = 0; i < 100; i++) {
- int index = random.nextInt(HOSTS.length);
- try {
- InetAddress.getByName(HOSTS[index]);
- count++;
- try {
- Thread.sleep(50);
- } catch (InterruptedException ex) {
- }
- } catch (UnknownHostException ex) {
- }
- }
- assertEquals("Not all host lookups succeeded", 100, count);
- }
-}
diff --git a/tests/CoreTests/android/core/InputStreamReaderTest.java b/tests/CoreTests/android/core/InputStreamReaderTest.java
deleted file mode 100644
index 1e8d87c..0000000
--- a/tests/CoreTests/android/core/InputStreamReaderTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStreamReader;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Checks basic InputStreamReader functionality.
- */
-public class InputStreamReaderTest extends TestCase {
-
- /**
- * Checks if ASCII encoding works with InputStreamReader
- */
- @SmallTest
- public void testAscii() throws Exception {
- String str = "AbCdEfGhIjKlMnOpQrStUvWxYzX";
- ByteArrayInputStream aa = new ByteArrayInputStream(str.getBytes("ISO8859_1"));
- InputStreamReader a = new InputStreamReader(aa, "ISO8859_1");
-
- try {
- int x = a.read();
- assertEquals('A', x);
- char[] c = new char[26];
- x = a.read(c, 0, 26);
- assertTrue(a.getEncoding().equalsIgnoreCase("ISO8859_1"));
- assertEquals(26, x);
- assertEquals("bCdEfGhIjKlMnOpQrStUvWxYzX", String.valueOf(c));
- } finally {
- a.close();
- }
- }
-
- /**
- * Checks if Utf8 encoding works with InputStreamReader
- */
- @SmallTest
- public void testUtf8() throws Exception {
- String str = "AbCdEfGhIjKlMnOpQrStUvWxYzX" +
- "\u00a3\u00c5\u00c9"; // total of 30 characters
- ByteArrayInputStream aa =
- new ByteArrayInputStream(str.getBytes());
-
- InputStreamReader a = new InputStreamReader(aa);
-
- try {
- assertEquals("UTF8", a.getEncoding());
-
- int x = a.read();
- assertEquals('A', x);
-
- char[] c = new char[29];
- x = a.read(c, 0, 3);
- assertEquals(3, x);
- assertEquals("bCd", new String(c, 0, 3));
-
- x = a.read(c, 3, 26);
- assertEquals(26, x);
- assertEquals("EfGhIjKlMnOpQrStUvWxYzX\u00a3\u00c5\u00c9", new String(c, 3, 26));
- } finally {
- a.close();
- }
- }
-
- /**
- * Checks if several encodings works with InputStreamReader
- */
- @SmallTest
- public void testStringy() throws Exception {
- String src = "The quick brown fox\u00A0\u00FF" +
- "\uFFFC\uD7C5\uDC03bloof";
-
- String[] enc = new String[]{
- "utf-8", "us-ascii", "iso-8859-1", "utf-16be", "utf-16le",
- "utf-16",
- };
-
- for (int i = 0; i < enc.length; i++) {
- byte[] ba = src.getBytes(enc[i]);
-
- String s1 = new String(ba, enc[i]);
-
- ByteArrayInputStream bais = new ByteArrayInputStream(ba);
- InputStreamReader r = new InputStreamReader(bais, enc[i]);
- try {
- char[] ca = new char[600];
- int n = r.read(ca, 0, 600);
-
- String s2 = new String(ca, 0, n);
- assertEquals(s1, s2);
- } finally {
- r.close();
- }
- }
- }
-}
diff --git a/tests/CoreTests/android/core/JavaTests.java b/tests/CoreTests/android/core/JavaTests.java
deleted file mode 100644
index bd8cbf0..0000000
--- a/tests/CoreTests/android/core/JavaTests.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestSuite;
-
-public class JavaTests {
- public static TestSuite suite() {
- TestSuite suite = new TestSuite(JavaTests.class.getName());
-
- //Disabling until bug http://b/issue?id=1200337 is resolved
- //suite.addTestSuite(RequestAPITest.class);
- suite.addTestSuite(MathTest.class);
- suite.addTestSuite(StrictMathTest.class);
- suite.addTestSuite(HashMapPerfTest.class);
- suite.addTestSuite(TreeMapTest.class);
- suite.addTestSuite(FloatDoubleTest.class);
- suite.addTestSuite(Sha1Test.class);
- suite.addTestSuite(NIOTest.class);
- suite.addTestSuite(ReflectArrayTest.class);
- //Commenting out until we find a better way to exclude from continuous testing.
- //suite.addTestSuite(URLTest.class);
- suite.addTestSuite(URITest.class);
- suite.addTestSuite(RegexTest.class);
- suite.addTestSuite(HashMapTest.class);
- suite.addTestSuite(ArrayListTest.class);
- suite.addTestSuite(BooleanTest.class);
- suite.addTestSuite(StringTest.class);
- suite.addTestSuite(BufferedReaderTest.class);
- suite.addTestSuite(CharArrayReaderTest.class);
- suite.addTestSuite(PushbackReaderTest.class);
- suite.addTestSuite(StringReaderTest.class);
- suite.addTestSuite(StreamTokenizerTest.class);
- suite.addTestSuite(ByteArrayInputStreamTest.class);
- suite.addTestSuite(DataInputStreamTest.class);
- suite.addTestSuite(BufferedInputStreamTest.class);
- suite.addTestSuite(PushbackInputStreamTest.class);
- suite.addTestSuite(ByteArrayOutputStreamTest.class);
- suite.addTestSuite(DataOutputStreamTest.class);
- suite.addTestSuite(BufferedOutputStreamTest.class);
- suite.addTestSuite(CharArrayWriterTest.class);
- suite.addTestSuite(StringWriterTest.class);
- suite.addTestSuite(PrintWriterTest.class);
- suite.addTestSuite(BufferedWriterTest.class);
- suite.addTestSuite(ClassTest.class);
- //To be unccommented when Bug #799327 is fixed.
- //suite.addTestSuite(ClassLoaderTest.class);
- suite.addTestSuite(LineNumberReaderTest.class);
- suite.addTestSuite(InputStreamReaderTest.class);
- suite.addTestSuite(OutputStreamWriterTest.class);
- suite.addTestSuite(EnumTest.class);
- suite.addTestSuite(ParseIntTest.class);
- suite.addTestSuite(PipedStreamTest.class);
- suite.addTestSuite(LocaleTest.class);
- //Commenting out until we find a better way to exclude from continuous testing.
- //suite.addTestSuite(InetAddrTest.class);
- suite.addTestSuite(SocketTest.class);
- suite.addTestSuite(ChecksumTest.class);
- suite.addTestSuite(DeflateTest.class);
- suite.addTestSuite(ZipStreamTest.class);
- suite.addTestSuite(GZIPStreamTest.class);
- suite.addTestSuite(ZipFileTest.class);
- suite.addTestSuite(FileTest.class);
- suite.addTestSuite(SQLiteJDBCDriverTest.class);
- suite.addTestSuite(AtParserTest.class);
- suite.addTestSuite(DatagramTest.class);
- suite.addTestSuite(CryptoTest.class);
- suite.addTestSuite(MiscRegressionTest.class);
-
- return suite;
- }
-}
diff --git a/tests/CoreTests/android/core/LineNumberReaderTest.java b/tests/CoreTests/android/core/LineNumberReaderTest.java
deleted file mode 100644
index 6380ebe..0000000
--- a/tests/CoreTests/android/core/LineNumberReaderTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.LineNumberReader;
-import java.io.StringReader;
-import android.test.suitebuilder.annotation.MediumTest;
-
-/**
- * Checks basic functionality for LineNumberReader.
- */
-public class LineNumberReaderTest extends TestCase {
-
- @MediumTest
- public void testLineNumberReader() throws Exception {
- String str = "AbCdEfGhIjKlM\nOpQrStUvWxYz";
-
- StringReader aa = new StringReader(str);
- StringReader ba = new StringReader(str);
- StringReader ca = new StringReader(str);
- StringReader da = new StringReader(str);
- StringReader ea = new StringReader(str);
-
- LineNumberReader a = new LineNumberReader(aa);
- try {
- assertEquals(0, a.getLineNumber());
- assertEquals(str, IOUtil.read(a));
- assertEquals(1, a.getLineNumber());
- a.setLineNumber(5);
- assertEquals(5, a.getLineNumber());
- } finally {
- a.close();
- }
-
- LineNumberReader b = new LineNumberReader(ba);
- try {
- assertEquals("AbCdEfGhIj", IOUtil.read(b, 10));
- } finally {
- b.close();
- }
-
- LineNumberReader c = new LineNumberReader(ca);
- try {
- assertEquals("bdfhjl\nprtvxz", IOUtil.skipRead(c));
- } finally {
- c.close();
- }
-
- LineNumberReader d = new LineNumberReader(da);
- try {
- assertEquals("AbCdEfGdEfGhIjKlM\nOpQrStUvWxYz", IOUtil.markRead(d, 3, 4));
- } finally {
- d.close();
- }
-
- LineNumberReader e = new LineNumberReader(ea);
- try {
- assertEquals("AbCdEfGhIjKlM", e.readLine());
- } finally {
- e.close();
- }
- }
-}
diff --git a/tests/CoreTests/android/core/LocaleTest.java b/tests/CoreTests/android/core/LocaleTest.java
deleted file mode 100644
index 700cf1d..0000000
--- a/tests/CoreTests/android/core/LocaleTest.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.nio.charset.Charset;
-import java.text.DateFormatSymbols;
-import java.util.Calendar;
-import java.util.Currency;
-import java.util.Locale;
-import java.util.Set;
-import java.util.TimeZone;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.test.suitebuilder.annotation.LargeTest;
-
-/**
- * Test some locale-dependent stuff for Android. This test mainly ensures that
- * our ICU configuration is correct and contains all the needed locales and
- * resource bundles.
- */
-public class LocaleTest extends TestCase {
-
- // Test basic Locale infrastructure.
- @SmallTest
- public void testLocale() throws Exception {
- Locale locale = new Locale("en");
- assertEquals("en", locale.toString());
-
- locale = new Locale("en", "US");
- assertEquals("en_US", locale.toString());
-
- locale = new Locale("en", "", "POSIX");
- assertEquals("en__POSIX", locale.toString());
-
- locale = new Locale("en", "US", "POSIX");
- assertEquals("en_US_POSIX", locale.toString());
- }
-
- // Test some must-have locales.
- @LargeTest
- public void testResourceBundles() throws Exception {
- Locale eng = new Locale("en", "US");
- DateFormatSymbols engSymbols = new DateFormatSymbols(eng);
-
- Locale deu = new Locale("de", "DE");
- DateFormatSymbols deuSymbols = new DateFormatSymbols(deu);
-
- TimeZone berlin = TimeZone.getTimeZone("Europe/Berlin");
-
- assertEquals("January", engSymbols.getMonths()[0]);
- assertEquals("Januar", deuSymbols.getMonths()[0]);
-
- assertEquals("Sunday", engSymbols.getWeekdays()[Calendar.SUNDAY]);
- assertEquals("Sonntag", deuSymbols.getWeekdays()[Calendar.SUNDAY]);
-
- assertEquals("Central European Time",
- berlin.getDisplayName(false, TimeZone.LONG, eng));
- assertEquals("Central European Summer Time",
- berlin.getDisplayName(true, TimeZone.LONG, eng));
-
- assertEquals("Mitteleurop\u00E4ische Zeit",
- berlin.getDisplayName(false, TimeZone.LONG, deu));
- assertEquals("Mitteleurop\u00E4ische Sommerzeit",
- berlin.getDisplayName(true, TimeZone.LONG, deu));
-
- assertTrue(engSymbols.getZoneStrings().length > 100);
- }
-
- // Regression test for 1118570: Create test cases for tracking ICU config
- // changes. This one makes sure we have all necessary locales installed.
- @MediumTest
- public void testICULocales() {
- String[] locales = new String[] {
- // List of locales currently required for Android.
- "en_US", "es_US", "en_GB", "fr_FR", "de_DE", "de_AT", "cs_CZ", "nl_NL" };
-
- String[] mondays = new String[] {
- "Monday", "lunes", "Monday", "lundi", "Montag", "Montag", "pond\u011bl\u00ed", "maandag" };
-
- String[] currencies = new String[] {
- "USD", "USD", "GBP", "EUR", "EUR", "EUR", "CZK", "EUR"};
-
- for (int i = 0; i < locales.length; i++) {
- Locale l = new Locale(locales[i].substring(0, 2), locales[i].substring(3));
-
- // Check language part of locale.
- DateFormatSymbols d = new DateFormatSymbols(l);
- assertEquals("Monday name for " + locales[i] + " must match",
- mondays[i], d.getWeekdays()[2]);
-
- // Check country part of locale.
- Currency c = Currency.getInstance(l);
- assertEquals("Currency code for " + locales[i] + " must match",
- currencies[i], c.getCurrencyCode());
- }
- }
-
- // Regression test for 1118570: Create test cases for tracking ICU config
- // changes. This one makes sure we have the necessary converters installed
- // and don't lose the changes to the converter alias table.
- @MediumTest
- public void testICUConverters() {
- // List of encodings currently required for Android.
- String[] encodings = new String[] {
- // Encoding required by the language specification.
- "US-ASCII",
- "UTF-8",
- "UTF-16",
- "UTF-16BE",
- "UTF-16LE",
- "ISO-8859-1",
-
- // Additional encodings included in standard ICU
- "ISO-8859-2",
- "ISO-8859-3",
- "ISO-8859-4",
- "ISO-8859-5",
- "ISO-8859-6",
- "ISO-8859-7",
- "ISO-8859-8",
- "ISO-8859-8-I",
- "ISO-8859-9",
- "ISO-8859-10",
- "ISO-8859-11",
- "ISO-8859-13",
- "ISO-8859-14",
- "ISO-8859-15",
- "ISO-8859-16",
- "ISO-2022-JP",
- "Windows-950",
- "Windows-1250",
- "Windows-1251",
- "Windows-1252",
- "Windows-1253",
- "Windows-1254",
- "Windows-1255",
- "Windows-1256",
- "Windows-1257",
- "Windows-1258",
- "Big5",
- "CP864",
- "CP874",
- "EUC-CN",
- "EUC-JP",
- "KOI8-R",
- "Macintosh",
- "GBK",
- "GB2312",
- "EUC-KR",
-
- // Additional encoding not included in standard ICU.
- "GSM0338" };
-
- for (int i = 0; i < encodings.length; i++) {
- assertTrue("Charset " + encodings[i] + " must be supported",
- Charset.isSupported(encodings[i]));
-
- Charset cs = Charset.forName(encodings[i]);
- android.util.Log.d("LocaleTest", cs.name());
-
- Set<String> aliases = cs.aliases();
- for (String s: aliases) {
- android.util.Log.d("LocaleTest", " - " + s);
- }
- }
-
- // Test for valid encoding that is not included in Android. IBM-37 is
- // a perfect candidate for this, as it is being used for mainframes and
- // thus somewhat out of the scope of Android.
- assertFalse("Charset IBM-37 must not be supported",
- Charset.isSupported("IBM-37"));
-
- // Test for a bogus encoding.
- assertFalse("Charset KLINGON must not be supported",
- Charset.isSupported("KLINGON"));
-
- // Make sure our local change to the real translation table used for
- // EUC-JP doesn't get lost.
- Charset cs = Charset.forName("EUC-JP");
- assertTrue("EUC-JP must use 'ibm-954_P101-2007'", cs.aliases().contains("ibm-954_P101-2007"));
- }
-
-}
diff --git a/tests/CoreTests/android/core/LowLevelNetRunner.java b/tests/CoreTests/android/core/LowLevelNetRunner.java
deleted file mode 100644
index 812ceb5..0000000
--- a/tests/CoreTests/android/core/LowLevelNetRunner.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-/**
- * Provides synchronization handling for low level Request API tests
- */
-public class LowLevelNetRunner extends Thread {
-
- private int count = 0;
-
- LowLevelNetRunner() {
- }
-
- public void incrementRunCount() {
- count++;
- }
-
- /**
- * Decrement the run count. If this returns to zero notify any
- * test waiting.
- */
- public void decrementRunCount() {
- count--;
- if (count <= 0) {
- synchronized (RequestAPITest.syncObj) {
- RequestAPITest.syncObj.notifyAll();
- }
- }
- }
-
-} /* LowLevelNetRunner*/
diff --git a/tests/CoreTests/android/core/MathTest.java b/tests/CoreTests/android/core/MathTest.java
deleted file mode 100644
index 50009db..0000000
--- a/tests/CoreTests/android/core/MathTest.java
+++ /dev/null
@@ -1,831 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.test.suitebuilder.annotation.MediumTest;
-
-public class MathTest extends TestCase {
-
- private final double HYP = Math.sqrt(2.0);
-
- private final double OPP = 1.0;
-
- private final double ADJ = 1.0;
-
- /* Required to make previous preprocessor flags work - do not remove */
- int unused = 0;
-
- public static void assertEquals(String message, double expected, double actual, double delta) {
- if (delta == 0D) {
- Assert.assertEquals(message, expected, actual, Math.ulp(expected));
- } else {
- Assert.assertEquals(message, expected, actual, delta);
- }
- }
-
- public static void assertEquals(String message, float expected, float actual, float delta) {
- if (delta == 0F) {
- Assert.assertEquals(message, expected, actual, Math.ulp(expected));
- } else {
- Assert.assertEquals(message, expected, actual, delta);
- }
- }
-
- /**
- * @tests java.lang.Math#abs(double)
- */
- @SmallTest
- public void testAbsD() {
- // Test for method double java.lang.Math.abs(double)
-
- assertTrue("Incorrect double abs value",
- (Math.abs(-1908.8976) == 1908.8976));
- assertTrue("Incorrect double abs value",
- (Math.abs(1908.8976) == 1908.8976));
- }
-
- /**
- * @tests java.lang.Math#abs(float)
- */
- @SmallTest
- public void testAbsF() {
- // Test for method float java.lang.Math.abs(float)
- assertTrue("Incorrect float abs value",
- (Math.abs(-1908.8976f) == 1908.8976f));
- assertTrue("Incorrect float abs value",
- (Math.abs(1908.8976f) == 1908.8976f));
- }
-
- /**
- * @tests java.lang.Math#abs(int)
- */
- @SmallTest
- public void testAbsI() {
- // Test for method int java.lang.Math.abs(int)
- assertTrue("Incorrect int abs value", (Math.abs(-1908897) == 1908897));
- assertTrue("Incorrect int abs value", (Math.abs(1908897) == 1908897));
- }
-
- /**
- * @tests java.lang.Math#abs(long)
- */
- @SmallTest
- public void testAbsJ() {
- // Test for method long java.lang.Math.abs(long)
- assertTrue("Incorrect long abs value",
- (Math.abs(-19088976000089L) == 19088976000089L));
- assertTrue("Incorrect long abs value",
- (Math.abs(19088976000089L) == 19088976000089L));
- }
-
- /**
- * @tests java.lang.Math#acos(double)
- */
- @SmallTest
- public void testAcosD() {
- // Test for method double java.lang.Math.acos(double)
- double r = Math.cos(Math.acos(ADJ / HYP));
- long lr = Double.doubleToLongBits(r);
- long t = Double.doubleToLongBits(ADJ / HYP);
- assertTrue("Returned incorrect arc cosine", lr == t || (lr + 1) == t
- || (lr - 1) == t);
- }
-
- /**
- * @tests java.lang.Math#asin(double)
- */
- @SmallTest
- public void testAsinD() {
- // Test for method double java.lang.Math.asin(double)
- double r = Math.sin(Math.asin(OPP / HYP));
- long lr = Double.doubleToLongBits(r);
- long t = Double.doubleToLongBits(OPP / HYP);
- assertTrue("Returned incorrect arc sine", lr == t || (lr + 1) == t
- || (lr - 1) == t);
- }
-
- /**
- * @tests java.lang.Math#atan(double)
- */
- @SmallTest
- public void testAtanD() {
- // Test for method double java.lang.Math.atan(double)
- double answer = Math.tan(Math.atan(1.0));
- assertTrue("Returned incorrect arc tangent: " + answer, answer <= 1.0
- && answer >= 9.9999999999999983E-1);
- }
-
- /**
- * @tests java.lang.Math#atan2(double, double)
- */
- @SmallTest
- public void testAtan2DD() {
- // Test for method double java.lang.Math.atan2(double, double)
- double answer = Math.atan(Math.tan(1.0));
- assertTrue("Returned incorrect arc tangent: " + answer, answer <= 1.0
- && answer >= 9.9999999999999983E-1);
- }
-
- /**
- * @tests java.lang.Math#cbrt(double)
- */
- @SmallTest
- public void testCbrtD() {
- //Test for special situations
- assertTrue("Should return Double.NaN", Double.isNaN(Math
- .cbrt(Double.NaN)));
- assertEquals("Should return Double.POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, Math
- .cbrt(Double.POSITIVE_INFINITY), 0D);
- assertEquals("Should return Double.NEGATIVE_INFINITY",
- Double.NEGATIVE_INFINITY, Math
- .cbrt(Double.NEGATIVE_INFINITY), 0D);
- assertEquals(Double.doubleToLongBits(0.0), Double.doubleToLongBits(Math
- .cbrt(0.0)));
- assertEquals(Double.doubleToLongBits(+0.0), Double.doubleToLongBits(Math
- .cbrt(+0.0)));
- assertEquals(Double.doubleToLongBits(-0.0), Double.doubleToLongBits(Math
- .cbrt(-0.0)));
-
- assertEquals("Should return 3.0", 3.0, Math.cbrt(27.0), 0D);
- assertEquals("Should return 23.111993172558684", 23.111993172558684,
- Math.cbrt(12345.6), 0D);
- assertEquals("Should return 5.643803094122362E102",
- 5.643803094122362E102, Math.cbrt(Double.MAX_VALUE), 0D);
- assertEquals("Should return 0.01", 0.01, Math.cbrt(0.000001), 0D);
-
- assertEquals("Should return -3.0", -3.0, Math.cbrt(-27.0), 0D);
- assertEquals("Should return -23.111993172558684", -23.111993172558684,
- Math.cbrt(-12345.6), 0D);
- assertEquals("Should return 1.7031839360032603E-108",
- 1.7031839360032603E-108, Math.cbrt(Double.MIN_VALUE), 0D);
- assertEquals("Should return -0.01", -0.01, Math.cbrt(-0.000001), 0D);
- }
-
- /**
- * @tests java.lang.Math#ceil(double)
- */
- @SmallTest
- public void testCeilD() {
- // Test for method double java.lang.Math.ceil(double)
- assertEquals("Incorrect ceiling for double",
- 79, Math.ceil(78.89), 0);
- assertEquals("Incorrect ceiling for double",
- -78, Math.ceil(-78.89), 0);
- }
-
- /**
- * @tests java.lang.Math#cos(double)
- */
- @SmallTest
- public void testCosD() {
- // Test for method double java.lang.Math.cos(double)
- assertEquals("Incorrect answer", 1.0, Math.cos(0), 0D);
- assertEquals("Incorrect answer", 0.5403023058681398, Math.cos(1), 0D);
- }
-
- /**
- * @tests java.lang.Math#cosh(double)
- */
- @SmallTest
- public void testCoshD() {
- // Test for special situations
- assertTrue(Double.isNaN(Math.cosh(Double.NaN)));
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, Math.cosh(Double.POSITIVE_INFINITY), 0D);
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, Math.cosh(Double.NEGATIVE_INFINITY), 0D);
- assertEquals("Should return 1.0", 1.0, Math.cosh(+0.0), 0D);
- assertEquals("Should return 1.0", 1.0, Math.cosh(-0.0), 0D);
-
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, Math.cosh(1234.56), 0D);
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, Math.cosh(-1234.56), 0D);
- assertEquals("Should return 1.0000000000005", 1.0000000000005, Math
- .cosh(0.000001), 0D);
- assertEquals("Should return 1.0000000000005", 1.0000000000005, Math
- .cosh(-0.000001), 0D);
- assertEquals("Should return 5.212214351945598", 5.212214351945598, Math
- .cosh(2.33482), 0D);
-
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, Math.cosh(Double.MAX_VALUE), 0D);
- assertEquals("Should return 1.0", 1.0, Math.cosh(Double.MIN_VALUE), 0D);
- }
-
- /**
- * @tests java.lang.Math#exp(double)
- */
- @SmallTest
- public void testExpD() {
- // Test for method double java.lang.Math.exp(double)
- assertTrue("Incorrect answer returned for simple power", Math.abs(Math
- .exp(4D)
- - Math.E * Math.E * Math.E * Math.E) < 0.1D);
- assertTrue("Incorrect answer returned for larger power", Math.log(Math
- .abs(Math.exp(5.5D)) - 5.5D) < 10.0D);
- }
-
- /**
- * @tests java.lang.Math#expm1(double)
- */
- @SmallTest
- public void testExpm1D() {
- // Test for special cases
- assertTrue("Should return NaN", Double.isNaN(Math.expm1(Double.NaN)));
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, Math.expm1(Double.POSITIVE_INFINITY), 0D);
- assertEquals("Should return -1.0", -1.0, Math
- .expm1(Double.NEGATIVE_INFINITY), 0D);
- assertEquals(Double.doubleToLongBits(0.0), Double.doubleToLongBits(Math
- .expm1(0.0)));
- assertEquals(Double.doubleToLongBits(+0.0), Double
- .doubleToLongBits(Math.expm1(+0.0)));
- assertEquals(Double.doubleToLongBits(-0.0), Double
- .doubleToLongBits(Math.expm1(-0.0)));
-
- assertEquals("Should return -9.999950000166666E-6",
- -9.999950000166666E-6, Math.expm1(-0.00001), 0D);
- assertEquals("Should return 1.0145103074469635E60",
- 1.0145103074469635E60, Math.expm1(138.16951162), 0D);
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, Math
- .expm1(123456789123456789123456789.4521584223), 0D);
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, Math.expm1(Double.MAX_VALUE), 0D);
- assertEquals("Should return MIN_VALUE", Double.MIN_VALUE, Math
- .expm1(Double.MIN_VALUE), 0D);
- }
-
- /**
- * @tests java.lang.Math#floor(double)
- */
- @SmallTest
- public void testFloorD() {
- // Test for method double java.lang.Math.floor(double)
- assertEquals("Incorrect floor for double",
- 78, Math.floor(78.89), 0);
- assertEquals("Incorrect floor for double",
- -79, Math.floor(-78.89), 0);
- }
-
- /**
- * @tests java.lang.Math#hypot(double, double)
- */
- @SmallTest
- public void testHypotDD() {
- // Test for special cases
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, Math.hypot(Double.POSITIVE_INFINITY,
- 1.0), 0D);
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, Math.hypot(Double.NEGATIVE_INFINITY,
- 123.324), 0D);
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, Math.hypot(-758.2587,
- Double.POSITIVE_INFINITY), 0D);
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, Math.hypot(5687.21,
- Double.NEGATIVE_INFINITY), 0D);
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, Math.hypot(Double.POSITIVE_INFINITY,
- Double.NEGATIVE_INFINITY), 0D);
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, Math.hypot(Double.NEGATIVE_INFINITY,
- Double.POSITIVE_INFINITY), 0D);
- assertTrue("Should be NaN", Double.isNaN(Math.hypot(Double.NaN,
- 2342301.89843)));
- assertTrue("Should be NaN", Double.isNaN(Math.hypot(-345.2680,
- Double.NaN)));
-
- assertEquals("Should return 2396424.905416697", 2396424.905416697, Math
- .hypot(12322.12, -2396393.2258), 0D);
- assertEquals("Should return 138.16958070558556", 138.16958070558556,
- Math.hypot(-138.16951162, 0.13817035864), 0D);
- assertEquals("Should return 1.7976931348623157E308",
- 1.7976931348623157E308, Math.hypot(Double.MAX_VALUE, 211370.35), 0D);
- assertEquals("Should return 5413.7185", 5413.7185, Math.hypot(
- -5413.7185, Double.MIN_VALUE), 0D);
- }
-
- /**
- * @tests java.lang.Math#IEEEremainder(double, double)
- */
- @SmallTest
- public void testIEEEremainderDD() {
- // Test for method double java.lang.Math.IEEEremainder(double, double)
- assertEquals("Incorrect remainder returned",
- 0.0, Math.IEEEremainder(1.0, 1.0), 0D);
- assertTrue("Incorrect remainder returned", Math.IEEEremainder(1.32,
- 89.765) >= 1.4705063220631647E-2
- || Math.IEEEremainder(1.32, 89.765) >= 1.4705063220631649E-2);
- }
-
- /**
- * @tests java.lang.Math#log(double)
- */
- @SmallTest
- public void testLogD() {
- // Test for method double java.lang.Math.log(double)
- for (double d = 10; d >= -10; d -= 0.5) {
- double answer = Math.log(Math.exp(d));
- assertTrue("Answer does not equal expected answer for d = " + d
- + " answer = " + answer, Math.abs(answer - d) <= Math
- .abs(d * 0.00000001));
- }
- }
-
- /**
- * @tests java.lang.Math#log10(double)
- */
- @SuppressWarnings("boxing")
- @SmallTest
- public void testLog10D() {
- // Test for special cases
- assertTrue(Double.isNaN(Math.log10(Double.NaN)));
- assertTrue(Double.isNaN(Math.log10(-2541.05745687234187532)));
- assertTrue(Double.isNaN(Math.log10(-0.1)));
- assertEquals(Double.POSITIVE_INFINITY, Math.log10(Double.POSITIVE_INFINITY));
- assertEquals(Double.NEGATIVE_INFINITY, Math.log10(0.0));
- assertEquals(Double.NEGATIVE_INFINITY, Math.log10(+0.0));
- assertEquals(Double.NEGATIVE_INFINITY, Math.log10(-0.0));
-
- assertEquals(3.0, Math.log10(1000.0));
- assertEquals(14.0, Math.log10(Math.pow(10, 14)));
- assertEquals(3.7389561269540406, Math.log10(5482.2158));
- assertEquals(14.661551142893833, Math.log10(458723662312872.125782332587));
- assertEquals(-0.9083828622192334, Math.log10(0.12348583358871));
- assertEquals(308.25471555991675, Math.log10(Double.MAX_VALUE));
- assertEquals(-323.3062153431158, Math.log10(Double.MIN_VALUE));
- }
-
- /**
- * @tests java.lang.Math#log1p(double)
- */
- @SmallTest
- public void testLog1pD() {
- // Test for special cases
- assertTrue("Should return NaN", Double.isNaN(Math.log1p(Double.NaN)));
- assertTrue("Should return NaN", Double.isNaN(Math.log1p(-32.0482175)));
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, Math.log1p(Double.POSITIVE_INFINITY), 0D);
- assertEquals(Double.doubleToLongBits(0.0), Double.doubleToLongBits(Math
- .log1p(0.0)));
- assertEquals(Double.doubleToLongBits(+0.0), Double
- .doubleToLongBits(Math.log1p(+0.0)));
- assertEquals(Double.doubleToLongBits(-0.0), Double
- .doubleToLongBits(Math.log1p(-0.0)));
-
- assertEquals("Should return -0.2941782295312541", -0.2941782295312541,
- Math.log1p(-0.254856327), 0D);
- assertEquals("Should return 7.368050685564151", 7.368050685564151, Math
- .log1p(1583.542), 0D);
- assertEquals("Should return 0.4633708685409921", 0.4633708685409921,
- Math.log1p(0.5894227), 0D);
- assertEquals("Should return 709.782712893384", 709.782712893384, Math
- .log1p(Double.MAX_VALUE), 0D);
- assertEquals("Should return Double.MIN_VALUE", Double.MIN_VALUE, Math
- .log1p(Double.MIN_VALUE), 0D);
- }
-
- /**
- * @tests java.lang.Math#max(double, double)
- */
- @SmallTest
- public void testMaxDD() {
- // Test for method double java.lang.Math.max(double, double)
- assertEquals("Incorrect double max value", 1908897.6000089, Math.max(-1908897.6000089,
- 1908897.6000089), 0D);
- assertEquals("Incorrect double max value",
- 1908897.6000089, Math.max(2.0, 1908897.6000089), 0D);
- assertEquals("Incorrect double max value", -2.0, Math.max(-2.0,
- -1908897.6000089), 0D);
-
- }
-
- /**
- * @tests java.lang.Math#max(float, float)
- */
- @SmallTest
- public void testMaxFF() {
- // Test for method float java.lang.Math.max(float, float)
- assertTrue("Incorrect float max value", Math.max(-1908897.600f,
- 1908897.600f) == 1908897.600f);
- assertTrue("Incorrect float max value",
- Math.max(2.0f, 1908897.600f) == 1908897.600f);
- assertTrue("Incorrect float max value",
- Math.max(-2.0f, -1908897.600f) == -2.0f);
- }
-
- /**
- * @tests java.lang.Math#max(int, int)
- */
- @SmallTest
- public void testMaxII() {
- // Test for method int java.lang.Math.max(int, int)
- assertEquals("Incorrect int max value",
- 19088976, Math.max(-19088976, 19088976));
- assertEquals("Incorrect int max value",
- 19088976, Math.max(20, 19088976));
- assertEquals("Incorrect int max value", -20, Math.max(-20, -19088976));
- }
-
- /**
- * @tests java.lang.Math#max(long, long)
- */
- @SmallTest
- public void testMaxJJ() {
- // Test for method long java.lang.Math.max(long, long)
- assertEquals("Incorrect long max value", 19088976000089L, Math.max(-19088976000089L,
- 19088976000089L));
- assertEquals("Incorrect long max value",
- 19088976000089L, Math.max(20, 19088976000089L));
- assertEquals("Incorrect long max value",
- -20, Math.max(-20, -19088976000089L));
- }
-
- /**
- * @tests java.lang.Math#min(double, double)
- */
- @SmallTest
- public void testMinDD() {
- // Test for method double java.lang.Math.min(double, double)
- assertEquals("Incorrect double min value", -1908897.6000089, Math.min(-1908897.6000089,
- 1908897.6000089), 0D);
- assertEquals("Incorrect double min value",
- 2.0, Math.min(2.0, 1908897.6000089), 0D);
- assertEquals("Incorrect double min value", -1908897.6000089, Math.min(-2.0,
- -1908897.6000089), 0D);
- }
-
- /**
- * @tests java.lang.Math#min(float, float)
- */
- @SmallTest
- public void testMinFF() {
- // Test for method float java.lang.Math.min(float, float)
- assertTrue("Incorrect float min value", Math.min(-1908897.600f,
- 1908897.600f) == -1908897.600f);
- assertTrue("Incorrect float min value",
- Math.min(2.0f, 1908897.600f) == 2.0f);
- assertTrue("Incorrect float min value",
- Math.min(-2.0f, -1908897.600f) == -1908897.600f);
- }
-
- /**
- * @tests java.lang.Math#min(int, int)
- */
- @SmallTest
- public void testMinII() {
- // Test for method int java.lang.Math.min(int, int)
- assertEquals("Incorrect int min value",
- -19088976, Math.min(-19088976, 19088976));
- assertEquals("Incorrect int min value", 20, Math.min(20, 19088976));
- assertEquals("Incorrect int min value",
- -19088976, Math.min(-20, -19088976));
-
- }
-
- /**
- * @tests java.lang.Math#min(long, long)
- */
- @SmallTest
- public void testMinJJ() {
- // Test for method long java.lang.Math.min(long, long)
- assertEquals("Incorrect long min value", -19088976000089L, Math.min(-19088976000089L,
- 19088976000089L));
- assertEquals("Incorrect long min value",
- 20, Math.min(20, 19088976000089L));
- assertEquals("Incorrect long min value",
- -19088976000089L, Math.min(-20, -19088976000089L));
- }
-
- /**
- * @tests java.lang.Math#pow(double, double)
- */
- @SmallTest
- public void testPowDD() {
- // Test for method double java.lang.Math.pow(double, double)
- assertTrue("pow returned incorrect value",
- (long) Math.pow(2, 8) == 256l);
- assertTrue("pow returned incorrect value",
- Math.pow(2, -8) == 0.00390625d);
- assertEquals("Incorrect root returned1",
- 2, Math.sqrt(Math.pow(Math.sqrt(2), 4)), 0);
- }
-
- /**
- * @tests java.lang.Math#rint(double)
- */
- @SmallTest
- public void testRintD() {
- // Test for method double java.lang.Math.rint(double)
- assertEquals("Failed to round properly - up to odd",
- 3.0, Math.rint(2.9), 0D);
- assertTrue("Failed to round properly - NaN", Double.isNaN(Math
- .rint(Double.NaN)));
- assertEquals("Failed to round properly down to even",
- 2.0, Math.rint(2.1), 0D);
- assertTrue("Failed to round properly " + 2.5 + " to even", Math
- .rint(2.5) == 2.0);
- }
-
- /**
- * @tests java.lang.Math#round(double)
- */
- @SmallTest
- public void testRoundD() {
- // Test for method long java.lang.Math.round(double)
- assertEquals("Incorrect rounding of a float", -91, Math.round(-90.89d));
- }
-
- /**
- * @tests java.lang.Math#round(float)
- */
- @SmallTest
- public void testRoundF() {
- // Test for method int java.lang.Math.round(float)
- assertEquals("Incorrect rounding of a float", -91, Math.round(-90.89f));
- }
-
- /**
- * @tests java.lang.Math#signum(double)
- */
- @SmallTest
- public void testSignumD() {
- assertTrue(Double.isNaN(Math.signum(Double.NaN)));
- assertTrue(Double.isNaN(Math.signum(Double.NaN)));
- assertEquals(Double.doubleToLongBits(0.0), Double.doubleToLongBits(Math
- .signum(0.0)));
- assertEquals(Double.doubleToLongBits(+0.0), Double
- .doubleToLongBits(Math.signum(+0.0)));
- assertEquals(Double.doubleToLongBits(-0.0), Double
- .doubleToLongBits(Math.signum(-0.0)));
-
- assertEquals(1.0, Math.signum(253681.2187962), 0D);
- assertEquals(-1.0, Math.signum(-125874693.56), 0D);
- assertEquals(1.0, Math.signum(1.2587E-308), 0D);
- assertEquals(-1.0, Math.signum(-1.2587E-308), 0D);
-
- assertEquals(1.0, Math.signum(Double.MAX_VALUE), 0D);
- assertEquals(1.0, Math.signum(Double.MIN_VALUE), 0D);
- assertEquals(-1.0, Math.signum(-Double.MAX_VALUE), 0D);
- assertEquals(-1.0, Math.signum(-Double.MIN_VALUE), 0D);
- assertEquals(1.0, Math.signum(Double.POSITIVE_INFINITY), 0D);
- assertEquals(-1.0, Math.signum(Double.NEGATIVE_INFINITY), 0D);
- }
-
- /**
- * @tests java.lang.Math#signum(float)
- */
- @SmallTest
- public void testSignumF() {
- assertTrue(Float.isNaN(Math.signum(Float.NaN)));
- assertEquals(Float.floatToIntBits(0.0f), Float
- .floatToIntBits(Math.signum(0.0f)));
- assertEquals(Float.floatToIntBits(+0.0f), Float
- .floatToIntBits(Math.signum(+0.0f)));
- assertEquals(Float.floatToIntBits(-0.0f), Float
- .floatToIntBits(Math.signum(-0.0f)));
-
- assertEquals(1.0f, Math.signum(253681.2187962f), 0f);
- assertEquals(-1.0f, Math.signum(-125874693.56f), 0f);
- assertEquals(1.0f, Math.signum(1.2587E-11f), 0f);
- assertEquals(-1.0f, Math.signum(-1.2587E-11f), 0f);
-
- assertEquals(1.0f, Math.signum(Float.MAX_VALUE), 0f);
- assertEquals(1.0f, Math.signum(Float.MIN_VALUE), 0f);
- assertEquals(-1.0f, Math.signum(-Float.MAX_VALUE), 0f);
- assertEquals(-1.0f, Math.signum(-Float.MIN_VALUE), 0f);
- assertEquals(1.0f, Math.signum(Float.POSITIVE_INFINITY), 0f);
- assertEquals(-1.0f, Math.signum(Float.NEGATIVE_INFINITY), 0f);
- }
-
- /**
- * @tests java.lang.Math#sin(double)
- */
- @SmallTest
- public void testSinD() {
- // Test for method double java.lang.Math.sin(double)
- assertEquals("Incorrect answer", 0.0, Math.sin(0), 0D);
- assertEquals("Incorrect answer", 0.8414709848078965, Math.sin(1), 0D);
- }
-
- /**
- * @tests java.lang.Math#sinh(double)
- */
- @SmallTest
- public void testSinhD() {
- // Test for special situations
- assertTrue("Should return NaN", Double.isNaN(Math.sinh(Double.NaN)));
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, Math.sinh(Double.POSITIVE_INFINITY), 0D);
- assertEquals("Should return NEGATIVE_INFINITY",
- Double.NEGATIVE_INFINITY, Math.sinh(Double.NEGATIVE_INFINITY), 0D);
- assertEquals(Double.doubleToLongBits(0.0), Double.doubleToLongBits(Math
- .sinh(0.0)));
- assertEquals(Double.doubleToLongBits(+0.0), Double
- .doubleToLongBits(Math.sinh(+0.0)));
- assertEquals(Double.doubleToLongBits(-0.0), Double
- .doubleToLongBits(Math.sinh(-0.0)));
-
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, Math.sinh(1234.56), 0D);
- assertEquals("Should return NEGATIVE_INFINITY",
- Double.NEGATIVE_INFINITY, Math.sinh(-1234.56), 0D);
- assertEquals("Should return 1.0000000000001666E-6",
- 1.0000000000001666E-6, Math.sinh(0.000001), 0D);
- assertEquals("Should return -1.0000000000001666E-6",
- -1.0000000000001666E-6, Math.sinh(-0.000001), 0D);
- assertEquals("Should return 5.115386441963859", 5.115386441963859, Math
- .sinh(2.33482), 0D);
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, Math.sinh(Double.MAX_VALUE), 0D);
- assertEquals("Should return 4.9E-324", 4.9E-324, Math
- .sinh(Double.MIN_VALUE), 0D);
- }
-
- /**
- * @tests java.lang.Math#sqrt(double)
- */
- @SmallTest
- public void testSqrtD() {
- // Test for method double java.lang.Math.sqrt(double)
- assertEquals("Incorrect root returned2", 7, Math.sqrt(49), 0);
- }
-
- /**
- * @tests java.lang.Math#tan(double)
- */
- @SmallTest
- public void testTanD() {
- // Test for method double java.lang.Math.tan(double)
- assertEquals("Incorrect answer", 0.0, Math.tan(0), 0D);
- assertEquals("Incorrect answer", 1.5574077246549023, Math.tan(1), 0D);
-
- }
-
- /**
- * @tests java.lang.Math#tanh(double)
- */
- @SmallTest
- public void testTanhD() {
- // Test for special situations
- assertTrue("Should return NaN", Double.isNaN(Math.tanh(Double.NaN)));
- assertEquals("Should return +1.0", +1.0, Math
- .tanh(Double.POSITIVE_INFINITY), 0D);
- assertEquals("Should return -1.0", -1.0, Math
- .tanh(Double.NEGATIVE_INFINITY), 0D);
- assertEquals(Double.doubleToLongBits(0.0), Double.doubleToLongBits(Math
- .tanh(0.0)));
- assertEquals(Double.doubleToLongBits(+0.0), Double
- .doubleToLongBits(Math.tanh(+0.0)));
- assertEquals(Double.doubleToLongBits(-0.0), Double
- .doubleToLongBits(Math.tanh(-0.0)));
-
- assertEquals("Should return 1.0", 1.0, Math.tanh(1234.56), 0D);
- assertEquals("Should return -1.0", -1.0, Math.tanh(-1234.56), 0D);
- assertEquals("Should return 9.999999999996666E-7",
- 9.999999999996666E-7, Math.tanh(0.000001), 0D);
- assertEquals("Should return 0.981422884124941", 0.981422884124941, Math
- .tanh(2.33482), 0D);
- assertEquals("Should return 1.0", 1.0, Math.tanh(Double.MAX_VALUE), 0D);
- assertEquals("Should return 4.9E-324", 4.9E-324, Math
- .tanh(Double.MIN_VALUE), 0D);
- }
-
- /**
- * @tests java.lang.Math#random()
- */
- @MediumTest
- public void testRandom() {
- // There isn't a place for these tests so just stick them here
- assertEquals("Wrong value E",
- 4613303445314885481L, Double.doubleToLongBits(Math.E));
- assertEquals("Wrong value PI",
- 4614256656552045848L, Double.doubleToLongBits(Math.PI));
-
- for (int i = 500; i >= 0; i--) {
- double d = Math.random();
- assertTrue("Generated number is out of range: " + d, d >= 0.0
- && d < 1.0);
- }
- }
-
- /**
- * @tests java.lang.Math#toRadians(double)
- */
- @MediumTest
- public void testToRadiansD() {
- for (double d = 500; d >= 0; d -= 1.0) {
- double converted = Math.toDegrees(Math.toRadians(d));
- assertTrue("Converted number not equal to original. d = " + d,
- converted >= d * 0.99999999 && converted <= d * 1.00000001);
- }
- }
-
- /**
- * @tests java.lang.Math#toDegrees(double)
- */
- @MediumTest
- public void testToDegreesD() {
- for (double d = 500; d >= 0; d -= 1.0) {
- double converted = Math.toRadians(Math.toDegrees(d));
- assertTrue("Converted number not equal to original. d = " + d,
- converted >= d * 0.99999999 && converted <= d * 1.00000001);
- }
- }
-
- /**
- * @tests java.lang.Math#ulp(double)
- */
- @SuppressWarnings("boxing")
- @SmallTest
- public void testUlpD() {
- // Test for special cases
- assertTrue("Should return NaN", Double.isNaN(Math.ulp(Double.NaN)));
- assertEquals("Returned incorrect value", Double.POSITIVE_INFINITY, Math
- .ulp(Double.POSITIVE_INFINITY), 0D);
- assertEquals("Returned incorrect value", Double.POSITIVE_INFINITY, Math
- .ulp(Double.NEGATIVE_INFINITY), 0D);
- assertEquals("Returned incorrect value", Double.MIN_VALUE, Math
- .ulp(0.0), 0D);
- assertEquals("Returned incorrect value", Double.MIN_VALUE, Math
- .ulp(+0.0), 0D);
- assertEquals("Returned incorrect value", Double.MIN_VALUE, Math
- .ulp(-0.0), 0D);
- assertEquals("Returned incorrect value", Math.pow(2, 971), Math
- .ulp(Double.MAX_VALUE), 0D);
- assertEquals("Returned incorrect value", Math.pow(2, 971), Math
- .ulp(-Double.MAX_VALUE), 0D);
-
- assertEquals("Returned incorrect value", Double.MIN_VALUE, Math
- .ulp(Double.MIN_VALUE), 0D);
- assertEquals("Returned incorrect value", Double.MIN_VALUE, Math
- .ulp(-Double.MIN_VALUE), 0D);
-
- assertEquals("Returned incorrect value", 2.220446049250313E-16, Math
- .ulp(1.0), 0D);
- assertEquals("Returned incorrect value", 2.220446049250313E-16, Math
- .ulp(-1.0), 0D);
- assertEquals("Returned incorrect value", 2.2737367544323206E-13, Math
- .ulp(1153.0), 0D);
- }
-
- /**
- * @tests java.lang.Math#ulp(float)
- */
- @SuppressWarnings("boxing")
- @SmallTest
- public void testUlpf() {
- // Test for special cases
- assertTrue("Should return NaN", Float.isNaN(Math.ulp(Float.NaN)));
- assertEquals("Returned incorrect value", Float.POSITIVE_INFINITY, Math
- .ulp(Float.POSITIVE_INFINITY), 0f);
- assertEquals("Returned incorrect value", Float.POSITIVE_INFINITY, Math
- .ulp(Float.NEGATIVE_INFINITY), 0f);
- assertEquals("Returned incorrect value", Float.MIN_VALUE, Math
- .ulp(0.0f), 0f);
- assertEquals("Returned incorrect value", Float.MIN_VALUE, Math
- .ulp(+0.0f), 0f);
- assertEquals("Returned incorrect value", Float.MIN_VALUE, Math
- .ulp(-0.0f), 0f);
- assertEquals("Returned incorrect value", 2.028241E31f, Math
- .ulp(Float.MAX_VALUE), 0f);
- assertEquals("Returned incorrect value", 2.028241E31f, Math
- .ulp(-Float.MAX_VALUE), 0f);
-
- assertEquals("Returned incorrect value", 1.4E-45f, Math
- .ulp(Float.MIN_VALUE), 0f);
- assertEquals("Returned incorrect value", 1.4E-45f, Math
- .ulp(-Float.MIN_VALUE), 0f);
-
- assertEquals("Returned incorrect value", 1.1920929E-7f, Math.ulp(1.0f),
- 0f);
- assertEquals("Returned incorrect value", 1.1920929E-7f,
- Math.ulp(-1.0f), 0f);
- assertEquals("Returned incorrect value", 1.2207031E-4f, Math
- .ulp(1153.0f), 0f);
- assertEquals("Returned incorrect value", 5.6E-45f, Math
- .ulp(9.403954E-38f), 0f);
- }
-}
diff --git a/tests/CoreTests/android/core/MiscRegressionTest.java b/tests/CoreTests/android/core/MiscRegressionTest.java
deleted file mode 100644
index 8fe064c..0000000
--- a/tests/CoreTests/android/core/MiscRegressionTest.java
+++ /dev/null
@@ -1,506 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import java.io.File;
-import java.io.InputStream;
-import java.io.ObjectInputStream;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.security.KeyStore;
-import java.security.cert.Certificate;
-import java.util.Arrays;
-import java.util.ConcurrentModificationException;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.Random;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import java.util.logging.Logger;
-import java.util.zip.Deflater;
-import java.util.zip.Inflater;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.test.suitebuilder.annotation.LargeTest;
-
-public class MiscRegressionTest extends TestCase {
-
- // Regression test for #857840: want JKS key store
- @SmallTest
- public void testDefaultKeystore() {
- String type = KeyStore.getDefaultType();
- Assert.assertEquals("Default keystore type must be Bouncy Castle", "BKS", type);
-
- try {
- KeyStore store = KeyStore.getInstance(KeyStore.getDefaultType());
- Assert.assertNotNull("Keystore must not be null", store);
- } catch (Exception ex) {
- throw new RuntimeException(ex);
- }
-
- try {
- KeyStore store = KeyStore.getInstance("BKS");
- Assert.assertNotNull("Keystore must not be null", store);
- } catch (Exception ex) {
- throw new RuntimeException(ex);
- }
- }
-
- // Regression test for #1061945: negative Shorts do not
- // serialize/deserialize correctly
- @SmallTest
- public void testShortSerialization() throws Exception {
- // create an instance of ObjectInputStream
- String x = new String("serialize_foobar");
- java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();
- (new java.io.ObjectOutputStream(baos)).writeObject(x);
- ObjectInputStream ois = new java.io.ObjectInputStream(
- new java.io.ByteArrayInputStream(baos.toByteArray()));
-
- // get the setField(...,, short val) method in question
- Class<ObjectInputStream> oClass = ObjectInputStream.class;
- Method m = oClass.getDeclaredMethod("setField", new Class[] { Object.class, Class.class, String.class, short.class});
- // compose args
- short start = 123;
- short origval = -1; // 0xffff
- Short obj = new Short(start);
- Class<Short> declaringClass = Short.class;
- String fieldDescName = "value";
-
- // test the initial value
- assertEquals(obj.shortValue(), start);
- // invoke native method to set the field "value" of type short to the newval
- m.setAccessible(true); // since the method is private
- m.invoke(ois, new Object[]{ obj, declaringClass, fieldDescName, new Short(origval)} );
- // test the set value
- short res = obj.shortValue();
- assertEquals("Read and written values must be equal", origval, res);
- }
-
- // Regression test for #951285: Suitable LogHandler should be chosen
- // depending on the environment.
- @MediumTest
- public void testAndroidLogHandler() throws Exception {
- Logger.global.severe("This has logging Level.SEVERE, should become ERROR");
- Logger.global.warning("This has logging Level.WARNING, should become WARN");
- Logger.global.info("This has logging Level.INFO, should become INFO");
- Logger.global.config("This has logging Level.CONFIG, should become DEBUG");
- Logger.global.fine("This has logging Level.FINE, should become VERBOSE");
- Logger.global.finer("This has logging Level.FINER, should become VERBOSE");
- Logger.global.finest("This has logging Level.FINEST, should become VERBOSE");
- }
-
- // Regression test for #1045939: Different output for Method.toString()
- @SmallTest
- public void testMethodToString() {
- try {
- Method m1 = Object.class.getMethod("notify", new Class[] { });
- Method m2 = Object.class.getMethod("toString", new Class[] { });
- Method m3 = Object.class.getMethod("wait", new Class[] { long.class, int.class });
- Method m4 = Object.class.getMethod("equals", new Class[] { Object.class });
- Method m5 = String.class.getMethod("valueOf", new Class[] { char[].class });
- Method m6 = Runtime.class.getMethod("exec", new Class[] { String[].class });
-
- assertEquals("Method.toString() must match expectations",
- "public final native void java.lang.Object.notify()",
- m1.toString());
-
- assertEquals("Method.toString() must match expectations",
- "public java.lang.String java.lang.Object.toString()",
- m2.toString());
-
- assertEquals("Method.toString() must match expectations",
- "public final native void java.lang.Object.wait(long,int) throws java.lang.InterruptedException",
- m3.toString());
-
- assertEquals("Method.toString() must match expectations",
- "public boolean java.lang.Object.equals(java.lang.Object)",
- m4.toString());
-
- assertEquals("Method.toString() must match expectations",
- "public static java.lang.String java.lang.String.valueOf(char[])",
- m5.toString());
-
- assertEquals("Method.toString() must match expectations",
- "public java.lang.Process java.lang.Runtime.exec(java.lang.String[]) throws java.io.IOException",
- m6.toString());
-
- } catch (Exception ex) {
- throw new RuntimeException(ex);
- }
-
- }
-
- // Regression test for #1062200: Enum fails to deserialize. Actual problem
- // was that Class.isEnum() erroneously returned true for indirect
- // descendants of Enum.
- enum TrafficLights {
- RED,
- YELLOW {},
- GREEN {
- @SuppressWarnings("unused")
- int i;
- @SuppressWarnings("unused")
- void foobar() {}
- };
- }
-
- @SmallTest
- public void testClassIsEnum() {
- Class<?> trafficClass = TrafficLights.class;
-
- Class<?> redClass = TrafficLights.RED.getClass();
- Class<?> yellowClass = TrafficLights.YELLOW.getClass();
- Class<?> greenClass = TrafficLights.GREEN.getClass();
-
- Assert.assertSame("Classes must be equal", trafficClass, redClass);
- Assert.assertNotSame("Classes must be different", trafficClass, yellowClass);
- Assert.assertNotSame("Classes must be different", trafficClass, greenClass);
- Assert.assertNotSame("Classes must be different", yellowClass, greenClass);
-
- Assert.assertTrue("Must be an enum", trafficClass.isEnum());
- Assert.assertTrue("Must be an enum", redClass.isEnum());
- Assert.assertFalse("Must not be an enum", yellowClass.isEnum());
- Assert.assertFalse("Must not be an enum", greenClass.isEnum());
-
- Assert.assertNotNull("Must have enum constants", trafficClass.getEnumConstants());
- Assert.assertNull("Must not have enum constants", yellowClass.getEnumConstants());
- Assert.assertNull("Must not have enum constants", greenClass.getEnumConstants());
- }
-
- // Regression test for #1046174: JarEntry.getCertificates() is really slow.
- public void checkJarCertificates(File file) {
- try {
- JarFile jarFile = new JarFile(file);
- JarEntry je = jarFile.getJarEntry("AndroidManifest.xml");
- byte[] readBuffer = new byte[1024];
-
- long t0 = System.currentTimeMillis();
-
- // We must read the stream for the JarEntry to retrieve
- // its certificates.
- InputStream is = jarFile.getInputStream(je);
- while (is.read(readBuffer, 0, readBuffer.length) != -1) {
- // not using
- }
- is.close();
- Certificate[] certs = je != null ? je.getCertificates() : null;
-
- long t1 = System.currentTimeMillis();
- android.util.Log.d("TestHarness", "loadCertificates() took " + (t1 - t0) + " ms");
- if (certs == null) {
- android.util.Log.d("TestHarness", "We have no certificates");
- } else {
- android.util.Log.d("TestHarness", "We have " + certs.length + " certificates");
- }
- } catch (Exception ex) {
- throw new RuntimeException(ex);
- }
- }
-
- @LargeTest
- public void testJarCertificates() {
- File[] files = new File("/system/app").listFiles();
- for (int i = 0; i < files.length; i++) {
- checkJarCertificates(files[i]);
- }
- }
-
- // Regression test for #1120750: Reflection for static long fields is broken
- private static final long MY_LONG = 5073258162644648461L;
-
- @SmallTest
- public void testLongFieldReflection() {
- try {
- Field field = getClass().getDeclaredField("MY_LONG");
- assertEquals(5073258162644648461L, field.getLong(null));
- } catch (Exception ex) {
- throw new RuntimeException(ex);
- }
- }
-
- // Regression test for Harmony LinkedHashMap bug. Copied from core, just
- // to make sure it doesn't get lost.
- @SmallTest
- public void testLinkedHashMap() {
- // we want to test the LinkedHashMap in access ordering mode.
- LinkedHashMap map = new LinkedHashMap<String, String>(10, 0.75f, true);
-
- map.put("key1", "value1");
- map.put("key2", "value2");
- map.put("key3", "value3");
-
- Iterator iterator = map.keySet().iterator();
- String id = (String) iterator.next();
- map.get(id);
- try {
- iterator.next();
- // A LinkedHashMap is supposed to throw this Exception when a
- // iterator.next() Operation takes place after a get
- // Operation. This is because the get Operation is considered
- // a structural modification if the LinkedHashMap is in
- // access order mode.
- fail("expected ConcurrentModificationException was not thrown.");
- } catch(ConcurrentModificationException e) {
- // expected
- }
-
- LinkedHashMap mapClone = (LinkedHashMap) map.clone();
-
- iterator = map.keySet().iterator();
- id = (String) iterator.next();
- mapClone.get(id);
- try {
- iterator.next();
- } catch(ConcurrentModificationException e) {
- fail("expected ConcurrentModificationException was not thrown.");
- }
- }
-
- // Regression test for #1212257: Boot-time package scan is slow. Not
- // expected to fail. Please see log if you are interested in the results.
- @LargeTest
- public void testZipStressManifest() {
- android.util.Log.d("MiscRegressionTest", "ZIP stress test started");
-
- long time0 = System.currentTimeMillis();
-
- try {
- File[] files = new File("/system/app").listFiles();
-
- byte[] buffer = new byte[512];
-
- if (files != null) {
- for (int i = 0; i < files.length; i++) {
- android.util.Log.d("MiscRegressionTest",
- "ZIP stress test processing " + files[i] + "...");
-
- ZipFile zip = new ZipFile(files[i]);
-
- ZipEntry entry = zip.getEntry("AndroidManifest.xml");
- InputStream stream = zip.getInputStream(entry);
-
- int j = stream.read(buffer);
- while (j != -1) {
- j = stream.read(buffer);
- }
-
- stream.close();
- }
- }
- } catch (Exception ex) {
- throw new RuntimeException(ex);
- }
-
- long time1 = System.currentTimeMillis();
-
- android.util.Log.d("MiscRegressionTest", "ZIP stress test finished, " +
- "time was " + (time1- time0) + "ms");
- }
-
- @LargeTest
- public void testZipStressAllFiles() {
- android.util.Log.d("MiscRegressionTest", "ZIP stress test started");
-
- long time0 = System.currentTimeMillis();
-
- try {
- File[] files = new File("/system/app").listFiles();
-
- byte[] buffer = new byte[512];
-
- if (files != null) {
- for (int i = 0; i < files.length; i++) {
- android.util.Log.d("MiscRegressionTest",
- "ZIP stress test processing " + files[i] + "...");
-
- ZipFile zip = new ZipFile(files[i]);
-
- Enumeration<? extends ZipEntry> entries = zip.entries();
- while (entries.hasMoreElements()) {
- InputStream stream = zip.getInputStream(entries.nextElement());
-
- int j = stream.read(buffer);
- while (j != -1) {
- j = stream.read(buffer);
- }
-
- stream.close();
- }
- }
- }
- } catch (Exception ex) {
- throw new RuntimeException(ex);
- }
-
- long time1 = System.currentTimeMillis();
-
- android.util.Log.d("MiscRegressionTest", "ZIP stress test finished, " +
- "time was " + (time1- time0) + "ms");
- }
-
- @SmallTest
- public void testOsEncodingProperty() {
- long time0 = System.currentTimeMillis();
- String[] files = new File("/system/app").list();
- long time1 = System.currentTimeMillis();
- android.util.Log.d("MiscRegressionTest", "File.list() test finished, " +
- "time was " + (time1- time0) + "ms");
- }
-
- // -------------------------------------------------------------------------
- // Regression test for #1185084: Native memory allocated by
- // java.util.zip.Deflater in system_server. The fix reduced some internal
- // ZLIB buffers in size, so this test is trying to execute a lot of
- // deflating to ensure that things are still working properly.
- private void assertEquals(byte[] a, byte[] b) {
- assertEquals("Arrays must have same length", a.length, b.length);
-
- for (int i = 0; i < a.length; i++) {
- assertEquals("Array elements #" + i + " must be equal", a[i], b[i]);
- }
- }
-
- @LargeTest
- public void testZipDeflateInflateStress() {
-
- final int DATA_SIZE = 16384;
-
- Random random = new Random(42); // Seed makes test reproducible
-
- try {
- // Outer loop selects "mode" of test.
- for (int j = 1; j <=2 ; j++) {
-
- byte[] input = new byte[DATA_SIZE];
-
- if (j == 1) {
- // Totally random content
- random.nextBytes(input);
- } else {
- // Random contents with longer repetitions
- int pos = 0;
- while (pos < input.length) {
- byte what = (byte)random.nextInt(256);
- int howMany = random.nextInt(32);
- if (pos + howMany >= input.length) {
- howMany = input.length - pos;
- }
- Arrays.fill(input, pos, pos + howMany, what);
- pos += howMany;
- }
- }
-
- // Inner loop tries all 9 compression levels.
- for (int i = 1; i <= 9; i++) {
- android.util.Log.d("MiscRegressionTest", "ZipDeflateInflateStress test (" + j + "," + i + ")...");
-
- byte[] zipped = new byte[2 * DATA_SIZE]; // Just to make sure...
-
- Deflater deflater = new Deflater(i);
- deflater.setInput(input);
- deflater.finish();
-
- deflater.deflate(zipped);
-
- byte[] output = new byte[DATA_SIZE];
-
- Inflater inflater = new Inflater();
- inflater.setInput(zipped);
- inflater.finished();
-
- inflater.inflate(output);
-
- assertEquals(input, output);
- }
- }
- } catch (Exception ex) {
- throw new RuntimeException(ex);
- }
- }
-
- // -------------------------------------------------------------------------
- // Regression test for #1252043: Thread.getStackTrace() is broken
- class MyThread extends Thread {
- public MyThread(String name) {
- super(name);
- }
-
- @Override
- public void run() {
- doSomething();
- }
-
- public void doSomething() {
- for (int i = 0; i < 20;) {
- try {
- Thread.sleep(100);
- } catch (InterruptedException ex) {
- }
- }
- }
- }
-
- class MyOtherThread extends Thread {
- public int visibleTraces;
-
- public MyOtherThread(ThreadGroup group, String name) {
- super(group, name);
- }
-
- @Override
- public void run() {
- visibleTraces = Thread.getAllStackTraces().size();
- }
- }
-
- @LargeTest
- public void testThreadGetStackTrace() {
- MyThread t1 = new MyThread("t1");
- t1.start();
-
- try {
- Thread.sleep(1000);
- } catch (InterruptedException ex) {
- }
-
- StackTraceElement[] traces = t1.getStackTrace();
- StackTraceElement trace = traces[traces.length - 2];
-
- // Expect to find MyThread.doSomething in the trace
- assertTrue("Must find MyThread.doSomething in trace",
- trace.getClassName().endsWith("$MyThread") &&
- trace.getMethodName().equals("doSomething"));
-
- ThreadGroup g1 = new ThreadGroup("1");
- MyOtherThread t2 = new MyOtherThread(g1, "t2");
- t2.start();
- try {
- t2.join();
- } catch (InterruptedException ex) {
- }
-
- // Expect to see the traces of all threads (not just t2)
- assertTrue("Must have traces for all threads", t2.visibleTraces > 1);
- }
-}
diff --git a/tests/CoreTests/android/core/NIOTest.java b/tests/CoreTests/android/core/NIOTest.java
deleted file mode 100644
index fd279ca..0000000
--- a/tests/CoreTests/android/core/NIOTest.java
+++ /dev/null
@@ -1,694 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.nio.Buffer;
-import java.nio.BufferOverflowException;
-import java.nio.BufferUnderflowException;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-import java.nio.FloatBuffer;
-import java.nio.IntBuffer;
-import java.nio.ShortBuffer;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Tests for some buffers from the java.nio package.
- */
-public class NIOTest extends TestCase {
-
- void checkBuffer(Buffer b) {
- assertTrue(0 <= b.position());
- assertTrue(b.position() <= b.limit());
- assertTrue(b.limit() <= b.capacity());
- }
-
- @SmallTest
- public void testNIO() throws Exception {
- ByteBuffer b;
-
- // Test byte array-based buffer
- b = ByteBuffer.allocate(12);
- byteBufferTest(b);
-
- // Test native heap-allocated buffer
- b = ByteBuffer.allocateDirect(12);
- byteBufferTest(b);
-
- // Test short array-based buffer
- short[] shortArray = new short[8];
- ShortBuffer sb = ShortBuffer.wrap(shortArray);
- shortBufferTest(sb);
-
- // Test int array-based buffer
- int[] intArray = new int[8];
- IntBuffer ib = IntBuffer.wrap(intArray);
- intBufferTest(ib);
-
- // Test float array-based buffer
- float[] floatArray = new float[8];
- FloatBuffer fb = FloatBuffer.wrap(floatArray);
- floatBufferTest(fb);
- }
-
- private void byteBufferTest(ByteBuffer b) {
- checkBuffer(b);
-
- // Bounds checks
- try {
- b.put(-1, (byte) 0);
- fail("expected exception not thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected
- }
-
- try {
- b.put(b.limit(), (byte) 0);
- fail("expected exception not thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected
- }
-
- // IndexOutOfBoundsException: offset < 0
- try {
- byte[] data = new byte[8];
- b.position(0);
- b.put(data, -1, 2);
- fail("expected exception not thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected
- }
-
- // IndexOutOfBoundsException: length > array.length - offset
- try {
- byte[] data = new byte[8];
- b.position(0);
- b.put(data, 1, 8);
- fail("expected exception not thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected
- }
-
- // BufferOverflowException: length > remaining()
- try {
- byte[] data = new byte[8];
- b.position(b.limit() - 2);
- b.put(data, 0, 3);
- fail("expected exception not thrown");
- } catch (BufferOverflowException e) {
- // expected
- }
-
- // Fill buffer with bytes A0 A1 A2 A3 ...
- b.position(0);
- for (int i = 0; i < b.capacity(); i++) {
- b.put((byte) (0xA0 + i));
- }
- try {
- b.put((byte) 0xFF);
- fail("expected exception not thrown");
- } catch (BufferOverflowException e) {
- // expected
- }
-
- b.position(0);
- assertEquals((byte) 0xA7, b.get(7));
- try {
- b.get(12);
- fail("expected exception not thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected
- }
- try {
- b.get(-10);
- fail("expected exception not thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected
- }
-
- b.position(0);
- b.order(ByteOrder.LITTLE_ENDIAN);
- assertEquals((byte) 0xA0, b.get());
- assertEquals((byte) 0xA1, b.get());
- assertEquals((byte) 0xA2, b.get());
- assertEquals((byte) 0xA3, b.get());
- assertEquals((byte) 0xA4, b.get());
- assertEquals((byte) 0xA5, b.get());
- assertEquals((byte) 0xA6, b.get());
- assertEquals((byte) 0xA7, b.get());
- assertEquals((byte) 0xA8, b.get());
- assertEquals((byte) 0xA9, b.get());
- assertEquals((byte) 0xAA, b.get());
- assertEquals((byte) 0xAB, b.get());
- try {
- b.get();
- fail("expected exception not thrown");
- } catch (BufferUnderflowException e) {
- // expected
- }
-
- b.position(0);
- b.order(ByteOrder.BIG_ENDIAN);
- assertEquals((byte) 0xA0, b.get());
- assertEquals((byte) 0xA1, b.get());
- assertEquals((byte) 0xA2, b.get());
- assertEquals((byte) 0xA3, b.get());
- assertEquals((byte) 0xA4, b.get());
- assertEquals((byte) 0xA5, b.get());
- assertEquals((byte) 0xA6, b.get());
- assertEquals((byte) 0xA7, b.get());
- assertEquals((byte) 0xA8, b.get());
- assertEquals((byte) 0xA9, b.get());
- assertEquals((byte) 0xAA, b.get());
- assertEquals((byte) 0xAB, b.get());
- try {
- b.get();
- fail("expected exception not thrown");
- } catch (BufferUnderflowException e) {
- // expected
- }
-
- b.position(6);
- b.limit(10);
- assertEquals((byte) 0xA6, b.get());
-
- // Check sliced buffer
- b.position(6);
-
- ByteBuffer bb = b.slice();
- checkBuffer(bb);
-
- assertEquals(0, bb.position());
- assertEquals(4, bb.limit());
- assertEquals(4, bb.capacity());
-
- assertEquals((byte) 0xA6, bb.get());
- assertEquals((byte) 0xA7, bb.get());
- assertEquals((byte) 0xA8, bb.get());
- assertEquals((byte) 0xA9, bb.get());
- try {
- bb.get();
- fail("expected exception not thrown");
- } catch (BufferUnderflowException e) {
- // expected
- }
-
- // Reset position and limit
- b.position(0);
- b.limit(b.capacity());
-
- // Check 'getShort'
- b.order(ByteOrder.LITTLE_ENDIAN);
- b.position(0);
- assertEquals((short) 0xA1A0, b.getShort());
- assertEquals((short) 0xA3A2, b.getShort());
- assertEquals((short) 0xA5A4, b.getShort());
- assertEquals((short) 0xA7A6, b.getShort());
- assertEquals((short) 0xA9A8, b.getShort());
- assertEquals((short) 0xABAA, b.getShort());
- try {
- bb.getShort();
- fail("expected exception not thrown");
- } catch (BufferUnderflowException e) {
- // expected
- }
-
- b.order(ByteOrder.BIG_ENDIAN);
- b.position(0);
- assertEquals((short) 0xA0A1, b.getShort());
- assertEquals((short) 0xA2A3, b.getShort());
- assertEquals((short) 0xA4A5, b.getShort());
- assertEquals((short) 0xA6A7, b.getShort());
- assertEquals((short) 0xA8A9, b.getShort());
- assertEquals((short) 0xAAAB, b.getShort());
- try {
- bb.getShort();
- fail("expected exception not thrown");
- } catch (BufferUnderflowException e) {
- // expected
- }
-
- // Check 'getInt'
- b.order(ByteOrder.LITTLE_ENDIAN);
- b.position(0);
- assertEquals(0xA3A2A1A0, b.getInt());
- assertEquals(0xA7A6A5A4, b.getInt());
- assertEquals(0xABAAA9A8, b.getInt());
- try {
- bb.getInt();
- fail("expected exception not thrown");
- } catch (BufferUnderflowException e) {
- // expected
- }
-
- b.order(ByteOrder.BIG_ENDIAN);
- b.position(0);
- assertEquals(0xA0A1A2A3, b.getInt());
- assertEquals(0xA4A5A6A7, b.getInt());
- assertEquals(0xA8A9AAAB, b.getInt());
- try {
- bb.getInt();
- fail("expected exception not thrown");
- } catch (BufferUnderflowException e) {
- // expected
- }
-
- // Check 'getFloat'
- b.order(ByteOrder.LITTLE_ENDIAN);
- b.position(0);
- assertEquals(0xA3A2A1A0, Float.floatToIntBits(b.getFloat()));
- assertEquals(0xA7A6A5A4, Float.floatToIntBits(b.getFloat()));
- assertEquals(0xABAAA9A8, Float.floatToIntBits(b.getFloat()));
- try {
- b.getFloat();
- fail("expected exception not thrown");
- } catch (BufferUnderflowException e) {
- // expected
- }
-
- b.order(ByteOrder.BIG_ENDIAN);
- b.position(0);
- assertEquals(0xA0A1A2A3, Float.floatToIntBits(b.getFloat()));
- assertEquals(0xA4A5A6A7, Float.floatToIntBits(b.getFloat()));
- assertEquals(0xA8A9AAAB, Float.floatToIntBits(b.getFloat()));
- try {
- b.getFloat();
- fail("expected exception not thrown");
- } catch (BufferUnderflowException e) {
- // expected
- }
-
- // Check 'getDouble(int position)'
- b.order(ByteOrder.LITTLE_ENDIAN);
- assertEquals(0xA7A6A5A4A3A2A1A0L, Double.doubleToLongBits(b.getDouble(0)));
- assertEquals(0xA8A7A6A5A4A3A2A1L, Double.doubleToLongBits(b.getDouble(1)));
- try {
- b.getDouble(-1);
- fail("expected exception not thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected
- }
- try {
- b.getDouble(5);
- fail("expected exception not thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected
- }
-
- b.order(ByteOrder.BIG_ENDIAN);
- assertEquals(0xA0A1A2A3A4A5A6A7L, Double.doubleToLongBits(b.getDouble(0)));
- assertEquals(0xA1A2A3A4A5A6A7A8L, Double.doubleToLongBits(b.getDouble(1)));
- try {
- b.getDouble(-1);
- fail("expected exception not thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected
- }
- try {
- b.getDouble(5);
- fail("expected exception not thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected
- }
-
- // Slice and check 'getInt'
- b.position(1);
- b.limit(5);
- b.order(ByteOrder.LITTLE_ENDIAN);
- bb = b.slice();
- assertEquals(4, bb.capacity());
- assertEquals(0xA4A3A2A1, bb.getInt(0));
-
- bb.order(ByteOrder.LITTLE_ENDIAN);
- ShortBuffer sb = bb.asShortBuffer();
-
- checkBuffer(sb);
- assertEquals(2, sb.capacity());
- assertEquals((short) 0xA2A1, sb.get());
- assertEquals((short) 0xA4A3, sb.get());
-
- bb.order(ByteOrder.BIG_ENDIAN);
- sb = bb.asShortBuffer();
-
- checkBuffer(sb);
- assertEquals(2, sb.capacity());
- assertEquals((short) 0xA1A2, sb.get());
- assertEquals((short) 0xA3A4, sb.get());
-
- bb.order(ByteOrder.LITTLE_ENDIAN);
- IntBuffer ib = bb.asIntBuffer();
-
- checkBuffer(ib);
- assertEquals(1, ib.capacity());
- assertEquals(0xA4A3A2A1, ib.get());
-
- bb.order(ByteOrder.BIG_ENDIAN);
- ib = bb.asIntBuffer();
-
- checkBuffer(ib);
- assertEquals(1, ib.capacity());
- assertEquals(0xA1A2A3A4, ib.get());
-
- bb.order(ByteOrder.LITTLE_ENDIAN);
- FloatBuffer fb = bb.asFloatBuffer();
-
- checkBuffer(fb);
- assertEquals(1, fb.capacity());
- assertEquals(0xA4A3A2A1, Float.floatToIntBits(fb.get()));
-
- bb.order(ByteOrder.BIG_ENDIAN);
- fb = bb.asFloatBuffer();
-
- checkBuffer(fb);
- assertEquals(1, fb.capacity());
- assertEquals(0xA1A2A3A4, Float.floatToIntBits(fb.get()));
- }
-
- private void shortBufferTest(ShortBuffer sb) {
- checkBuffer(sb);
-
- try {
- sb.put(-1, (short) 0);
- fail("expected exception not thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected
- }
-
- try {
- sb.put(sb.limit(), (short) 0);
- fail("expected exception not thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected
- }
-
- // IndexOutOfBoundsException: offset < 0
- try {
- short[] data = new short[8];
- sb.position(0);
- sb.put(data, -1, 2);
- fail("expected exception not thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected
- }
-
- // IndexOutOfBoundsException: length > array.length - offset
- try {
- short[] data = new short[8];
- sb.position(0);
- sb.put(data, 1, 8);
- fail("expected exception not thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected
- }
-
- // BufferOverflowException: length > remaining()
- try {
- short[] data = new short[8];
- sb.position(sb.limit() - 2);
- sb.put(data, 0, 3);
- fail("expected exception not thrown");
- } catch (BufferOverflowException e) {
- // expected
- }
-
- short[] data = {0, 10, 20, 30, 40, 50, 60, 70};
- sb.position(0);
- sb.put(data);
-
- try {
- sb.get();
- fail("expected exception not thrown");
- } catch (BufferUnderflowException e) {
- // expected
- }
-
- sb.position(0);
- assertEquals((short) 0, sb.get());
- assertEquals((short) 10, sb.get());
- assertEquals((short) 20, sb.get());
- assertEquals((short) 30, sb.get());
- assertEquals((short) 40, sb.get());
- assertEquals((short) 50, sb.get());
- assertEquals((short) 60, sb.get());
- assertEquals((short) 70, sb.get());
- try {
- sb.get();
- fail("expected exception not thrown");
- } catch (BufferUnderflowException e) {
- // expected
- }
- sb.position(1);
- sb.put((short) 11);
- assertEquals((short) 11, sb.get(1));
-
- short[] ss1 = {33, 44, 55, 66};
- sb.position(3);
- sb.put(ss1);
- sb.position(0);
- assertEquals((short) 0, sb.get());
- assertEquals((short) 11, sb.get());
- assertEquals((short) 20, sb.get());
- assertEquals((short) 33, sb.get());
- assertEquals((short) 44, sb.get());
- assertEquals((short) 55, sb.get());
- assertEquals((short) 66, sb.get());
- assertEquals((short) 70, sb.get());
-
- short[] ss2 = {10, 22, 30};
- sb.position(2);
- sb.put(ss2, 1, 1);
- sb.position(0);
- assertEquals((short) 0, sb.get());
- assertEquals((short) 11, sb.get());
- assertEquals((short) 22, sb.get());
- assertEquals((short) 33, sb.get());
- assertEquals((short) 44, sb.get());
- assertEquals((short) 55, sb.get());
- assertEquals((short) 66, sb.get());
- assertEquals((short) 70, sb.get());
- }
-
- private void intBufferTest(IntBuffer ib) {
- checkBuffer(ib);
-
- try {
- ib.put(-1, (int) 0);
- fail("expected exception not thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected
- }
-
- try {
- ib.put(ib.limit(), (int) 0);
- fail("expected exception not thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected
- }
-
- // IndexOutOfBoundsException: offset < 0
- try {
- int[] data = new int[8];
- ib.position(0);
- ib.put(data, -1, 2);
- fail("expected exception not thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected
- }
-
- // IndexOutOfBoundsException: length > array.length - offset
- try {
- int[] data = new int[8];
- ib.position(0);
- ib.put(data, 1, 8);
- fail("expected exception not thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected
- }
-
- // BufferOverflowException: length > remaining()
- try {
- int[] data = new int[8];
- ib.position(ib.limit() - 2);
- ib.put(data, 0, 3);
- fail("expected exception not thrown");
- } catch (BufferOverflowException e) {
- // expected
- }
-
- int[] data = {0, 10, 20, 30, 40, 50, 60, 70};
- ib.position(0);
- ib.put(data);
-
- try {
- ib.get();
- fail("expected exception not thrown");
- } catch (BufferUnderflowException e) {
- // expected
- }
-
- ib.position(0);
- assertEquals((int) 0, ib.get());
- assertEquals((int) 10, ib.get());
- assertEquals((int) 20, ib.get());
- assertEquals((int) 30, ib.get());
- assertEquals((int) 40, ib.get());
- assertEquals((int) 50, ib.get());
- assertEquals((int) 60, ib.get());
- assertEquals((int) 70, ib.get());
- try {
- ib.get();
- fail("expected exception not thrown");
- } catch (BufferUnderflowException e) {
- // expected
- }
- ib.position(1);
- ib.put((int) 11);
- assertEquals((int) 11, ib.get(1));
-
- int[] ss1 = {33, 44, 55, 66};
- ib.position(3);
- ib.put(ss1);
- ib.position(0);
- assertEquals((int) 0, ib.get());
- assertEquals((int) 11, ib.get());
- assertEquals((int) 20, ib.get());
- assertEquals((int) 33, ib.get());
- assertEquals((int) 44, ib.get());
- assertEquals((int) 55, ib.get());
- assertEquals((int) 66, ib.get());
- assertEquals((int) 70, ib.get());
-
- int[] ss2 = {10, 22, 30};
- ib.position(2);
- ib.put(ss2, 1, 1);
- ib.position(0);
- assertEquals((int) 0, ib.get());
- assertEquals((int) 11, ib.get());
- assertEquals((int) 22, ib.get());
- assertEquals((int) 33, ib.get());
- assertEquals((int) 44, ib.get());
- assertEquals((int) 55, ib.get());
- assertEquals((int) 66, ib.get());
- assertEquals((int) 70, ib.get());
- }
-
- void floatBufferTest(FloatBuffer fb) {
- checkBuffer(fb);
-
- try {
- fb.put(-1, (float) 0);
- fail("expected exception not thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected
- }
-
- try {
- fb.put(fb.limit(), (float) 0);
- fail("expected exception not thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected
- }
-
- // IndexOutOfBoundsException: offset < 0
- try {
- float[] data = new float[8];
- fb.position(0);
- fb.put(data, -1, 2);
- fail("expected exception not thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected
- }
-
- // IndexOutOfBoundsException: length > array.length - offset
- try {
- float[] data = new float[8];
- fb.position(0);
- fb.put(data, 1, 8);
- fail("expected exception not thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected
- }
-
- // BufferOverflowException: length > remaining()
- try {
- float[] data = new float[8];
- fb.position(fb.limit() - 2);
- fb.put(data, 0, 3);
- fail("expected exception not thrown");
- } catch (BufferOverflowException e) {
- // expected
- }
-
- float[] data = {0, 10, 20, 30, 40, 50, 60, 70};
- fb.position(0);
- fb.put(data);
-
- try {
- fb.get();
- fail("expected exception not thrown");
- } catch (BufferUnderflowException e) {
- // expected
- }
-
- fb.position(0);
- assertEquals((float) 0, fb.get());
- assertEquals((float) 10, fb.get());
- assertEquals((float) 20, fb.get());
- assertEquals((float) 30, fb.get());
- assertEquals((float) 40, fb.get());
- assertEquals((float) 50, fb.get());
- assertEquals((float) 60, fb.get());
- assertEquals((float) 70, fb.get());
- try {
- fb.get();
- fail("expected exception not thrown");
- } catch (BufferUnderflowException e) {
- // expected
- }
- fb.position(1);
- fb.put((float) 11);
- assertEquals((float) 11, fb.get(1));
-
- float[] ss1 = {33, 44, 55, 66};
- fb.position(3);
- fb.put(ss1);
- fb.position(0);
- assertEquals((float) 0, fb.get());
- assertEquals((float) 11, fb.get());
- assertEquals((float) 20, fb.get());
- assertEquals((float) 33, fb.get());
- assertEquals((float) 44, fb.get());
- assertEquals((float) 55, fb.get());
- assertEquals((float) 66, fb.get());
- assertEquals((float) 70, fb.get());
-
- float[] ss2 = {10, 22, 30};
- fb.position(2);
- fb.put(ss2, 1, 1);
- fb.position(0);
- assertEquals((float) 0, fb.get());
- assertEquals((float) 11, fb.get());
- assertEquals((float) 22, fb.get());
- assertEquals((float) 33, fb.get());
- assertEquals((float) 44, fb.get());
- assertEquals((float) 55, fb.get());
- assertEquals((float) 66, fb.get());
- assertEquals((float) 70, fb.get());
- }
-}
diff --git a/tests/CoreTests/android/core/OutputStreamWriterTest.java b/tests/CoreTests/android/core/OutputStreamWriterTest.java
deleted file mode 100644
index 1c0901e..0000000
--- a/tests/CoreTests/android/core/OutputStreamWriterTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.ByteArrayOutputStream;
-import java.io.OutputStreamWriter;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Tests basic functionality of an OutputStreamWriter.
- */
-public class OutputStreamWriterTest extends TestCase {
-
- @SmallTest
- public void testOutputStreamWriter() throws Exception {
- String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
- ByteArrayOutputStream aa = new ByteArrayOutputStream();
- OutputStreamWriter a = new OutputStreamWriter(aa, "ISO8859_1");
- try {
- a.write(str, 0, 4);
- a.write('A');
- // We have to flush the OutputStreamWriter to guarantee
- // that the results will appear in the underlying OutputStream
- a.flush();
- assertEquals("ISO8859_1", a.getEncoding());
- assertEquals(5, aa.size());
- assertEquals("AbCdA", aa.toString());
- } finally {
- a.close();
- }
- }
-}
diff --git a/tests/CoreTests/android/core/ParseIntTest.java b/tests/CoreTests/android/core/ParseIntTest.java
deleted file mode 100644
index 0e3b0c6..0000000
--- a/tests/CoreTests/android/core/ParseIntTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Tests for functionality of class Integer to parse integers.
- */
-public class ParseIntTest extends TestCase {
-
- @SmallTest
- public void testParseInt() throws Exception {
- assertEquals(0, Integer.parseInt("0", 10));
- assertEquals(473, Integer.parseInt("473", 10));
- assertEquals(0, Integer.parseInt("-0", 10));
- assertEquals(-255, Integer.parseInt("-FF", 16));
- assertEquals(102, Integer.parseInt("1100110", 2));
- assertEquals(2147483647, Integer.parseInt("2147483647", 10));
- assertEquals(-2147483648, Integer.parseInt("-2147483648", 10));
-
- try {
- Integer.parseInt("2147483648", 10);
- fail();
- } catch (NumberFormatException e) {
- // ok
- }
-
- try {
- Integer.parseInt("-2147483649", 10);
- fail();
- } catch (NumberFormatException e) {
- // ok
- }
-
- // One digit too many
- try {
- Integer.parseInt("21474836470", 10);
- fail();
- } catch (NumberFormatException e) {
- // ok
- }
-
- try {
- Integer.parseInt("-21474836480", 10);
- fail();
- } catch (NumberFormatException e) {
- // ok
- }
-
- try {
- Integer.parseInt("21474836471", 10);
- fail();
- } catch (NumberFormatException e) {
- // ok
- }
-
- try {
- Integer.parseInt("-21474836481", 10);
- fail();
- } catch (NumberFormatException e) {
- // ok
- }
-
- try {
- Integer.parseInt("214748364710", 10);
- fail();
- } catch (NumberFormatException e) {
- // ok
- }
-
- try {
- Integer.parseInt("-214748364811", 10);
- fail();
- } catch (NumberFormatException e) {
- // ok
- }
-
- try {
- Integer.parseInt("99", 8);
- fail();
- } catch (NumberFormatException e) {
- // ok
- }
-
- try {
- Integer.parseInt("Kona", 10);
- fail();
- } catch (NumberFormatException e) {
- // ok
- }
-
- assertEquals(411787, Integer.parseInt("Kona", 27));
- }
-}
diff --git a/tests/CoreTests/android/core/PipedStreamTest.java b/tests/CoreTests/android/core/PipedStreamTest.java
deleted file mode 100644
index 564b337..0000000
--- a/tests/CoreTests/android/core/PipedStreamTest.java
+++ /dev/null
@@ -1,303 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.PipedInputStream;
-import java.io.PipedOutputStream;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-
-class Fibonacci {
- int n1 = -1;
- int n2;
-
- public int next() {
- if (n1 < 0) {
- n1 = 0;
- return 0;
- } else if (n1 == 0) {
- n2 = 0;
- n1 = 1;
- return 1;
- } else {
- int ret = n1 + n2;
- n2 = n1;
- n1 = ret;
- return ret;
- }
- }
-}
-
-
-public class PipedStreamTest extends TestCase {
-
- private abstract static class TestThread extends Thread {
- public abstract void runTest() throws Exception;
-
- public final void run() {
- try {
- runTest();
- } catch (Throwable e) {
- android.util.Log.e("PST", "Got exception " + e, e);
- android.util.Log.e("PST", android.util.Log.getStackTraceString(e));
- exception = e;
- }
- }
-
- Throwable exception;
- int countRead = 0;
- }
-
- @MediumTest
- public void testA() throws Exception {
-
- final PipedInputStream in = new PipedInputStream();
- final PipedOutputStream out = new PipedOutputStream(in);
-
- assertEquals(0, in.available());
-
- TestThread reader, writer;
-
- reader = new TestThread() {
- Fibonacci fib = new Fibonacci();
-
- @Override
- public void runTest() throws Exception {
- int readInt;
- byte readByte;
-
- for (; ;) {
- readInt = in.read();
-
- if (readInt == -1) {
- return;
- }
-
- readByte = (byte) readInt;
- assertEquals(readByte, (byte) fib.next());
- countRead++;
- }
- }
- };
-
- reader.start();
-
- writer = new TestThread() {
- Fibonacci fib = new Fibonacci();
-
- @Override
- public void runTest() throws Exception {
- for (int i = 0; i < 2000; i++) {
- int toWrite = fib.next();
- out.write(toWrite);
- }
- out.close();
- }
- };
-
- writer.start();
-
-
- for (; ;) {
- try {
- reader.join(60 * 1000);
- writer.join(1 * 1000);
- break;
- } catch (InterruptedException ex) {
- }
- }
-
- assertEquals(2000, reader.countRead);
-
- if (writer.exception != null) {
- throw new Exception(writer.exception);
- }
- if (reader.exception != null) {
- throw new Exception(reader.exception);
- }
- }
-
- @MediumTest
- public void testB() throws Exception {
- final PipedInputStream in = new PipedInputStream();
- final PipedOutputStream out = new PipedOutputStream(in);
-
- assertEquals(0, in.available());
-
- TestThread reader, writer;
-
- reader = new TestThread() {
- Fibonacci fib = new Fibonacci();
-
- @Override
- public void runTest() throws Exception {
- byte readBytes[] = new byte[5];
- int ret;
-
- for (; ;) {
- int nread = 0;
- while (nread < 5) {
- ret = in.read(readBytes, nread, readBytes.length - nread);
-
- if (ret == -1) {
- return;
- }
- nread += ret;
- }
-
- assertEquals(5, nread);
-
- int readInt = (((int) readBytes[0] & 0xff) << 24)
- | (((int) readBytes[1] & 0xff) << 16)
- | (((int) readBytes[2] & 0xff) << 8)
- | (((int) readBytes[3] & 0xff) << 0);
-
-
- assertEquals(readInt, fib.next());
- assertEquals(0, readBytes[4]);
- countRead++;
- }
- }
- };
-
- reader.start();
-
- writer = new TestThread() {
- Fibonacci fib = new Fibonacci();
-
- @Override
- public void runTest() throws Exception {
- byte writeBytes[] = new byte[5];
- for (int i = 0; i < 2000; i++) {
- int toWrite = fib.next();
- writeBytes[0] = (byte) (toWrite >> 24);
- writeBytes[1] = (byte) (toWrite >> 16);
- writeBytes[2] = (byte) (toWrite >> 8);
- writeBytes[3] = (byte) (toWrite >> 0);
- writeBytes[4] = 0;
- out.write(writeBytes, 0, writeBytes.length);
- }
- out.close();
- }
- };
-
- writer.start();
-
-
- for (; ;) {
- try {
- reader.join(60 * 1000);
- writer.join(1 * 1000);
- break;
- } catch (InterruptedException ex) {
- }
- }
-
- assertEquals(2000, reader.countRead);
-
- if (writer.exception != null) {
- throw new Exception(writer.exception);
- }
- if (reader.exception != null) {
- throw new Exception(reader.exception);
- }
- }
-
- @SmallTest
- public void testC() throws Exception {
- final PipedInputStream in = new PipedInputStream();
- final PipedOutputStream out = new PipedOutputStream(in);
-
- assertEquals(0, in.available());
-
- TestThread reader, writer;
-
- reader = new TestThread() {
- Fibonacci fib = new Fibonacci();
-
- @Override
- public void runTest() throws Exception {
- byte readBytes[] = new byte[1024 * 2];
- int ret;
-
- for (; ;) {
- int nread = 0;
- while (nread < readBytes.length) {
- ret = in.read(readBytes, nread, readBytes.length - nread);
-
- if (ret == -1) {
- return;
- }
- nread += ret;
- }
-
- assertEquals(nread, readBytes.length);
-
- for (int i = 0; i < (readBytes.length - 4); i += 4) {
- int readInt = (((int) readBytes[i + 0] & 0xff) << 24)
- | (((int) readBytes[i + 1] & 0xff) << 16)
- | (((int) readBytes[i + 2] & 0xff) << 8)
- | (((int) readBytes[i + 3] & 0xff) << 0);
-
- assertEquals(readInt, fib.next());
- }
- }
- }
- };
-
- reader.start();
-
- writer = new TestThread() {
- Fibonacci fib = new Fibonacci();
-
- @Override
- public void runTest() throws Exception {
- byte writeBytes[] = new byte[1024 * 2];
- for (int i = 0; i < (writeBytes.length - 4); i += 4) {
- int toWrite = fib.next();
- writeBytes[i + 0] = (byte) (toWrite >> 24);
- writeBytes[i + 1] = (byte) (toWrite >> 16);
- writeBytes[i + 2] = (byte) (toWrite >> 8);
- writeBytes[i + 3] = (byte) (toWrite >> 0);
- }
- out.write(writeBytes, 0, writeBytes.length);
- out.close();
- }
- };
-
- writer.start();
-
-
- for (; ;) {
- try {
- reader.join(60 * 1000);
- writer.join(1 * 100);
- break;
- } catch (InterruptedException ex) {
- }
- }
-
- if (writer.exception != null) {
- throw new Exception(writer.exception);
- }
- if (reader.exception != null) {
- throw new Exception(reader.exception);
- }
- }
-}
diff --git a/tests/CoreTests/android/core/PrintWriterTest.java b/tests/CoreTests/android/core/PrintWriterTest.java
deleted file mode 100644
index 09ee389..0000000
--- a/tests/CoreTests/android/core/PrintWriterTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class PrintWriterTest extends TestCase {
-
- @SmallTest
- public void testPrintWriter() throws Exception {
- String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
- StringWriter aa = new StringWriter();
- PrintWriter a = new PrintWriter(aa);
-
- try {
- a.write(str, 0, 26);
- a.write('X');
-
- assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzX", aa.toString());
-
- a.write("alphabravodelta", 5, 5);
- a.append('X');
- assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzXbravoX", aa.toString());
- a.append("omega");
- assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzXbravoXomega", aa.toString());
- a.print("ZZZ");
- assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzXbravoXomegaZZZ", aa.toString());
- } finally {
- a.close();
- }
-
- StringWriter ba = new StringWriter();
- PrintWriter b = new PrintWriter(ba);
- try {
- b.print(true);
- b.print((char) 'A');
- b.print("BCD".toCharArray());
- b.print((double) 1.2);
- b.print((float) 3);
- b.print((int) 4);
- b.print((long) 5);
- assertEquals("trueABCD1.23.045", ba.toString());
- b.println();
- b.println(true);
- b.println((char) 'A');
- b.println("BCD".toCharArray());
- b.println((double) 1.2);
- b.println((float) 3);
- b.println((int) 4);
- b.println((long) 5);
- b.print("THE END");
- assertEquals("trueABCD1.23.045\ntrue\nA\nBCD\n1.2\n3.0\n4\n5\nTHE END", ba.toString());
- } finally {
- b.close();
- }
- }
-}
diff --git a/tests/CoreTests/android/core/PushbackInputStreamTest.java b/tests/CoreTests/android/core/PushbackInputStreamTest.java
deleted file mode 100644
index 44cfd8a..0000000
--- a/tests/CoreTests/android/core/PushbackInputStreamTest.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.ByteArrayInputStream;
-import java.io.PushbackInputStream;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class PushbackInputStreamTest extends TestCase {
-
- @SmallTest
- public void testPushbackInputStream() throws Exception {
- String str = "AbCdEfGhIjKlM\nOpQrStUvWxYz";
- ByteArrayInputStream aa = new ByteArrayInputStream(str.getBytes());
- ByteArrayInputStream ba = new ByteArrayInputStream(str.getBytes());
- ByteArrayInputStream ca = new ByteArrayInputStream(str.getBytes());
-
- PushbackInputStream a = new PushbackInputStream(aa, 7);
- try {
- a.unread("push".getBytes());
- assertEquals("pushAbCdEfGhIjKlM\nOpQrStUvWxYz", IOUtil.read(a));
- } finally {
- a.close();
- }
-
- PushbackInputStream b = new PushbackInputStream(ba, 9);
- try {
- b.unread('X');
- assertEquals("XAbCdEfGhI", IOUtil.read(b, 10));
- } finally {
- b.close();
- }
-
- PushbackInputStream c = new PushbackInputStream(ca);
- try {
- assertEquals("bdfhjl\nprtvxz", IOUtil.skipRead(c));
- } finally {
- c.close();
- }
- }
-}
diff --git a/tests/CoreTests/android/core/PushbackReaderTest.java b/tests/CoreTests/android/core/PushbackReaderTest.java
deleted file mode 100644
index ef62c28..0000000
--- a/tests/CoreTests/android/core/PushbackReaderTest.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.PushbackReader;
-import java.io.StringReader;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class PushbackReaderTest extends TestCase {
-
- @SmallTest
- public void testPushbackReader() throws Exception {
- String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
- StringReader aa = new StringReader(str);
- StringReader ba = new StringReader(str);
- StringReader ca = new StringReader(str);
-
- PushbackReader a = new PushbackReader(aa, 5);
- try {
- a.unread("PUSH".toCharArray());
- assertEquals("PUSHAbCdEfGhIjKlMnOpQrStUvWxYz", IOUtil.read(a));
- } finally {
- a.close();
- }
-
- PushbackReader b = new PushbackReader(ba, 15);
- try {
- b.unread('X');
- assertEquals("XAbCdEfGhI", IOUtil.read(b, 10));
- } finally {
- b.close();
- }
-
- PushbackReader c = new PushbackReader(ca);
- try {
- assertEquals("bdfhjlnprtvxz", IOUtil.skipRead(c));
- } finally {
- c.close();
- }
- }
-}
diff --git a/tests/CoreTests/android/core/ReflectArrayTest.java b/tests/CoreTests/android/core/ReflectArrayTest.java
deleted file mode 100644
index 20ee8a4..0000000
--- a/tests/CoreTests/android/core/ReflectArrayTest.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.lang.reflect.Array;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Test java.lang.reflect.Array methods.
- */
-public class ReflectArrayTest extends TestCase {
-
- @SmallTest
- public void testSingleInt() throws Exception {
- Object intArray = Array.newInstance(Integer.TYPE, 2);
-
- int[] array = (int[]) intArray;
- array[0] = 5;
- Array.setInt(intArray, 1, 6);
-
- assertEquals(5, Array.getInt(intArray, 0));
- assertEquals(6, array[1]);
-
- try {
- array[2] = 27;
- fail("store should have failed");
- } catch (ArrayIndexOutOfBoundsException abe) {
- // expected
- }
-
- assertEquals(2, array.length);
- assertEquals(Array.getLength(intArray), array.length);
-
- try {
- int[][] wrongArray = (int[][]) intArray;
- fail("cast should have failed");
- } catch (ClassCastException cce) {
- // expected
- }
-
- intArray = Array.newInstance(Integer.TYPE, 0);
- assertEquals(0, Array.getLength(intArray));
- }
-
- @SmallTest
- public void testSingle() throws Exception {
- Object strArray = Array.newInstance(String.class, 2);
-
- String[] array = (String[]) strArray;
- array[0] = "entry zero";
- Array.set(strArray, 1, "entry one");
-
- //System.out.println("array: " + array);
-
- assertEquals("entry zero", Array.get(strArray, 0));
- assertEquals("entry one", array[1]);
-
- assertEquals(2, array.length);
- assertEquals(Array.getLength(strArray), array.length);
- }
-
- @SmallTest
- public void testMultiInt() throws Exception {
- int[] dimensions = {3, 2, 1};
- Object intIntIntArray = Array.newInstance(Integer.TYPE, dimensions);
- int[][][] array3 = (int[][][]) intIntIntArray;
-
- array3[0][0][0] = 123;
- array3[2][1][0] = 456;
-
- try {
- array3[2][1][1] = 768;
- fail("store should have failed");
- } catch (ArrayIndexOutOfBoundsException abe) {
- // expected
- }
-
- //System.out.println("array3: " + array3);
- }
-
- @SmallTest
- public void testMulti() throws Exception {
- int[] dimensions = {1, 2, 3};
- Object strStrStrArray = Array.newInstance(String.class, dimensions);
- String[][][] array3 = (String[][][]) strStrStrArray;
-
- array3[0][0][0] = "zero zero zero";
- array3[0][1][2] = "zero one two";
-
- try {
- array3[1][0][0] = "bad store";
- fail("store should have failed");
- } catch (ArrayIndexOutOfBoundsException abe) {
- // expected
- }
-
- try {
- String[][] array2 = (String[][]) strStrStrArray;
- fail("expecting bad cast");
- } catch (ClassCastException cce) {
- // expected
- }
- //System.out.println("array3: " + array3);
-
-
- int[] dimensions2 = {1, 2};
- strStrStrArray = Array.newInstance(String[].class, dimensions2);
- array3 = (String[][][]) strStrStrArray;
- array3[0][1] = new String[3];
- array3[0][1][2] = "zero one two";
- try {
- array3[1][0][0] = "bad store";
- fail("store should have failed");
- } catch (ArrayIndexOutOfBoundsException abe) {
- // expected
- }
- //System.out.println("array3: " + array3);
- }
-}
-
diff --git a/tests/CoreTests/android/core/RegexTest.java b/tests/CoreTests/android/core/RegexTest.java
deleted file mode 100644
index a7f79e8..0000000
--- a/tests/CoreTests/android/core/RegexTest.java
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import android.test.suitebuilder.annotation.SmallTest;
-import android.text.util.Regex;
-
-import junit.framework.TestCase;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * Tests basic functionality of Pattern and Matcher classes.
- */
-public class RegexTest extends TestCase {
-
- @SmallTest
- public void testMatches() throws Exception {
- /* Tests class Matcher */
-
- Pattern p = Pattern.compile("bcd");
- Matcher m = p.matcher("bcd");
- assertTrue("Should match.", m.matches());
-
- /* Pattern in the middle */
- p = Pattern.compile("bcd");
- m = p.matcher("abcdefg");
- assertFalse("Should not match.", m.matches());
-
- /* Pattern at the head */
- m = p.matcher("bcdefg");
- assertFalse("Should not match.", m.matches());
-
- /* Pattern at the tail */
- m = p.matcher("abcd");
- assertFalse("Should not match.", m.matches());
-
- /* Make sure matches() doesn't change after calls to find() */
- p = Pattern.compile(".*");
- m = p.matcher("abc");
- assertTrue(m.matches());
- assertTrue(m.find());
- assertTrue(m.matches());
-
- p = Pattern.compile(".");
- m = p.matcher("abc");
- assertFalse(m.matches());
- assertTrue(m.find());
- assertFalse(m.matches());
-
- /* Make sure matches() agrees after a reset() */
- m.reset("z");
- assertTrue(m.matches());
-
- m.reset("xyz");
- assertFalse(m.matches());
-
- /* Tests class Pattern */
-
- assertFalse("Erroneously matched partial string. " +
- "See http://b/issue?id=754601", Pattern.matches("er", "xer"));
- assertFalse("Erroneously matched partial string. " +
- "See http://b/issue?id=754601", Pattern.matches("xe", "xer"));
- assertTrue("Generic regex should match.",
- Pattern.matches(".*", "bcd"));
- assertTrue("Grouped regex should match.",
- Pattern.matches("(b(c(d)))", "bcd"));
- assertTrue("Grouped regex should match.",
- Pattern.matches("(b)(c)(d)", "bcd"));
- }
-
- @SmallTest
- public void testGroupCount() throws Exception {
- Pattern p = Pattern.compile(
- "\\b(?:\\+?1)?"
- + "(?:[ -\\.])?"
- + "\\(?(\\d{3})?\\)?"
- + "(?:[ -\\.\\/])?"
- + "(\\d{3})"
- + "(?:[ -\\.])?"
- + "(\\d{4})\\b"
- );
-
- Matcher m = p.matcher("1 (919) 555-1212");
-
- assertEquals("groupCount is incorrect, see http://b/issue?id=759412",
- 3, m.groupCount());
- }
-
- @SmallTest
- public void testGroups() throws Exception {
- Pattern p = Pattern.compile("(b)([c|d])(z*)");
- Matcher m = p.matcher("abcdefg");
-
- /* Must call find() first, otherwise group*() are undefined. */
- assertTrue(m.find());
-
- assertEquals(3, m.groupCount());
-
- assertEquals("bc", m.group(0));
- assertEquals("b", m.group(1));
- assertEquals("c", m.group(2));
- assertEquals("", m.group(3));
- }
-
- @SmallTest
- public void testFind() throws Exception {
- Pattern p = Pattern.compile(".");
- Matcher m = p.matcher("abc");
-
- assertTrue(m.find());
- assertEquals("a", m.group(0));
-
- assertTrue(m.find());
- assertEquals("b", m.group(0));
-
- assertTrue(m.find());
- assertEquals("c", m.group(0));
-
- assertFalse(m.find());
- }
-
- @SmallTest
- public void testReplaceAll() throws Exception {
- // Begins with non-matching text, ends with matching text
- Pattern p = Pattern.compile("a*b");
- Matcher m = p.matcher("fooaabfooaabfooabfoob");
-
- String r = m.replaceAll("-");
- assertEquals("foo-foo-foo-foo-", r);
-
- // Begins with matching text, ends with non-matching text
- p = Pattern.compile("a*b");
- m = p.matcher("aabfooaabfooabfoobfoo");
-
- r = m.replaceAll("-");
- assertEquals("-foo-foo-foo-foo", r);
- }
-
- @SmallTest
- public void testReplaceFirst() throws Exception {
- // Begins with non-matching text, ends with matching text
- Pattern p = Pattern.compile("a*b");
- Matcher m = p.matcher("fooaabfooaabfooabfoob");
-
- String r = m.replaceFirst("-");
- assertEquals("foo-fooaabfooabfoob", r);
-
- // Begins with matching text, ends with non-matching text
- p = Pattern.compile("a*b");
- m = p.matcher("aabfooaabfooabfoobfoo");
-
- r = m.replaceFirst("-");
- assertEquals("-fooaabfooabfoobfoo", r);
- }
-
- @SmallTest
- public void testSplit() throws Exception {
- Pattern p = Pattern.compile(":");
- String[] strings;
-
- strings = p.split("boo:and:foo");
- assertEquals(3, strings.length);
- assertEquals("boo", strings[0]);
- assertEquals("and", strings[1]);
- assertEquals("foo", strings[2]);
-
- strings = p.split("boo:and:foo", 2);
- assertEquals(2, strings.length);
- assertEquals("boo", strings[0]);
- assertEquals("and:foo", strings[1]);
-
- strings = p.split("boo:and:foo", 5);
- assertEquals(3, strings.length);
- assertEquals("boo", strings[0]);
- assertEquals("and", strings[1]);
- assertEquals("foo", strings[2]);
-
- strings = p.split("boo:and:foo", -2);
- assertEquals(3, strings.length);
- assertEquals("boo", strings[0]);
- assertEquals("and", strings[1]);
- assertEquals("foo", strings[2]);
-
- p = Pattern.compile("o");
-
- strings = p.split("boo:and:foo");
- assertEquals(3, strings.length);
- assertEquals("b", strings[0]);
- assertEquals("", strings[1]);
- assertEquals(":and:f", strings[2]);
-
- strings = p.split("boo:and:foo", 5);
- assertEquals(5, strings.length);
- assertEquals("b", strings[0]);
- assertEquals("", strings[1]);
- assertEquals(":and:f", strings[2]);
- assertEquals("", strings[3]);
- assertEquals("", strings[4]);
-
- strings = p.split("boo:and:foo", -2);
- assertEquals(5, strings.length);
- assertEquals("b", strings[0]);
- assertEquals("", strings[1]);
- assertEquals(":and:f", strings[2]);
- assertEquals("", strings[3]);
- assertEquals("", strings[4]);
-
- strings = p.split("boo:and:foo", 0);
- assertEquals(3, strings.length);
- assertEquals("b", strings[0]);
- assertEquals("", strings[1]);
- assertEquals(":and:f", strings[2]);
- }
-
- // -------------------------------------------------------------------
- // Regression test for #1172774: Bug in Regex.java
- // Regression test for #1216887: Regular expression match is very slow
- public static final Pattern TOP_LEVEL_DOMAIN_PATTERN = Pattern.compile(
- "((aero|arpa|asia|a[cdefgilmnoqrstuwxz])"
- + "|(biz|b[abdefghijmnorstvwyz])"
- + "|(cat|com|coop|c[acdfghiklmnoruvxyz])"
- + "|d[ejkmoz]"
- + "|(edu|e[cegrstu])"
- + "|f[ijkmor]"
- + "|(gov|g[abdefghilmnpqrstuwy])"
- + "|h[kmnrtu]"
- + "|(info|int|i[delmnoqrst])"
- + "|(jobs|j[emop])"
- + "|k[eghimnrwyz]"
- + "|l[abcikrstuvy]"
- + "|(mil|mobi|museum|m[acdghklmnopqrstuvwxyz])"
- + "|(name|net|n[acefgilopruz])"
- + "|(org|om)"
- + "|(pro|p[aefghklmnrstwy])"
- + "|qa"
- + "|r[eouw]"
- + "|s[abcdeghijklmnortuvyz]"
- + "|(tel|travel|t[cdfghjklmnoprtvwz])"
- + "|u[agkmsyz]"
- + "|v[aceginu]"
- + "|w[fs]"
- + "|y[etu]"
- + "|z[amw])");
-
- public static final Pattern EMAIL_ADDRESS_PATTERN = Pattern.compile(
- "[\\+a-zA-Z0-9\\.\\_\\%\\-]+\\@"
- + "(("
- + "[a-zA-Z0-9]\\.|"
- + "([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]\\.)+)"
- + TOP_LEVEL_DOMAIN_PATTERN
- + ")");
-
- @SmallTest
- public void testMonsterRegexCorrectness() {
- assertTrue(EMAIL_ADDRESS_PATTERN.matcher("a+b@gmail.com").matches());
- }
-
- @SmallTest
- public void testMonsterRegexPerformance() {
- android.util.Log.e("RegexTest", "RegEx performance test started.");
- long t0 = System.currentTimeMillis();
- Matcher m = EMAIL_ADDRESS_PATTERN.matcher("donot repeate@RC8jjjjjjjjjjjjjjj");
- assertFalse(m.find());
- long t1 = System.currentTimeMillis();
- android.util.Log.e("RegexTest", "RegEx performance test finished, " +
- "took " + (t1 - t0) + " ms.");
- }
-
- //
- // -------------------------------------------------------------------
-
-}
diff --git a/tests/CoreTests/android/core/RequestAPITest.java b/tests/CoreTests/android/core/RequestAPITest.java
deleted file mode 100644
index d89f5ae..0000000
--- a/tests/CoreTests/android/core/RequestAPITest.java
+++ /dev/null
@@ -1,483 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import android.net.http.RequestHandle;
-import android.net.http.RequestQueue;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.Suppress;
-import android.util.Log;
-import android.webkit.CookieSyncManager;
-import com.google.android.collect.Maps;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Container class for all RequestAPI tests
- */
-//http://b/issue?id=1200337
-@Suppress
-public class RequestAPITest extends AndroidTestCase implements HttpConstants {
- private static final String LOGTAG = "http";
-
- /*
- Other tests to write
- GET, HEAD, POST with differing parameters to RequestQueue
- More reuse and pipelining tests - testing for server closing unexpectedly
- */
-
- // Sync object for synchronizing end of each test that does communications
- public static Object syncObj = new Object();
-
- private RequestQueue mRequestQueue;
- private TestWebServer mTestWebServer;
-
- protected void setUp() throws Exception {
- super.setUp();
- Log.d(LOGTAG, "Base setup context = " + mContext);
- mRequestQueue = new RequestQueue(mContext);
- CookieSyncManager.createInstance(mContext);
-
- mTestWebServer = new TestWebServer();
- mTestWebServer.initServer(8080, true);
- }
-
- protected void tearDown() throws Exception {
- Log.d(LOGTAG, "Base tearDown");
- mTestWebServer.close();
- Log.d(LOGTAG, "Base teardown done");
-
- super.tearDown();
- }
-
- public void verifyFailure(Map<String, String> headers) {
- try {
- RequestHandle handle =
- mRequestQueue.queueRequest(
- "http://localhost:8080/test1", "GET", headers, null,
- null, 0, false);
-
- handle.waitUntilComplete();
- fail("expected exception not thrown");
- } catch (RuntimeException e) {
- // expected
- }
- }
-
- public void testRequestAddNullHeader() throws Exception {
- /**
- * Test Request.addHeader throws a NullPointerException if a null
- * header is attempted to be set
- */
- Log.d(LOGTAG, "testRequestAddNullHeader start ");
- Map<String, String> headers = Maps.newHashMap();
- headers.put(null, null);
- verifyFailure(headers);
- Log.d(LOGTAG, "testRequestAddNullHeader - returning");
- }
-
- public void testRequestAddNullValue() throws Exception {
- /**
- * Test Request.addHeader throws a RuntimeException if a null
- * value is attempted to be set
- */
- Log.d(LOGTAG, "testRequestAddNullValue start ");
- Map<String, String> headers = Maps.newHashMap();
- headers.put("TestHeader", null);
- verifyFailure(headers);
- Log.d(LOGTAG, "testRequestAddNullValue - returning");
- }
-
- public void testRequestAddEmptyValue() throws Exception {
- /**
- * Test Request.addEmptyValue throws a RuntimeException if an empty
- * header is attempted to be set
- */
- Log.d(LOGTAG, "testRequestAddEmptyValue start ");
- Map<String, String> headers = Maps.newHashMap();
- headers.put("TestHeader", "");
- verifyFailure(headers);
- Log.d(LOGTAG, "testRequestAddEmptyValue - returning");
- }
-
- public void verifySuccess(Map<String, String> headers) {
- mTestWebServer.setKeepAlive(false);
- RequestHandle handle = mRequestQueue.queueRequest(
- "http://localhost:8080/test1", "GET", headers, null,
- null, 0, false);
- handle.waitUntilComplete();
- }
-
- public void testRequestAddHeader() throws Exception {
- /**
- * Test Request.addHeader with a valid header and value can be set without
- * generating and exception
- */
- Log.d(LOGTAG, "testRequestAddHeader start ");
- Map<String, String> headers = Maps.newHashMap();
- headers.put("TestHeader", "RequestAddHeader");
- verifySuccess(headers);
- Log.d(LOGTAG, "testRequestAddHeader - returning");
- }
-
- public void testRequestAddMultiHeader() throws Exception {
- /**
- * Test multiple calls to Request.addHeader with valid headers and values
- * can be set without generating and exception
- */
- Log.d(LOGTAG, "testRequestAddMultiHeader start ");
- Map<String, String> headers = Maps.newHashMap();
- headers.put("TestHeader", "RequestAddMultiHeader");
- headers.put("TestHeader2", "RequestAddMultiHeader");
- headers.put("TestHeader3", "RequestAddMultiHeader");
- verifySuccess(headers);
- Log.d(LOGTAG, "testRequestAddMultiHeader - returning");
- }
-
- public void testRequestAddSameHeader() throws Exception {
- /**
- * Test multiple calls to Request.addHeader with valid identical headers
- * and values can be set without generating and exception
- */
- Log.d(LOGTAG, "testRequestAddSameHeader start ");
- Map<String, String> headers = Maps.newHashMap();
- headers.put("TestHeader", "RequestAddSameHeader");
- headers.put("TestHeader", "RequestAddSameHeader");
- headers.put("TestHeader", "RequestAddSameHeader");
- verifySuccess(headers);
- Log.d(LOGTAG, "testRequestAddSameHeader - returning");
- }
-
- public void testRequestAddNullHeaders() throws Exception {
- /**
- * Test Request.addHeaders with a null header map. This should not generate
- * any exceptions but accept that there are no headers to add.
- */
- Log.d(LOGTAG, "testRequestAddNullHeaders start ");
- verifySuccess(null);
- Log.d(LOGTAG, "testRequestAddNullHeaders - returning");
- }
-
- public void testGet() throws Exception {
- /**
- * Test sending a GET request. Test will pass if the events received
- * correspond with the expected response. This should respond with the
- * test data requested.
- */
- TestEventHandler testEventHandler = new TestEventHandler();
-
- mTestWebServer.setKeepAlive(false);
-
- Log.d(LOGTAG, "testGet start ");
-
- // Load up expected response
- testEventHandler.expectStatus(200);
- testEventHandler.expectHeaders();
- testEventHandler.expectHeaderAdd(requestHeaders[REQ_CONNECTION], "Close");
- testEventHandler.expectHeaderAdd(requestHeaders[REQ_CONTENT_LENGTH], "52");
- testEventHandler.expectHeaderAdd(requestHeaders[REQ_CONTENT_TYPE], "text/html");
- testEventHandler.expectData(52);
-
- RequestHandle handle = mRequestQueue.queueRequest(
- "http://localhost:8080/test1", "GET", null, testEventHandler,
- null, 0, false);
-
- Log.d(LOGTAG, "testGet - sent request. Waiting");
- handle.waitUntilComplete();
- Log.d(LOGTAG, "testGet - sent request. Notified");
-
- if (!testEventHandler.expectPassed()) {
- Log.d(LOGTAG, testEventHandler.getFailureMessage());
- fail("expectPassed was false " + testEventHandler.getFailureMessage());
- }
- }
-
- public void testReuse() throws Exception {
- /**
- * Test sending two GET requests. Test will pass if the events
- * received correspond with the expected response.
- */
- final String TEST_NAME = "testReuse";
- Log.d(LOGTAG, TEST_NAME + " start ");
-
- TestEventHandler testEventHandler = new TestEventHandler();
-
- // Load up expected response
- testEventHandler.expectStatus(200);
- testEventHandler.expectHeaders();
-
- TestEventHandler testEventHandler2 = new TestEventHandler();
- testEventHandler2.expectStatus(200);
- testEventHandler2.expectHeaders();
-
- mTestWebServer.setAcceptLimit(2);
-
- RequestHandle handle0 = mRequestQueue.queueRequest(
- "http://localhost:8080/test1", "GET", null, testEventHandler,
- null, 0, false);
- handle0.waitUntilComplete();
- RequestHandle handle1 = mRequestQueue.queueRequest(
- "http://localhost:8080/test1", "GET", null, testEventHandler2,
- null, 0, false);
- handle1.waitUntilComplete();
-
- /* It's not correct to use same listener for multiple
- requests. Otherwise there would be no distiction between
- events delivered for either request. */
-
- if (!testEventHandler.expectPassed() && !testEventHandler2.expectPassed()) {
- Log.d(LOGTAG, testEventHandler.getFailureMessage());
- Log.d(LOGTAG, testEventHandler2.getFailureMessage());
- fail();
- }
- Log.d(LOGTAG, TEST_NAME + " - sent request. Notified");
- }
-
- public void testHead() throws Exception {
- /**
- * Test sending a HEAD request. Test will pass if the events
- * delivered match the expected response.
- */
- TestEventHandler testEventHandler = new TestEventHandler();
-
- // Load up expected response
- testEventHandler.expectStatus(200);
- testEventHandler.expectHeaders();
- testEventHandler.expectNoData();
-
- mTestWebServer.setKeepAlive(false);
- mTestWebServer.setAcceptLimit(1);
-
-
- Log.d(LOGTAG, "testHead start - rq = " + mRequestQueue);
-
- RequestHandle handle = mRequestQueue.queueRequest(
- "http://localhost:8080/test1", "HEAD", null, testEventHandler,
- null, 0, false);
-
- Log.d(LOGTAG, "testHead - sent request waiting");
- handle.waitUntilComplete();
-
- if (!testEventHandler.expectPassed()) {
- Log.d(LOGTAG, testEventHandler.getFailureMessage());
- fail("expectPassed was false " + testEventHandler.getFailureMessage());
- }
- }
-
- public void testChunked() throws Exception {
- TestEventHandler testEventHandler = new TestEventHandler();
-
- // Load up expected response
- testEventHandler.expectStatus(200);
- testEventHandler.expectHeaders();
-
- mTestWebServer.setKeepAlive(false);
- mTestWebServer.setChunked(true);
- mTestWebServer.setAcceptLimit(1);
-
-
- Log.d(LOGTAG, "testChunked start - rq = " + mRequestQueue);
-
- RequestHandle handle = mRequestQueue.queueRequest(
- "http://localhost:8080/test1", "GET", null, testEventHandler,
- null, 0, false);
-
- Log.d(LOGTAG, "testChunked - sent request waiting");
- handle.waitUntilComplete();
-
- if (!testEventHandler.expectPassed()) {
- Log.d(LOGTAG, testEventHandler.getFailureMessage());
- fail("expectPassed was false " + testEventHandler.getFailureMessage());
- }
- }
-
- public void verifyRedirect(int statusCode, String testName) throws Exception {
- final String REDIRECT_TO = "http://localhost:8081/test1";
-
- mTestWebServer.setKeepAlive(false);
- TestWebServer redirectWebServer = new TestWebServer();
- redirectWebServer.initServer(8081, true);
- redirectWebServer.setKeepAlive(false);
-
- try {
- TestEventHandler testEventHandler = new TestEventHandler();
- // Load up expected response
- testEventHandler.expectStatus(statusCode);
- testEventHandler.expectHeaders();
- testEventHandler.expectHeaderAdd(requestHeaders[REQ_LOCATION], REDIRECT_TO);
-
- mTestWebServer.setAcceptLimit(1);
- mTestWebServer.setRedirect(REDIRECT_TO, statusCode);
- redirectWebServer.setAcceptLimit(1);
-
- Log.d(LOGTAG, testName + " start - rq = " + mRequestQueue);
-
- RequestHandle requestHandle = mRequestQueue.queueRequest(
- "http://localhost:8080/test1", "GET", null, testEventHandler, null, 0, false);
- Log.d(LOGTAG, testName + " - sent request waiting");
-
- requestHandle.waitUntilComplete();
-
- if (!testEventHandler.expectPassed()) {
- Log.d(LOGTAG, testEventHandler.getFailureMessage());
- fail("expectPassed was false " + testEventHandler.getFailureMessage());
- }
-
- requestHandle.setupRedirect(REDIRECT_TO, statusCode, new HashMap<String, String>());
-
- testEventHandler.expectStatus(HttpConstants.HTTP_OK);
- testEventHandler.expectHeaders();
- testEventHandler.expectHeaderAdd(requestHeaders[REQ_CONTENT_LENGTH], "52");
- testEventHandler.expectHeaderAdd(requestHeaders[REQ_CONTENT_TYPE], "text/html");
- // Server name should be TestWebServer+port
- // we ignore the server tag, so don't test it
- // testEventHandler.expectHeaderAdd(requestHeaders[REQ_SERVER], "TestWebServer8081");
- testEventHandler.expectData(52);
- testEventHandler.expectEndData();
-
- requestHandle.waitUntilComplete();
-
- if (!testEventHandler.expectPassed()) {
- Log.d(LOGTAG, testEventHandler.getFailureMessage());
- fail("expectPassed was false " + testEventHandler.getFailureMessage());
- }
- } finally {
- Log.d(LOGTAG, testName + " - returning");
- redirectWebServer.close();
- }
- }
-
- public void testRedirect301() throws Exception {
- verifyRedirect(HttpConstants.HTTP_MOVED_PERM, "testRedirect301");
- }
-
- public void testRedirect302() throws Exception {
- verifyRedirect(HttpConstants.HTTP_MOVED_TEMP, "testRedirect302");
- }
-
- public void testRedirect303() throws Exception {
- verifyRedirect(HttpConstants.HTTP_SEE_OTHER, "testRedirect303");
- }
-
- public void testRedirect307() throws Exception {
- verifyRedirect(307, "testRedirect307");
- }
-
- public void testGetAndHead() throws Exception {
- /**
- * Test sending a GET and a HEAD request. Test will pass if the
- * event received correspond with the expected response. The two
- * requests should respond the same test data.
- */
- mTestWebServer.setKeepAlive(true);
- mTestWebServer.setAcceptLimit(2);
-
- TestEventHandler testEventHandler = new TestEventHandler();
- testEventHandler.expectStatus(200);
- testEventHandler.expectHeaders();
-
- TestEventHandler leh2 = new TestEventHandler();
- leh2.expectStatus(200);
- leh2.expectHeaders();
-
- RequestHandle handle0 = mRequestQueue.queueRequest(
- "http://localhost:8080/test1", "GET", null, testEventHandler, null, 0, false);
- handle0.waitUntilComplete();
- RequestHandle handle1 = mRequestQueue.queueRequest(
- "http://localhost:8080/test1", "HEAD", null, testEventHandler, null, 0, false);
-
- Log.d(LOGTAG, "testGetAndHead - sent request. Waiting");
- handle1.waitUntilComplete();
-
- if (!testEventHandler.expectPassed() && !leh2.expectPassed()) {
- Log.d(LOGTAG, testEventHandler.getFailureMessage());
- Log.d(LOGTAG, leh2.getFailureMessage());
- fail();
- }
- }
-
- public void testPost() throws Exception {
- /**
- * Test sending a POST request with no body data. Test will pass if the event
- * received correspond with the expected response. This should respond with
- * the test data requested.
- */
- TestEventHandler testEventHandler = new TestEventHandler();
-
- // Load up expected response
- testEventHandler.expectStatus(200);
- testEventHandler.expectHeaders();
- testEventHandler.expectData(52);
-
- mTestWebServer.setKeepAlive(false);
- mTestWebServer.setAcceptLimit(1);
-
- Log.d(LOGTAG, "testPost start - rq = " + mRequestQueue);
-
- RequestHandle handle = mRequestQueue.queueRequest(
- "http://localhost:8080/test1", "POST", null, testEventHandler, null, 0, false);
-
- Log.d(LOGTAG, "testPost - sent request waiting");
- handle.waitUntilComplete();
-
- if (!testEventHandler.expectPassed()) {
- Log.d(LOGTAG, testEventHandler.getFailureMessage());
- fail("expectPassed was false " + testEventHandler.getFailureMessage());
- }
- }
-
-
- public void testPostWithData() throws Exception {
- /**
- * Test sending a POST request with body data. Test will pass if the event
- * received correspond with the expected response. This should respond with
- * the test data requested.
- */
-
- TestEventHandler testEventHandler = new TestEventHandler();
- // Load up expected response
- testEventHandler.expectStatus(200);
- testEventHandler.expectHeaders();
- testEventHandler.expectData(52);
-
- mTestWebServer.setKeepAlive(false);
- mTestWebServer.setAcceptLimit(1);
-
- Log.d(LOGTAG, "testPostWithData start - rq = " + mRequestQueue);
-
- String mBody = TestWebData.postContent;
- int bodyLength = mBody.length();
- if (bodyLength > 0) {
- Log.v(LOGTAG, "testPostWithData: body " + mBody);
- }
- InputStream bodyProvider = new ByteArrayInputStream(mBody.getBytes());
-
- RequestHandle handle = mRequestQueue.queueRequest(
- "http://localhost:8080/test1", "POST", null, testEventHandler, bodyProvider, bodyLength, false);
-
- Log.d(LOGTAG, "testPostWithData - sent request waiting");
- handle.waitUntilComplete();
-
- if (!testEventHandler.expectPassed()) {
- Log.d(LOGTAG, testEventHandler.getFailureMessage());
- fail("expectPassed was false " + testEventHandler.getFailureMessage());
- }
- }
-}
diff --git a/tests/CoreTests/android/core/SQLiteJDBCDriverTest.java b/tests/CoreTests/android/core/SQLiteJDBCDriverTest.java
deleted file mode 100644
index eec82aa..0000000
--- a/tests/CoreTests/android/core/SQLiteJDBCDriverTest.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import java.io.File;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-import java.sql.Statement;
-import android.test.suitebuilder.annotation.MediumTest;
-
-/**
- * Minimal test for JDBC driver
- */
-public class SQLiteJDBCDriverTest extends AbstractJDBCDriverTest {
-
- private File dbFile;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- dbFile = File.createTempFile("sqliteTestDB", null);
- }
-
- @Override
- protected void tearDown() throws Exception {
- if(dbFile != null) {
- dbFile.delete();
- }
- super.tearDown();
- }
-
- @Override
- protected String getConnectionURL() {
- return "jdbc:sqlite:/" + dbFile;
- }
-
- @Override
- protected File getDbFile() {
- return dbFile;
- }
-
- @Override
- protected String getJDBCDriverClassName() {
- return "SQLite.JDBCDriver";
- }
-
- // Regression test for (Noser) #255: PreparedStatement.executeUpdate results
- // in VM crashing with SIGABRT.
- @MediumTest
- public void test_connection3() throws Exception {
- PreparedStatement prst = null;
- Statement st = null;
- Connection conn = null;
- try {
- Class.forName("SQLite.JDBCDriver").newInstance();
- if (dbFile.exists()) {
- dbFile.delete();
- }
- conn = DriverManager.getConnection("jdbc:sqlite:/"
- + dbFile.getPath());
- assertNotNull(conn);
-
- // create table
- st = conn.createStatement();
- String sql = "CREATE TABLE zoo (ZID INTEGER NOT NULL, family VARCHAR (20) NOT NULL, name VARCHAR (20) NOT NULL, PRIMARY KEY(ZID) )";
- st.executeUpdate(sql);
-
- String update = "update zoo set family = ? where name = ?;";
- prst = conn.prepareStatement(update);
- prst.setString(1, "cat");
- prst.setString(2, "Yasha");
- // st = conn.createStatement();
- // st.execute("select * from zoo where family = 'cat'");
- // ResultSet rs = st.getResultSet();
- // assertEquals(0, getCount(rs));
- prst.executeUpdate();
- // st.execute("select * from zoo where family = 'cat'");
- // ResultSet rs1 = st.getResultSet();
- // assertEquals(1, getCount(rs1));
- try {
- prst = conn.prepareStatement("");
- prst.execute();
- fail("SQLException is not thrown");
- } catch (SQLException e) {
- // expected
- }
-
- try {
- conn.prepareStatement(null);
- fail("NPE is not thrown");
- } catch (Exception e) {
- // expected
- }
- try {
- st = conn.createStatement();
- st.execute("drop table if exists zoo");
-
- } catch (SQLException e) {
- fail("Couldn't drop table: " + e.getMessage());
- } finally {
- try {
- st.close();
- conn.close();
- } catch (SQLException ee) {
- }
- }
- } finally {
- try {
- if (prst != null) {
- prst.close();
- }
- if (st != null) {
- st.close();
- }
- } catch (SQLException ee) {
- }
- }
-
- }
-
-}
diff --git a/tests/CoreTests/android/core/SSLSocketTest.java b/tests/CoreTests/android/core/SSLSocketTest.java
deleted file mode 100644
index 922090a..0000000
--- a/tests/CoreTests/android/core/SSLSocketTest.java
+++ /dev/null
@@ -1,872 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import org.apache.commons.codec.binary.Base64;
-
-import java.io.ByteArrayInputStream;
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.security.KeyStore;
-import java.security.cert.X509Certificate;
-import java.util.Random;
-
-import javax.net.ssl.KeyManager;
-import javax.net.ssl.KeyManagerFactory;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.SSLServerSocket;
-import javax.net.ssl.SSLSocket;
-import javax.net.ssl.SSLSocketFactory;
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.X509TrustManager;
-
-public class SSLSocketTest extends TestCase {
-
- private static SSLSocketFactory clientFactory =
- (SSLSocketFactory) SSLSocketFactory.getDefault();
-
- /**
- * Does a number of HTTPS requests on some host and consumes the response.
- * We don't use the HttpsUrlConnection class, but do this on our own
- * with the SSLSocket class. This gives us a chance to test the basic
- * behavior of SSL.
- *
- * @param host The host name the request is being sent to.
- * @param port The port the request is being sent to.
- * @param path The path being requested (e.g. "/index.html").
- * @param outerLoop The number of times we reconnect and do the request.
- * @param innerLoop The number of times we do the request for each
- * connection (using HTTP keep-alive).
- * @param delay The delay after each request (in seconds).
- * @throws IOException When a problem occurs.
- */
- private void fetch(String host, int port, boolean secure, String path,
- int outerLoop, int innerLoop, int delay, int timeout) throws IOException {
- InetSocketAddress address = new InetSocketAddress(host, port);
-
- for (int i = 0; i < outerLoop; i++) {
- // Connect to the remote host
- Socket socket = secure ? clientFactory.createSocket() : new Socket();
- if (timeout >= 0) {
- socket.setKeepAlive(true);
- socket.setSoTimeout(timeout * 1000);
- }
- socket.connect(address);
-
- // Get the streams
- OutputStream output = socket.getOutputStream();
- PrintWriter writer = new PrintWriter(output);
-
- try {
- DataInputStream input = new DataInputStream(socket.getInputStream());
- try {
- for (int j = 0; j < innerLoop; j++) {
- android.util.Log.d("SSLSocketTest",
- "GET https://" + host + path + " HTTP/1.1");
-
- // Send a request
- writer.println("GET https://" + host + path + " HTTP/1.1\r");
- writer.println("Host: " + host + "\r");
- writer.println("Connection: " +
- (j == innerLoop - 1 ? "Close" : "Keep-Alive")
- + "\r");
- writer.println("\r");
- writer.flush();
-
- int length = -1;
- boolean chunked = false;
-
- String line = input.readLine();
-
- if (line == null) {
- throw new IOException("No response from server");
- // android.util.Log.d("SSLSocketTest", "No response from server");
- }
-
- // Consume the headers, check content length and encoding type
- while (line != null && line.length() != 0) {
-// System.out.println(line);
- int dot = line.indexOf(':');
- if (dot != -1) {
- String key = line.substring(0, dot).trim();
- String value = line.substring(dot + 1).trim();
-
- if ("Content-Length".equalsIgnoreCase(key)) {
- length = Integer.valueOf(value);
- } else if ("Transfer-Encoding".equalsIgnoreCase(key)) {
- chunked = "Chunked".equalsIgnoreCase(value);
- }
-
- }
- line = input.readLine();
- }
-
- assertTrue("Need either content length or chunked encoding", length != -1
- || chunked);
-
- // Consume the content itself
- if (chunked) {
- length = Integer.parseInt(input.readLine(), 16);
- while (length != 0) {
- byte[] buffer = new byte[length];
- input.readFully(buffer);
- input.readLine();
- length = Integer.parseInt(input.readLine(), 16);
- }
- input.readLine();
- } else {
- byte[] buffer = new byte[length];
- input.readFully(buffer);
- }
-
- // Sleep for the given number of seconds
- try {
- Thread.sleep(delay * 1000);
- } catch (InterruptedException ex) {
- // Shut up!
- }
- }
- } finally {
- input.close();
- }
- } finally {
- writer.close();
- }
- // Close the connection
- socket.close();
- }
- }
-
- /**
- * Does a single request for each of the hosts. Consumes the response.
- *
- * @throws IOException If a problem occurs.
- */
- public void testSimple() throws IOException {
- fetch("www.fortify.net", 443, true, "/sslcheck.html", 1, 1, 0, 60);
- fetch("mail.google.com", 443, true, "/mail/", 1, 1, 0, 60);
- fetch("www.paypal.com", 443, true, "/", 1, 1, 0, 60);
- fetch("www.yellownet.ch", 443, true, "/", 1, 1, 0, 60);
- }
-
- /**
- * Does repeated requests for each of the hosts, with the connection being
- * closed in between.
- *
- * @throws IOException If a problem occurs.
- */
- public void testRepeatedClose() throws IOException {
- fetch("www.fortify.net", 443, true, "/sslcheck.html", 10, 1, 0, 60);
- fetch("mail.google.com", 443, true, "/mail/", 10, 1, 0, 60);
- fetch("www.paypal.com", 443, true, "/", 10, 1, 0, 60);
- fetch("www.yellownet.ch", 443, true, "/", 10, 1, 0, 60);
- }
-
- /**
- * Does repeated requests for each of the hosts, with the connection being
- * kept alive in between.
- *
- * @throws IOException If a problem occurs.
- */
- public void testRepeatedKeepAlive() throws IOException {
- fetch("www.fortify.net", 443, true, "/sslcheck.html", 1, 10, 0, 60);
- fetch("mail.google.com", 443, true, "/mail/", 1, 10, 0, 60);
-
- // These two don't accept keep-alive
- // fetch("www.paypal.com", 443, "/", 1, 10);
- // fetch("www.yellownet.ch", 443, "/", 1, 10);
- }
-
- /**
- * Does repeated requests for each of the hosts, with the connection being
- * closed in between. Waits a couple of seconds after each request, but
- * stays within a reasonable timeout. Expectation is that the connection
- * stays open.
- *
- * @throws IOException If a problem occurs.
- */
- public void testShortTimeout() throws IOException {
- fetch("www.fortify.net", 443, true, "/sslcheck.html", 1, 10, 5, 60);
- fetch("mail.google.com", 443, true, "/mail/", 1, 10, 5, 60);
-
- // These two don't accept keep-alive
- // fetch("www.paypal.com", 443, "/", 1, 10);
- // fetch("www.yellownet.ch", 443, "/", 1, 10);
- }
-
- /**
- * Does repeated requests for each of the hosts, with the connection being
- * kept alive in between. Waits a longer time after each request.
- * Expectation is that the host closes the connection.
- */
- public void testLongTimeout() {
- // Seems to have a veeeery long timeout.
- // fetch("www.fortify.net", 443, "/sslcheck.html", 1, 2, 60);
-
- // Google has a 60s timeout, so 90s of waiting should trigger it.
- try {
- fetch("mail.google.com", 443, true, "/mail/", 1, 2, 90, 180);
- fail("Oops - timeout expected.");
- } catch (IOException ex) {
- // Expected.
- }
-
- // These two don't accept keep-alive
- // fetch("www.paypal.com", 443, "/", 1, 10);
- // fetch("www.yellownet.ch", 443, "/", 1, 10);
- }
-
- /**
- * Does repeated requests for each of the hosts, with the connection being
- * closed in between. Waits a longer time after each request. Expectation is
- * that the host closes the connection.
- */
- // These two need manual interaction to reproduce...
- public void xxtestBrokenConnection() {
- try {
- fetch("www.fortify.net", 443, true, "/sslcheck.html", 1, 2, 60, 60);
- fail("Oops - timeout expected.");
- } catch (IOException ex) {
- android.util.Log.d("SSLSocketTest", "Exception", ex);
- // Expected.
- }
-
- // These two don't accept keep-alive
- // fetch("www.paypal.com", 443, "/", 1, 10);
- // fetch("www.yellownet.ch", 443, "/", 1, 10);
- }
-
- /**
- * Does repeated requests for each of the hosts, with the connection being
- * closed in between. Waits a longer time after each request. Expectation is
- * that the host closes the connection.
- */
- // These two need manual interaction to reproduce...
- public void xxtestBrokenConnection2() {
- try {
- fetch("www.heise.de", 80, false, "/index.html", 1, 2, 60, 60);
- fail("Oops - timeout expected.");
- } catch (IOException ex) {
- android.util.Log.d("SSLSocketTest", "Exception", ex);
- // Expected.
- }
-
- // These two don't accept keep-alive
- // fetch("www.paypal.com", 443, "/", 1, 10);
- // fetch("www.yellownet.ch", 443, "/", 1, 10);
- }
-
- /**
- * Regression test for 865926: SSLContext.init() should
- * use default values for null arguments.
- */
- public void testContextInitNullArgs() throws Exception {
- SSLContext ctx = SSLContext.getInstance("TLS");
- ctx.init(null, null, null);
- }
-
- /**
- * Regression test for 963650: javax.net.ssl.KeyManager has no implemented
- * (documented?) algorithms.
- */
- public void testDefaultAlgorithms() throws Exception {
- SSLContext ctx = SSLContext.getInstance("TLS");
- KeyManagerFactory kmf = KeyManagerFactory.getInstance("X509");
- KeyStore ks = KeyStore.getInstance("BKS");
-
- assertEquals("X509", kmf.getAlgorithm());
- assertEquals("X509", KeyManagerFactory.getDefaultAlgorithm());
-
- assertEquals("BKS", ks.getType());
- assertEquals("BKS", KeyStore.getDefaultType());
- }
-
- /**
- * Regression test for problem where close() resulted in a hand if
- * a different thread was sitting in a blocking read or write.
- */
- public void testMultithreadedClose() throws Exception {
- InetSocketAddress address = new InetSocketAddress("www.fortify.net", 443);
- final Socket socket = clientFactory.createSocket();
- socket.connect(address);
-
- Thread reader = new Thread() {
- @Override
- public void run() {
- try {
- byte[] buffer = new byte[512];
- InputStream stream = socket.getInputStream();
- socket.getInputStream().read(buffer);
- } catch (Exception ex) {
- android.util.Log.d("SSLSocketTest",
- "testMultithreadedClose() reader got " + ex.toString());
- }
- }
- };
-
- Thread closer = new Thread() {
- @Override
- public void run() {
- try {
- Thread.sleep(5000);
- socket.close();
- } catch (Exception ex) {
- android.util.Log.d("SSLSocketTest",
- "testMultithreadedClose() closer got " + ex.toString());
- }
- }
- };
-
- android.util.Log.d("SSLSocketTest", "testMultithreadedClose() starting reader...");
- reader.start();
- android.util.Log.d("SSLSocketTest", "testMultithreadedClose() starting closer...");
- closer.start();
-
- long t1 = System.currentTimeMillis();
- android.util.Log.d("SSLSocketTest", "testMultithreadedClose() joining reader...");
- reader.join(30000);
- android.util.Log.d("SSLSocketTest", "testMultithreadedClose() joining closer...");
- closer.join(30000);
- long t2 = System.currentTimeMillis();
-
- assertTrue("Concurrent close() hangs", t2 - t1 < 30000);
- }
-
- private int multithreadedFetchRuns;
-
- private int multithreadedFetchWins;
-
- private Random multithreadedFetchRandom = new Random();
-
- /**
- * Regression test for problem where multiple threads with multiple SSL
- * connection would cause problems due to either missing native locking
- * or the slowness of the SSL connections.
- */
- public void testMultithreadedFetch() {
- Thread[] threads = new Thread[10];
-
- for (int i = 0; i < threads.length; i++) {
- threads[i] = new Thread() {
- @Override
- public void run() {
- for (int i = 0; i < 10; i++) {
- try {
- multithreadedFetchRuns++;
- switch (multithreadedFetchRandom.nextInt(4)) {
- case 0: {
- fetch("www.fortify.net", 443,
- true, "/sslcheck.html", 1, 1, 0, 60);
- break;
- }
-
- case 1: {
- fetch("mail.google.com", 443, true, "/mail/", 1, 1, 0, 60);
- break;
- }
-
- case 2: {
- fetch("www.paypal.com", 443, true, "/", 1, 1, 0, 60);
- break;
- }
-
- case 3: {
- fetch("www.yellownet.ch", 443, true, "/", 1, 1, 0, 60);
- break;
- }
- }
- multithreadedFetchWins++;
- } catch (Exception ex) {
- android.util.Log.d("SSLSocketTest",
- "testMultithreadedFetch() got Exception", ex);
- }
- }
- }
- };
- threads[i].start();
-
- android.util.Log.d("SSLSocketTest", "testMultithreadedFetch() started thread #" + i);
- }
-
- for (int i = 0; i < threads.length; i++) {
- try {
- threads[i].join();
- android.util.Log.d("SSLSocketTest", "testMultithreadedFetch() joined thread #" + i);
- } catch (InterruptedException ex) {
- // Not interested.
- }
- }
-
- assertTrue("At least 95% of multithreaded SSL connections must succeed",
- multithreadedFetchWins >= (multithreadedFetchRuns * 95) / 100);
- }
-
- // -------------------------------------------------------------------------
- // Regression test for #1204316: Missing client cert unit test. Passes on
- // both Android and the RI. To use on the RI, install Apache Commons and
- // replace the references to the base64-encoded keys by the JKS versions.
- // -------------------------------------------------------------------------
-
- /**
- * Defines the keystore contents for the server, JKS version. Holds just a
- * single self-generated key. The subject name is "Test Server".
- */
- private static final String SERVER_KEYS_JKS =
- "/u3+7QAAAAIAAAABAAAAAQAFbXlrZXkAAAEaWFfBeAAAArowggK2MA4GCisGAQQBKgIRAQEFAASC" +
- "AqI2kp5XjnF8YZkhcF92YsJNQkvsmH7zqMM87j23zSoV4DwyE3XeC/gZWq1ToScIhoqZkzlbWcu4" +
- "T/Zfc/DrfGk/rKbBL1uWKGZ8fMtlZk8KoAhxZk1JSyJvdkyKxqmzUbxk1OFMlN2VJNu97FPVH+du" +
- "dvjTvmpdoM81INWBW/1fZJeQeDvn4mMbbe0IxgpiLnI9WSevlaDP/sm1X3iO9yEyzHLL+M5Erspo" +
- "Cwa558fOu5DdsICMXhvDQxjWFKFhPHnKtGe+VvwkG9/bAaDgx3kfhk0w5zvdnkKb+8Ed9ylNRzdk" +
- "ocAa/mxlMTOsTvDKXjjsBupNPIIj7OP4GNnZaxkJjSs98pEO67op1GX2qhy6FSOPNuq8k/65HzUc" +
- "PYn6voEeh6vm02U/sjEnzRevQ2+2wXoAdp0EwtQ/DlMe+NvcwPGWKuMgX4A4L93DZGb04N2VmAU3" +
- "YLOtZwTO0LbuWrcCM/q99G/7LcczkxIVrO2I/rh8RXVczlf9QzcrFObFv4ATuspWJ8xG7DhsMbnk" +
- "rT94Pq6TogYeoz8o8ZMykesAqN6mt/9+ToIemmXv+e+KU1hI5oLwWMnUG6dXM6hIvrULY6o+QCPH" +
- "172YQJMa+68HAeS+itBTAF4Clm/bLn6reHCGGU6vNdwU0lYldpiOj9cB3t+u2UuLo6tiFWjLf5Zs" +
- "EQJETd4g/EK9nHxJn0GAKrWnTw7pEHQJ08elzUuy04C/jEEG+4QXU1InzS4o/kR0Sqz2WTGDoSoq" +
- "ewuPRU5bzQs/b9daq3mXrnPtRBL6HfSDAdpTK76iHqLCGdqx3avHjVSBm4zFvEuYBCev+3iKOBmg" +
- "yh7eQRTjz4UOWfy85omMBr7lK8PtfVBDzOXpasxS0uBgdUyBDX4tO6k9jZ8a1kmQRQAAAAEABVgu" +
- "NTA5AAACSDCCAkQwggGtAgRIR8SKMA0GCSqGSIb3DQEBBAUAMGkxCzAJBgNVBAYTAlVTMRMwEQYD" +
- "VQQIEwpDYWxpZm9ybmlhMQwwCgYDVQQHEwNNVFYxDzANBgNVBAoTBkdvb2dsZTEQMA4GA1UECxMH" +
- "QW5kcm9pZDEUMBIGA1UEAxMLVGVzdCBTZXJ2ZXIwHhcNMDgwNjA1MTA0ODQyWhcNMDgwOTAzMTA0" +
- "ODQyWjBpMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEMMAoGA1UEBxMDTVRWMQ8w" +
- "DQYDVQQKEwZHb29nbGUxEDAOBgNVBAsTB0FuZHJvaWQxFDASBgNVBAMTC1Rlc3QgU2VydmVyMIGf" +
- "MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwoC6chqCI84rj1PrXuJgbiit4EV909zR6N0jNlYfg" +
- "itwB39bP39wH03rFm8T59b3mbSptnGmCIpLZn25KPPFsYD3JJ+wFlmiUdEP9H05flfwtFQJnw9uT" +
- "3rRIdYVMPcQ3RoZzwAMliGr882I2thIDbA6xjGU/1nRIdvk0LtxH3QIDAQABMA0GCSqGSIb3DQEB" +
- "BAUAA4GBAJn+6YgUlY18Ie+0+Vt8oEi81DNi/bfPrAUAh63fhhBikx/3R9dl3wh09Z6p7cIdNxjW" +
- "n2ll+cRW9eqF7z75F0Omm0C7/KAEPjukVbszmzeU5VqzkpSt0j84YWi+TfcHRrfvhLbrlmGITVpY" +
- "ol5pHLDyqGmDs53pgwipWqsn/nEXEBgj3EoqPeqHbDf7YaP8h/5BSt0=";
-
- /**
- * Defines the keystore contents for the server, BKS version. Holds just a
- * single self-generated key. The subject name is "Test Server".
- */
- private static final String SERVER_KEYS_BKS =
- "AAAAAQAAABQDkebzoP1XwqyWKRCJEpn/t8dqIQAABDkEAAVteWtleQAAARpYl20nAAAAAQAFWC41" +
- "MDkAAAJNMIICSTCCAbKgAwIBAgIESEfU1jANBgkqhkiG9w0BAQUFADBpMQswCQYDVQQGEwJVUzET" +
- "MBEGA1UECBMKQ2FsaWZvcm5pYTEMMAoGA1UEBxMDTVRWMQ8wDQYDVQQKEwZHb29nbGUxEDAOBgNV" +
- "BAsTB0FuZHJvaWQxFDASBgNVBAMTC1Rlc3QgU2VydmVyMB4XDTA4MDYwNTExNTgxNFoXDTA4MDkw" +
- "MzExNTgxNFowaTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExDDAKBgNVBAcTA01U" +
- "VjEPMA0GA1UEChMGR29vZ2xlMRAwDgYDVQQLEwdBbmRyb2lkMRQwEgYDVQQDEwtUZXN0IFNlcnZl" +
- "cjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0LIdKaIr9/vsTq8BZlA3R+NFWRaH4lGsTAQy" +
- "DPMF9ZqEDOaL6DJuu0colSBBBQ85hQTPa9m9nyJoN3pEi1hgamqOvQIWcXBk+SOpUGRZZFXwniJV" +
- "zDKU5nE9MYgn2B9AoiH3CSuMz6HRqgVaqtppIe1jhukMc/kHVJvlKRNy9XMCAwEAATANBgkqhkiG" +
- "9w0BAQUFAAOBgQC7yBmJ9O/eWDGtSH9BH0R3dh2NdST3W9hNZ8hIa8U8klhNHbUCSSktZmZkvbPU" +
- "hse5LI3dh6RyNDuqDrbYwcqzKbFJaq/jX9kCoeb3vgbQElMRX8D2ID1vRjxwlALFISrtaN4VpWzV" +
- "yeoHPW4xldeZmoVtjn8zXNzQhLuBqX2MmAAAAqwAAAAUvkUScfw9yCSmALruURNmtBai7kQAAAZx" +
- "4Jmijxs/l8EBaleaUru6EOPioWkUAEVWCxjM/TxbGHOi2VMsQWqRr/DZ3wsDmtQgw3QTrUK666sR" +
- "MBnbqdnyCyvM1J2V1xxLXPUeRBmR2CXorYGF9Dye7NkgVdfA+9g9L/0Au6Ugn+2Cj5leoIgkgApN" +
- "vuEcZegFlNOUPVEs3SlBgUF1BY6OBM0UBHTPwGGxFBBcetcuMRbUnu65vyDG0pslT59qpaR0TMVs" +
- "P+tcheEzhyjbfM32/vwhnL9dBEgM8qMt0sqF6itNOQU/F4WGkK2Cm2v4CYEyKYw325fEhzTXosck" +
- "MhbqmcyLab8EPceWF3dweoUT76+jEZx8lV2dapR+CmczQI43tV9btsd1xiBbBHAKvymm9Ep9bPzM" +
- "J0MQi+OtURL9Lxke/70/MRueqbPeUlOaGvANTmXQD2OnW7PISwJ9lpeLfTG0LcqkoqkbtLKQLYHI" +
- "rQfV5j0j+wmvmpMxzjN3uvNajLa4zQ8l0Eok9SFaRr2RL0gN8Q2JegfOL4pUiHPsh64WWya2NB7f" +
- "V+1s65eA5ospXYsShRjo046QhGTmymwXXzdzuxu8IlnTEont6P4+J+GsWk6cldGbl20hctuUKzyx" +
- "OptjEPOKejV60iDCYGmHbCWAzQ8h5MILV82IclzNViZmzAapeeCnexhpXhWTs+xDEYSKEiG/camt" +
- "bhmZc3BcyVJrW23PktSfpBQ6D8ZxoMfF0L7V2GQMaUg+3r7ucrx82kpqotjv0xHghNIm95aBr1Qw" +
- "1gaEjsC/0wGmmBDg1dTDH+F1p9TInzr3EFuYD0YiQ7YlAHq3cPuyGoLXJ5dXYuSBfhDXJSeddUkl" +
- "k1ufZyOOcskeInQge7jzaRfmKg3U94r+spMEvb0AzDQVOKvjjo1ivxMSgFRZaDb/4qw=";
-
- /**
- * Defines the keystore contents for the client, JKS version. Holds just a
- * single self-generated key. The subject name is "Test Client".
- */
- private static final String CLIENT_KEYS_JKS =
- "/u3+7QAAAAIAAAABAAAAAQAFbXlrZXkAAAEaWFhyMAAAArkwggK1MA4GCisGAQQBKgIRAQEFAASC" +
- "AqGVSfXolBStZy4nnRNn4fAr+S7kfU2BS23wwW8uB2Ru3GvtLzlK9q08Gvq/LNqBafjyFTVL5FV5" +
- "SED/8YomO5a98GpskSeRvytCiTBLJdgGhws5TOGekgIAcBROPGIyOtJPQ0HfOQs+BqgzGDHzHQhw" +
- "u/8Tm6yQwiP+W/1I9B1QnaEztZA3mhTyMMJsmsFTYroGgAog885D5Cmzd8sYGfxec3R6I+xcmBAY" +
- "eibR5kGpWwt1R+qMvRrtBqh5r6WSKhCBNax+SJVbtUNRiKyjKccdJg6fGqIWWeivwYTy0OhjA6b4" +
- "NiZ/ZZs5pxFGWUj/Rlp0RYy8fCF6aw5/5s4Bf4MI6dPSqMG8Hf7sJR91GbcELyzPdM0h5lNavgit" +
- "QPEzKeuDrGxhY1frJThBsNsS0gxeu+OgfJPEb/H4lpYX5IvuIGbWKcxoO9zq4/fimIZkdA8A+3eY" +
- "mfDaowvy65NBVQPJSxaOyFhLHfeLqOeCsVENAea02vA7andZHTZehvcrqyKtm+z8ncHGRC2H9H8O" +
- "jKwKHfxxrYY/jMAKLl00+PBb3kspO+BHI2EcQnQuMw/zr83OR9Meq4TJ0TMuNkApZELAeFckIBbS" +
- "rBr8NNjAIfjuCTuKHhsTFWiHfk9ZIzigxXagfeDRiyVc6khOuF/bGorj23N2o7Rf3uLoU6PyXWi4" +
- "uhctR1aL6NzxDoK2PbYCeA9hxbDv8emaVPIzlVwpPK3Ruvv9mkjcOhZ74J8bPK2fQmbplbOljcZi" +
- "tZijOfzcO/11JrwhuJZRA6wanTqHoujgChV9EukVrmbWGGAcewFnAsSbFXIik7/+QznXaDIt5NgL" +
- "H/Bcz4Z/fdV7Ae1eUaxKXdPbI//4J+8liVT/d8awjW2tldIaDlmGMR3aoc830+3mAAAAAQAFWC41" +
- "MDkAAAJIMIICRDCCAa0CBEhHxLgwDQYJKoZIhvcNAQEEBQAwaTELMAkGA1UEBhMCVVMxEzARBgNV" +
- "BAgTCkNhbGlmb3JuaWExDDAKBgNVBAcTA01UVjEPMA0GA1UEChMGR29vZ2xlMRAwDgYDVQQLEwdB" +
- "bmRyb2lkMRQwEgYDVQQDEwtUZXN0IENsaWVudDAeFw0wODA2MDUxMDQ5MjhaFw0wODA5MDMxMDQ5" +
- "MjhaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMQwwCgYDVQQHEwNNVFYxDzAN" +
- "BgNVBAoTBkdvb2dsZTEQMA4GA1UECxMHQW5kcm9pZDEUMBIGA1UEAxMLVGVzdCBDbGllbnQwgZ8w" +
- "DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAIK3Q+KiFbmCGg422TAo4gggdhMH6FJhiuz8DxRyeMKR" +
- "UAfP4MK0wtc8N42waZ6OKvxpBFUy0BRfBsX0GD4Ku99yu9/tavSigTraeJtwV3WWRRjIqk7L3wX5" +
- "cmgS2KSD43Y0rNUKrko26lnt9N4qiYRBSj+tcAN3Lx9+ptqk1LApAgMBAAEwDQYJKoZIhvcNAQEE" +
- "BQADgYEANb7Q1GVSuy1RPJ0FmiXoMYCCtvlRLkmJphwxovK0cAQK12Vll+yAzBhHiQHy/RA11mng" +
- "wYudC7u3P8X/tBT8GR1Yk7QW3KgFyPafp3lQBBCraSsfrjKj+dCLig1uBLUr4f68W8VFWZWWTHqp" +
- "NMGpCX6qmjbkJQLVK/Yfo1ePaUexPSOX0G9m8+DoV3iyNw6at01NRw==";
-
- /**
- * Defines the keystore contents for the client, BKS version. Holds just a
- * single self-generated key. The subject name is "Test Client".
- */
- private static final String CLIENT_KEYS_BKS =
- "AAAAAQAAABT4Rka6fxbFps98Y5k2VilmbibNkQAABfQEAAVteWtleQAAARpYl+POAAAAAQAFWC41" +
- "MDkAAAJNMIICSTCCAbKgAwIBAgIESEfU9TANBgkqhkiG9w0BAQUFADBpMQswCQYDVQQGEwJVUzET" +
- "MBEGA1UECBMKQ2FsaWZvcm5pYTEMMAoGA1UEBxMDTVRWMQ8wDQYDVQQKEwZHb29nbGUxEDAOBgNV" +
- "BAsTB0FuZHJvaWQxFDASBgNVBAMTC1Rlc3QgQ2xpZW50MB4XDTA4MDYwNTExNTg0NVoXDTA4MDkw" +
- "MzExNTg0NVowaTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExDDAKBgNVBAcTA01U" +
- "VjEPMA0GA1UEChMGR29vZ2xlMRAwDgYDVQQLEwdBbmRyb2lkMRQwEgYDVQQDEwtUZXN0IENsaWVu" +
- "dDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApUvmWsQDHPpbDKK13Yez2/q54tTOmRml/qva" +
- "2K6dZjkjSTW0iRuk7ztaVEvdJpfVIDv1oBsCI51ttyLHROy1epjF+GoL74mJb7fkcd0VOoSOTjtD" +
- "+3GgZkHPAm5YmUYxiJXqxKKJJqMCTIW46eJaA2nAep9QIwZ14/NFAs4ObV8CAwEAATANBgkqhkiG" +
- "9w0BAQUFAAOBgQCJrCr3hZQFDlLIfsSKI1/w+BLvyf4fubOid0pBxfklR8KBNPTiqjSmu7pd/C/F" +
- "1FR8CdZUDoPflZHCOU+fj5r5KUC1HyigY/tEUvlforBpfB0uCF+tXW4DbUfOWhfMtLV4nCOJOOZg" +
- "awfZLJWBJouLKOp427vDftxTSB+Ks8YjlgAAAqwAAAAU+NH6TtrzjyDdCXm5B6Vo7xX5G4YAAAZx" +
- "EAUkcZtmykn7YdaYxC1jRFJ+GEJpC8nZVg83QClVuCSIS8a5f8Hl44Bk4oepOZsPzhtz3RdVzDVi" +
- "RFfoyZFsrk9F5bDTVJ6sQbb/1nfJkLhZFXokka0vND5AXMSoD5Bj1Fqem3cK7fSUyqKvFoRKC3XD" +
- "FQvhqoam29F1rbl8FaYdPvhhZo8TfZQYUyUKwW+RbR44M5iHPx+ykieMe/C/4bcM3z8cwIbYI1aO" +
- "gjQKS2MK9bs17xaDzeAh4sBKrskFGrDe+2dgvrSKdoakJhLTNTBSG6m+rzqMSCeQpafLKMSjTSSz" +
- "+KoQ9bLyax8cbvViGGju0SlVhquloZmKOfHr8TukIoV64h3uCGFOVFtQjCYDOq6NbfRvMh14UVF5" +
- "zgDIGczoD9dMoULWxBmniGSntoNgZM+QP6Id7DBasZGKfrHIAw3lHBqcvB5smemSu7F4itRoa3D8" +
- "N7hhUEKAc+xA+8NKmXfiCBoHfPHTwDvt4IR7gWjeP3Xv5vitcKQ/MAfO5RwfzkYCXQ3FfjfzmsE1" +
- "1IfLRDiBj+lhQSulhRVStKI88Che3M4JUNGKllrc0nt1pWa1vgzmUhhC4LSdm6trTHgyJnB6OcS9" +
- "t2furYjK88j1AuB4921oxMxRm8c4Crq8Pyuf+n3YKi8Pl2BzBtw++0gj0ODlgwut8SrVj66/nvIB" +
- "jN3kLVahR8nZrEFF6vTTmyXi761pzq9yOVqI57wJGx8o3Ygox1p+pWUPl1hQR7rrhUbgK/Q5wno9" +
- "uJk07h3IZnNxE+/IKgeMTP/H4+jmyT4mhsexJ2BFHeiKF1KT/FMcJdSi+ZK5yoNVcYuY8aZbx0Ef" +
- "lHorCXAmLFB0W6Cz4KPP01nD9YBB4olxiK1t7m0AU9zscdivNiuUaB5OIEr+JuZ6dNw=";
- /**
- * Defines the password for the keystore.
- */
- private static final String PASSWORD = "android";
-
- /**
- * Implements basically a dummy TrustManager. It stores the certificate
- * chain it sees, so it can later be queried.
- */
- class TestTrustManager implements X509TrustManager {
-
- private X509Certificate[] chain;
-
- private String authType;
-
- public void checkClientTrusted(X509Certificate[] chain, String authType) {
- this.chain = chain;
- this.authType = authType;
- }
-
- public void checkServerTrusted(X509Certificate[] chain, String authType) {
- this.chain = chain;
- this.authType = authType;
- }
-
- public X509Certificate[] getAcceptedIssuers() {
- return new X509Certificate[0];
- }
-
- public X509Certificate[] getChain() {
- return chain;
- }
-
- public String getAuthType() {
- return authType;
- }
-
- }
-
- /**
- * Implements a test SSL socket server. It wait for a connection on a given
- * port, requests client authentication (if specified), and read 256 bytes
- * from the socket.
- */
- class TestServer implements Runnable {
-
- public static final int CLIENT_AUTH_NONE = 0;
-
- public static final int CLIENT_AUTH_WANTED = 1;
-
- public static final int CLIENT_AUTH_NEEDED = 2;
-
- private TestTrustManager trustManager;
-
- private Exception exception;
-
- private int port;
-
- private int clientAuth;
-
- private boolean provideKeys;
-
- public TestServer(int port, boolean provideKeys, int clientAuth) {
- this.port = port;
- this.clientAuth = clientAuth;
- this.provideKeys = provideKeys;
-
- trustManager = new TestTrustManager();
- }
-
- public void run() {
- try {
- KeyManager[] keyManagers = provideKeys ? getKeyManagers(SERVER_KEYS_BKS) : null;
- TrustManager[] trustManagers = new TrustManager[] { trustManager };
-
- SSLContext sslContext = SSLContext.getInstance("TLS");
- sslContext.init(keyManagers, trustManagers, null);
-
- SSLServerSocket serverSocket = (SSLServerSocket)sslContext.getServerSocketFactory().createServerSocket();
-
- if (clientAuth == CLIENT_AUTH_WANTED) {
- serverSocket.setWantClientAuth(true);
- } else if (clientAuth == CLIENT_AUTH_NEEDED) {
- serverSocket.setNeedClientAuth(true);
- } else {
- serverSocket.setWantClientAuth(false);
- }
-
- serverSocket.bind(new InetSocketAddress(port));
-
- SSLSocket clientSocket = (SSLSocket)serverSocket.accept();
-
- InputStream stream = clientSocket.getInputStream();
-
- for (int i = 0; i < 256; i++) {
- int j = stream.read();
- if (i != j) {
- throw new RuntimeException("Error reading socket, expected " + i + ", got " + j);
- }
- }
-
- stream.close();
- clientSocket.close();
- serverSocket.close();
-
- } catch (Exception ex) {
- exception = ex;
- }
- }
-
- public Exception getException() {
- return exception;
- }
-
- public X509Certificate[] getChain() {
- return trustManager.getChain();
- }
-
- }
-
- /**
- * Implements a test SSL socket client. It open a connection to localhost on
- * a given port and writes 256 bytes to the socket.
- */
- class TestClient implements Runnable {
-
- private TestTrustManager trustManager;
-
- private Exception exception;
-
- private int port;
-
- private boolean provideKeys;
-
- public TestClient(int port, boolean provideKeys) {
- this.port = port;
- this.provideKeys = provideKeys;
-
- trustManager = new TestTrustManager();
- }
-
- public void run() {
- try {
- KeyManager[] keyManagers = provideKeys ? getKeyManagers(CLIENT_KEYS_BKS) : null;
- TrustManager[] trustManagers = new TrustManager[] { trustManager };
-
- SSLContext sslContext = SSLContext.getInstance("TLS");
- sslContext.init(keyManagers, trustManagers, null);
-
- SSLSocket socket = (SSLSocket)sslContext.getSocketFactory().createSocket();
-
- socket.connect(new InetSocketAddress(port));
- socket.startHandshake();
-
- OutputStream stream = socket.getOutputStream();
-
- for (int i = 0; i < 256; i++) {
- stream.write(i);
- }
-
- stream.flush();
- stream.close();
- socket.close();
-
- } catch (Exception ex) {
- exception = ex;
- }
- }
-
- public Exception getException() {
- return exception;
- }
-
- public X509Certificate[] getChain() {
- return trustManager.getChain();
- }
-
- }
-
- /**
- * Loads a keystore from a base64-encoded String. Returns the KeyManager[]
- * for the result.
- */
- private KeyManager[] getKeyManagers(String keys) throws Exception {
- byte[] bytes = new Base64().decode(keys.getBytes());
- InputStream inputStream = new ByteArrayInputStream(bytes);
-
- KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
- keyStore.load(inputStream, PASSWORD.toCharArray());
- inputStream.close();
-
- String algorithm = KeyManagerFactory.getDefaultAlgorithm();
- KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(algorithm);
- keyManagerFactory.init(keyStore, PASSWORD.toCharArray());
-
- return keyManagerFactory.getKeyManagers();
- }
-
- /**
- * Implements the actual test case. Launches a server and a client, requires
- * client authentication and checks the certificates afterwards (not in the
- * usual sense, we just make sure that we got the expected certificates,
- * because our self-signed test certificates are not valid.)
- */
- public void testClientAuth() {
- try {
- TestServer server = new TestServer(8088, true, TestServer.CLIENT_AUTH_WANTED);
- TestClient client = new TestClient(8088, true);
-
- Thread serverThread = new Thread(server);
- Thread clientThread = new Thread(client);
-
- serverThread.start();
- clientThread.start();
-
- serverThread.join();
- clientThread.join();
-
- // The server must have completed without an exception.
- if (server.getException() != null) {
- throw new RuntimeException(server.getException());
- }
-
- // The client must have completed without an exception.
- if (client.getException() != null) {
- throw new RuntimeException(client.getException());
- }
-
- // Caution: The clientChain is the certificate chain from our
- // client object. It contains the server certificates, of course!
- X509Certificate[] clientChain = client.getChain();
- assertTrue("Client cert chain must not be null", clientChain != null);
- assertTrue("Client cert chain must not be empty", clientChain.length != 0);
- assertEquals("CN=Test Server, OU=Android, O=Google, L=MTV, ST=California, C=US", clientChain[0].getSubjectDN().toString());
- // Important part ------^
-
- // Caution: The serverChain is the certificate chain from our
- // server object. It contains the client certificates, of course!
- X509Certificate[] serverChain = server.getChain();
- assertTrue("Server cert chain must not be null", serverChain != null);
- assertTrue("Server cert chain must not be empty", serverChain.length != 0);
- assertEquals("CN=Test Client, OU=Android, O=Google, L=MTV, ST=California, C=US", serverChain[0].getSubjectDN().toString());
- // Important part ------^
-
- } catch (Exception ex) {
- throw new RuntimeException(ex);
- }
- }
-
- // -------------------------------------------------------------------------
- private SSLSocket handshakeSocket;
-
- private Exception handshakeException;
-
-
- public void testSSLHandshakeHangTimeout() {
-
- Thread thread = new Thread() {
- @Override
- public void run() {
- try {
- SSLSocket socket = (SSLSocket)clientFactory.createSocket(
- "www.heise.de", 80);
- socket.setSoTimeout(5000);
- socket.startHandshake();
- socket.close();
- } catch (Exception ex) {
- handshakeException = ex;
- }
- }
- };
-
- thread.start();
-
- try {
- thread.join(10000);
- } catch (InterruptedException ex) {
- // Ignore.
- }
-
- if (handshakeException == null) {
- fail("SSL handshake should have failed.");
- }
- }
-
- public void testSSLHandshakeHangClose() {
-
- Thread thread = new Thread() {
- @Override
- public void run() {
- try {
- handshakeSocket = (SSLSocket)clientFactory.createSocket(
- "www.heise.de", 80);
- handshakeSocket.startHandshake();
- } catch (Exception ex) {
- handshakeException = ex;
- }
- }
- };
-
- thread.start();
-
-
- try {
- Thread.sleep(5000);
- try {
- handshakeSocket.close();
- } catch (Exception ex) {
- throw new RuntimeException(ex);
- }
-
- thread.join(5000);
- } catch (InterruptedException ex) {
- // Ignore.
- }
-
- if (handshakeException == null) {
- fail("SSL handshake should have failed.");
- }
- }
-
-
-}
diff --git a/tests/CoreTests/android/core/Sha1Test.java b/tests/CoreTests/android/core/Sha1Test.java
deleted file mode 100644
index dcd4c04..0000000
--- a/tests/CoreTests/android/core/Sha1Test.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import android.security.MessageDigest;
-import android.test.suitebuilder.annotation.SmallTest;
-import junit.framework.TestCase;
-
-/**
- * Tests SHA1 message digest algorithm.
- */
-public class Sha1Test extends TestCase {
- class TestData {
- private String input;
- private String result;
-
- public TestData(String i, String r) {
- input = i;
- result = r;
- }
- }
-
- TestData[] mTestData = new TestData[]{
- new TestData("abc", "a9993e364706816aba3e25717850c26c9cd0d89d"),
- new TestData("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
- "84983e441c3bd26ebaae4aa1f95129e5e54670f1")
- };
-
- @SmallTest
- public void testSha1() throws Exception {
- MessageDigest digest = MessageDigest.getInstance("SHA-1");
-
- int numTests = mTestData.length;
- for (int i = 0; i < numTests; i++) {
- digest.update(mTestData[i].input.getBytes());
- byte[] hash = digest.digest();
- String encodedHash = encodeHex(hash);
- assertEquals(encodedHash, mTestData[i].result);
- }
- }
-
- private static String encodeHex(byte[] bytes) {
- StringBuffer hex = new StringBuffer(bytes.length * 2);
-
- for (int i = 0; i < bytes.length; i++) {
- if (((int) bytes[i] & 0xff) < 0x10) {
- hex.append("0");
- }
- hex.append(Integer.toString((int) bytes[i] & 0xff, 16));
- }
-
- return hex.toString();
- }
-}
-
diff --git a/tests/CoreTests/android/core/SocketTest.java b/tests/CoreTests/android/core/SocketTest.java
deleted file mode 100644
index b64c156..0000000
--- a/tests/CoreTests/android/core/SocketTest.java
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.ServerSocket;
-import java.net.Socket;
-import java.net.SocketException;
-import java.net.SocketTimeoutException;
-import java.nio.channels.SocketChannel;
-import java.util.concurrent.Semaphore;
-
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.test.suitebuilder.annotation.Suppress;
-
-/**
- * Regression tests for various socket related problems. And a few general
- * socket tests.
- */
-public class SocketTest extends TestCase {
-
- private static final String NON_EXISTING_ADDRESS = "123.123.123.123";
-
- private static final String KNOW_GOOD_ADDRESS = "209.85.129.147";
-
- private static final String PACKAGE_DROPPING_ADDRESS = "191.167.0.1";
-
- // Test for basic bind/connect/accept behavior.
- @SmallTest
- public void testSocketSimple() throws Exception {
- ServerSocket ss;
- Socket s, s1;
- int port;
-
- IOException lastEx = null;
-
- ss = new ServerSocket();
-
- for (port = 9900; port < 9999; port++) {
- try {
- ss.bind(new InetSocketAddress("127.0.0.1", port));
- lastEx = null;
- break;
- } catch (IOException ex) {
- lastEx = ex;
- }
- }
-
- if (lastEx != null) {
- throw lastEx;
- }
-
- s = new Socket("127.0.0.1", port);
-
- s1 = ss.accept();
-
- s.getOutputStream().write(0xa5);
-
- assertEquals(0xa5, s1.getInputStream().read());
-
- s1.getOutputStream().write(0x5a);
- assertEquals(0x5a, s.getInputStream().read());
- }
-
- // Regression test for #820068: Wildcard address
- @SmallTest
- public void testWildcardAddress() throws Exception {
- Socket s2 = new Socket();
- s2.bind(new InetSocketAddress((InetAddress) null, 12345));
- byte[] addr = s2.getLocalAddress().getAddress();
- for (int i = 0; i < 4; i++) {
- assertEquals("Not the wildcard address", 0, addr[i]);
- }
- }
-
- // Regression test for #865753: server sockets not closing properly
- @SmallTest
- public void testServerSocketClose() throws Exception {
- ServerSocket s3 = new ServerSocket(23456);
- s3.close();
- ServerSocket s4 = new ServerSocket(23456);
- s4.close();
- }
-
- // Regression test for #876985: SO_REUSEADDR not working properly
-
- private Exception serverError = null;
-
- @LargeTest
- public void testSetReuseAddress() throws IOException {
- InetSocketAddress addr = new InetSocketAddress(8383);
-
- final ServerSocket serverSock = new ServerSocket();
- serverSock.setReuseAddress(true);
- serverSock.bind(addr);
-
- final Semaphore semThreadEnd = new Semaphore(0);
- new Thread() {
- @Override
- public void run() {
- try {
- Socket sock = serverSock.accept();
- sock.getInputStream().read();
- sock.close();
- } catch (IOException e) {
- serverError = e;
- }
- semThreadEnd.release();
- }
- }.start();
-
- // Give the server a bit of time for startup
- try {
- Thread.sleep(2000);
- } catch (InterruptedException ex) {
- // Ignored.
- }
-
- Socket client = new Socket("localhost", 8383);
- client.getOutputStream().write(1);
- // Just leave this connection open from the client side. It will be
- // closed from the server side so the server stays in the TIME_WAIT
- // state for a while. setReuseAddress() should be able to handle this.
-
- try {
- semThreadEnd.acquire();
- } catch (InterruptedException e) {
- // ignore
- }
- serverSock.close();
-
- ServerSocket serverSock2 = new ServerSocket();
- serverSock2.setReuseAddress(true);
- serverSock2.bind(addr);
- serverSock2.close();
-
- if (serverError != null) {
- throw new RuntimeException("Server must complete without error", serverError);
- }
- }
-
- // Regression for 916701, a wrong exception was thrown after timeout of
- // a ServerSocket.
- @LargeTest
- public void testTimeoutException() throws IOException {
- ServerSocket s = new ServerSocket(9800);
- s.setSoTimeout(2000);
- try {
- s.accept();
- } catch (SocketTimeoutException e) {
- // this is ok.
- }
- }
-
- // Regression for issue 1001980, openening a SocketChannel threw an Exception
- @SmallTest
- public void testNativeSocketChannelOpen() throws IOException {
- SocketChannel.open();
- }
-
- // Regression test for issue 1018016, connecting ignored a set timeout.
- @LargeTest
- public void testSocketSetSOTimeout() throws IOException {
- Socket sock = new Socket();
- int timeout = 5000;
- long start = System.currentTimeMillis();
- try {
- sock.connect(new InetSocketAddress(NON_EXISTING_ADDRESS, 80), timeout);
- } catch (SocketTimeoutException e) {
- // expected
- long delay = System.currentTimeMillis() - start;
- if (Math.abs(delay - timeout) > 1000) {
- fail("timeout was not accurate. expected: " + timeout
- + " actual: " + delay + " miliseconds.");
- }
- } finally {
- try {
- sock.close();
- } catch (IOException ioe) {
- // ignore
- }
- }
- }
-
- /**
- * Regression test for 1062928: Dotted IP addresses (e.g., 192.168.100.1)
- * appear to be broken in the M5 SDK.
- *
- * Tests that a connection given a ip-addressv4 such as 192.168.100.100 does
- * not fail - sdk m5 seems only to accept dns names instead of ip numbers.
- * ip 209.85.129.147 (one address of www.google.com) on port 80 (http) is
- * used to test the connection.
- */
-
-// Commenting out this test since it is flaky, even at the best of times. See
-// #1191317 for Info.
- @Suppress
- public void disable_testConnectWithIP4IPAddr() {
- // call a Google Web server
- InetSocketAddress scktAddrss = new InetSocketAddress(KNOW_GOOD_ADDRESS,
- 80);
- Socket clntSckt = new Socket();
- try {
- clntSckt.connect(scktAddrss, 5000);
- } catch (Throwable e) {
- fail("connection problem:" + e.getClass().getName() + ": "
- + e.getMessage());
- } finally {
- try {
- clntSckt.close();
- } catch (Exception e) {
- // ignore
- }
- }
- }
-
-
- // Regression test for #1058962: Socket.close() does not cause
- // socket.connect() to return immediately.
- private Socket client;
-
- private Exception error;
-
- private boolean connected;
-
-// This test isn't working now, but really should work.
-// TODO Enable this test again.
-
- @Suppress
- public void disable_testSocketConnectClose() {
- try {
- client = new Socket();
-
- new Thread() {
- @Override
- public void run() {
- try {
- client.connect(new InetSocketAddress(PACKAGE_DROPPING_ADDRESS, 1357));
- } catch (Exception ex) {
- error = ex;
- }
-
- connected = true;
- }
- }.start();
-
- Thread.sleep(1000);
-
- Assert.assertNull("Connect must not fail immediately. Maybe try different address.", error);
- Assert.assertFalse("Connect must not succeed. Maybe try different address.", connected);
-
- client.close();
-
- Thread.sleep(1000);
-
- if (error == null) {
- fail("Socket connect still ongoing");
- } else if (!(error instanceof SocketException)) {
- fail("Socket connect interrupted with wrong error: " + error.toString());
- }
-
- } catch (Exception ex) {
- throw new RuntimeException(ex);
- }
-
- }
-
-}
diff --git a/tests/CoreTests/android/core/StreamTokenizerTest.java b/tests/CoreTests/android/core/StreamTokenizerTest.java
deleted file mode 100644
index 5013860..0000000
--- a/tests/CoreTests/android/core/StreamTokenizerTest.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.ByteArrayInputStream;
-import java.io.StreamTokenizer;
-import java.io.StringReader;
-import android.test.suitebuilder.annotation.MediumTest;
-
-/**
- * Tests for the StreamTokenizer
- */
-public class StreamTokenizerTest extends TestCase {
-
- @MediumTest
- public void testStreamTokenizer() throws Exception {
- String str = "Testing 12345 \n alpha \r\n omega";
- String strb = "-3.8 'BLIND mice' \r sEe /* how */ they run";
- StringReader aa = new StringReader(str);
- StringReader ba = new StringReader(strb);
- StreamTokenizer a = new StreamTokenizer(aa);
- StreamTokenizer b = new StreamTokenizer(ba);
-
- assertEquals(1, a.lineno());
- assertEquals(StreamTokenizer.TT_WORD, a.nextToken());
- assertEquals("Token[Testing], line 1", a.toString());
- assertEquals(StreamTokenizer.TT_NUMBER, a.nextToken());
- assertEquals("Token[n=12345.0], line 1", a.toString());
- assertEquals(StreamTokenizer.TT_WORD, a.nextToken());
- assertEquals("Token[alpha], line 2", a.toString());
- assertEquals(StreamTokenizer.TT_WORD, a.nextToken());
- assertEquals("Token[omega], line 3", a.toString());
- assertEquals(StreamTokenizer.TT_EOF, a.nextToken());
- assertEquals("Token[EOF], line 3", a.toString());
-
- b.commentChar('u');
- b.eolIsSignificant(true);
- b.lowerCaseMode(true);
- b.ordinaryChar('y');
- b.slashStarComments(true);
-
- assertEquals(StreamTokenizer.TT_NUMBER, b.nextToken());
- assertEquals(-3.8, b.nval);
- assertEquals("Token[n=-3.8], line 1", b.toString());
- assertEquals(39, b.nextToken()); // '
- assertEquals("Token[BLIND mice], line 1", b.toString());
- assertEquals(10, b.nextToken()); // \n
- assertEquals("Token[EOL], line 2", b.toString());
- assertEquals(StreamTokenizer.TT_WORD, b.nextToken());
- assertEquals("Token[see], line 2", b.toString());
- assertEquals(StreamTokenizer.TT_WORD, b.nextToken());
- assertEquals("Token[the], line 2", b.toString());
- assertEquals(121, b.nextToken()); // y
- assertEquals("Token['y'], line 2", b.toString());
- assertEquals(StreamTokenizer.TT_WORD, b.nextToken());
- assertEquals("Token[r], line 2", b.toString());
- assertEquals(StreamTokenizer.TT_EOF, b.nextToken());
- assertEquals("Token[EOF], line 2", b.toString());
-
- // A harmony regression test
- byte[] data = new byte[]{(byte) '-'};
- StreamTokenizer tokenizer = new StreamTokenizer(new ByteArrayInputStream(data));
- tokenizer.nextToken();
- String result = tokenizer.toString();
- assertEquals("Token['-'], line 1", result);
-
- // another harmony regression test
- byte[] data2 = new byte[]{(byte) '"',
- (byte) 'H',
- (byte) 'e',
- (byte) 'l',
- (byte) 'l',
- (byte) 'o',
- (byte) '"'};
- StreamTokenizer tokenizer2 = new StreamTokenizer(new ByteArrayInputStream(data2));
- tokenizer2.nextToken();
- result = tokenizer2.toString();
- assertEquals("Token[Hello], line 1", result);
- }
-}
diff --git a/tests/CoreTests/android/core/StrictMathTest.java b/tests/CoreTests/android/core/StrictMathTest.java
deleted file mode 100644
index 92e6cb6..0000000
--- a/tests/CoreTests/android/core/StrictMathTest.java
+++ /dev/null
@@ -1,855 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.test.suitebuilder.annotation.MediumTest;
-
-public class StrictMathTest extends TestCase {
-
- private final double HYP = StrictMath.sqrt(2.0);
-
- private final double OPP = 1.0;
-
- private final double ADJ = 1.0;
-
- /* Required to make previous preprocessor flags work - do not remove */
- int unused = 0;
-
- /**
- * @tests java.lang.StrictMath#abs(double)
- */
- @SmallTest
- public void testAbsD() {
- // Test for method double java.lang.StrictMath.abs(double)
-
- assertTrue("Incorrect double abs value",
- (StrictMath.abs(-1908.8976) == 1908.8976));
- assertTrue("Incorrect double abs value",
- (StrictMath.abs(1908.8976) == 1908.8976));
- }
-
- /**
- * @tests java.lang.StrictMath#abs(float)
- */
- @SmallTest
- public void testAbsF() {
- // Test for method float java.lang.StrictMath.abs(float)
- assertTrue("Incorrect float abs value",
- (StrictMath.abs(-1908.8976f) == 1908.8976f));
- assertTrue("Incorrect float abs value",
- (StrictMath.abs(1908.8976f) == 1908.8976f));
- }
-
- /**
- * @tests java.lang.StrictMath#abs(int)
- */
- @SmallTest
- public void testAbsI() {
- // Test for method int java.lang.StrictMath.abs(int)
- assertTrue("Incorrect int abs value",
- (StrictMath.abs(-1908897) == 1908897));
- assertTrue("Incorrect int abs value",
- (StrictMath.abs(1908897) == 1908897));
- }
-
- /**
- * @tests java.lang.StrictMath#abs(long)
- */
- @SmallTest
- public void testAbsJ() {
- // Test for method long java.lang.StrictMath.abs(long)
- assertTrue("Incorrect long abs value", (StrictMath
- .abs(-19088976000089L) == 19088976000089L));
- assertTrue("Incorrect long abs value",
- (StrictMath.abs(19088976000089L) == 19088976000089L));
- }
-
- /**
- * @tests java.lang.StrictMath#acos(double)
- */
- @SmallTest
- public void testAcosD() {
- // Test for method double java.lang.StrictMath.acos(double)
- assertTrue("Returned incorrect arc cosine", StrictMath.cos(StrictMath
- .acos(ADJ / HYP)) == ADJ / HYP);
- }
-
- /**
- * @tests java.lang.StrictMath#asin(double)
- */
- @SmallTest
- public void testAsinD() {
- // Test for method double java.lang.StrictMath.asin(double)
- assertTrue("Returned incorrect arc sine", StrictMath.sin(StrictMath
- .asin(OPP / HYP)) == OPP / HYP);
- }
-
- /**
- * @tests java.lang.StrictMath#atan(double)
- */
- @SmallTest
- public void testAtanD() {
- // Test for method double java.lang.StrictMath.atan(double)
- double answer = StrictMath.tan(StrictMath.atan(1.0));
- assertTrue("Returned incorrect arc tangent: " + answer, answer <= 1.0
- && answer >= 9.9999999999999983E-1);
- }
-
- /**
- * @tests java.lang.StrictMath#atan2(double,double)
- */
- @SmallTest
- public void testAtan2DD() {
- // Test for method double java.lang.StrictMath.atan2(double, double)
- double answer = StrictMath.atan(StrictMath.tan(1.0));
- assertTrue("Returned incorrect arc tangent: " + answer, answer <= 1.0
- && answer >= 9.9999999999999983E-1);
- }
-
- /**
- * @tests java.lang.StrictMath#cbrt(double)
- */
- @SuppressWarnings("boxing")
- @SmallTest
- public void testCbrtD() {
- // Test for special situations
- assertTrue("Should return Double.NaN", Double.isNaN(StrictMath
- .cbrt(Double.NaN)));
- assertEquals("Should return Double.POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, StrictMath
- .cbrt(Double.POSITIVE_INFINITY));
- assertEquals("Should return Double.NEGATIVE_INFINITY",
- Double.NEGATIVE_INFINITY, StrictMath
- .cbrt(Double.NEGATIVE_INFINITY));
- assertEquals(Double.doubleToLongBits(0.0), Double
- .doubleToLongBits(StrictMath.cbrt(0.0)));
- assertEquals(Double.doubleToLongBits(+0.0), Double
- .doubleToLongBits(StrictMath.cbrt(+0.0)));
- assertEquals(Double.doubleToLongBits(-0.0), Double
- .doubleToLongBits(StrictMath.cbrt(-0.0)));
-
- assertEquals("Should return 3.0", 3.0, StrictMath.cbrt(27.0));
- assertEquals("Should return 23.111993172558684", 23.111993172558684,
- StrictMath.cbrt(12345.6));
- assertEquals("Should return 5.643803094122362E102",
- 5.643803094122362E102, StrictMath.cbrt(Double.MAX_VALUE));
- assertEquals("Should return 0.01", 0.01, StrictMath.cbrt(0.000001));
-
- assertEquals("Should return -3.0", -3.0, StrictMath.cbrt(-27.0));
- assertEquals("Should return -23.111993172558684", -23.111993172558684,
- StrictMath.cbrt(-12345.6));
- assertEquals("Should return 1.7031839360032603E-108",
- 1.7031839360032603E-108, StrictMath.cbrt(Double.MIN_VALUE));
- assertEquals("Should return -0.01", -0.01, StrictMath.cbrt(-0.000001));
-
- try {
- StrictMath.cbrt((Double) null);
- fail("Should throw NullPointerException");
- } catch (NullPointerException e) {
- //expected
- }
- }
-
- /**
- * @tests java.lang.StrictMath#ceil(double)
- */
- @SmallTest
- public void testCeilD() {
- // Test for method double java.lang.StrictMath.ceil(double)
- assertEquals("Incorrect ceiling for double",
- 79, StrictMath.ceil(78.89), 0.0);
- assertEquals("Incorrect ceiling for double",
- -78, StrictMath.ceil(-78.89), 0.0);
- }
-
- /**
- * @tests java.lang.StrictMath#cos(double)
- */
- @SmallTest
- public void testCosD() {
- // Test for method double java.lang.StrictMath.cos(double)
-
- assertTrue("Returned incorrect cosine", StrictMath.cos(StrictMath
- .acos(ADJ / HYP)) == ADJ / HYP);
- }
-
- /**
- * @tests java.lang.StrictMath#cosh(double)
- */
- @SuppressWarnings("boxing")
- @SmallTest
- public void testCosh_D() {
- // Test for special situations
- assertTrue("Should return NaN", Double.isNaN(StrictMath
- .cosh(Double.NaN)));
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, StrictMath
- .cosh(Double.POSITIVE_INFINITY));
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, StrictMath
- .cosh(Double.NEGATIVE_INFINITY));
- assertEquals("Should return 1.0", 1.0, StrictMath.cosh(+0.0));
- assertEquals("Should return 1.0", 1.0, StrictMath.cosh(-0.0));
-
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, StrictMath.cosh(1234.56));
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, StrictMath.cosh(-1234.56));
- assertEquals("Should return 1.0000000000005", 1.0000000000005,
- StrictMath.cosh(0.000001));
- assertEquals("Should return 1.0000000000005", 1.0000000000005,
- StrictMath.cosh(-0.000001));
- assertEquals("Should return 5.212214351945598", 5.212214351945598,
- StrictMath.cosh(2.33482));
-
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, StrictMath.cosh(Double.MAX_VALUE));
- assertEquals("Should return 1.0", 1.0, StrictMath
- .cosh(Double.MIN_VALUE));
- }
-
- /**
- * @tests java.lang.StrictMath#exp(double)
- */
- @SmallTest
- public void testExpD() {
- // Test for method double java.lang.StrictMath.exp(double)
- assertTrue("Incorrect answer returned for simple power", StrictMath
- .abs(StrictMath.exp(4D) - StrictMath.E * StrictMath.E
- * StrictMath.E * StrictMath.E) < 0.1D);
- assertTrue("Incorrect answer returned for larger power", StrictMath
- .log(StrictMath.abs(StrictMath.exp(5.5D)) - 5.5D) < 10.0D);
- }
-
- /**
- * @tests java.lang.StrictMath#expm1(double)
- */
- @SuppressWarnings("boxing")
- @SmallTest
- public void testExpm1D() {
- //Test for special cases
- assertTrue("Should return NaN", Double.isNaN(StrictMath.expm1(Double.NaN)));
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, StrictMath.expm1(Double.POSITIVE_INFINITY));
- assertEquals("Should return -1.0", -1.0, StrictMath
- .expm1(Double.NEGATIVE_INFINITY));
- assertEquals(Double.doubleToLongBits(0.0), Double
- .doubleToLongBits(StrictMath.expm1(0.0)));
- assertEquals(Double.doubleToLongBits(+0.0), Double
- .doubleToLongBits(StrictMath.expm1(+0.0)));
- assertEquals(Double.doubleToLongBits(-0.0), Double
- .doubleToLongBits(StrictMath.expm1(-0.0)));
-
- assertEquals("Should return -9.999950000166666E-6",
- -9.999950000166666E-6, StrictMath.expm1(-0.00001));
- assertEquals("Should return 1.0145103074469635E60",
- 1.0145103074469635E60, StrictMath.expm1(138.16951162));
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, StrictMath
- .expm1(123456789123456789123456789.4521584223));
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, StrictMath.expm1(Double.MAX_VALUE));
- assertEquals("Should return MIN_VALUE", Double.MIN_VALUE, StrictMath
- .expm1(Double.MIN_VALUE));
-
- }
-
- /**
- * @tests java.lang.StrictMath#floor(double)
- */
- @SmallTest
- public void testFloorD() {
- // Test for method double java.lang.StrictMath.floor(double)
- assertEquals("Incorrect floor for double",
- 78, StrictMath.floor(78.89), 0.0);
- assertEquals("Incorrect floor for double",
- -79, StrictMath.floor(-78.89), 0.0);
- }
-
- /**
- * @tests java.lang.StrictMath#hypot(double,double)
- */
- @SuppressWarnings("boxing")
- @SmallTest
- public void testHypotDD() {
- // Test for special cases
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, StrictMath.hypot(Double.POSITIVE_INFINITY,
- 1.0));
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, StrictMath.hypot(Double.NEGATIVE_INFINITY,
- 123.324));
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, StrictMath.hypot(-758.2587,
- Double.POSITIVE_INFINITY));
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, StrictMath.hypot(5687.21,
- Double.NEGATIVE_INFINITY));
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, StrictMath.hypot(Double.POSITIVE_INFINITY,
- Double.NEGATIVE_INFINITY));
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, StrictMath.hypot(Double.NEGATIVE_INFINITY,
- Double.POSITIVE_INFINITY));
- assertTrue("Should return NaN", Double.isNaN(StrictMath.hypot(Double.NaN,
- 2342301.89843)));
- assertTrue("Should return NaN", Double.isNaN(StrictMath.hypot(-345.2680,
- Double.NaN)));
-
- assertEquals("Should return 2396424.905416697", 2396424.905416697, StrictMath
- .hypot(12322.12, -2396393.2258));
- assertEquals("Should return 138.16958070558556", 138.16958070558556,
- StrictMath.hypot(-138.16951162, 0.13817035864));
- assertEquals("Should return 1.7976931348623157E308",
- 1.7976931348623157E308, StrictMath.hypot(Double.MAX_VALUE, 211370.35));
- assertEquals("Should return 5413.7185", 5413.7185, StrictMath.hypot(
- -5413.7185, Double.MIN_VALUE));
-
- }
-
- /**
- * @tests java.lang.StrictMath#IEEEremainder(double,double)
- */
- @SmallTest
- public void testIEEEremainderDD() {
- // Test for method double java.lang.StrictMath.IEEEremainder(double,
- // double)
- assertEquals("Incorrect remainder returned", 0.0, StrictMath.IEEEremainder(
- 1.0, 1.0), 0.0);
- assertTrue(
- "Incorrect remainder returned",
- StrictMath.IEEEremainder(1.32, 89.765) >= 1.4705063220631647E-2
- || StrictMath.IEEEremainder(1.32, 89.765) >= 1.4705063220631649E-2);
- }
-
- /**
- * @tests java.lang.StrictMath#log(double)
- */
- @SmallTest
- public void testLogD() {
- // Test for method double java.lang.StrictMath.log(double)
- for (double d = 10; d >= -10; d -= 0.5) {
- double answer = StrictMath.log(StrictMath.exp(d));
- assertTrue("Answer does not equal expected answer for d = " + d
- + " answer = " + answer,
- StrictMath.abs(answer - d) <= StrictMath
- .abs(d * 0.00000001));
- }
- }
-
- /**
- * @tests java.lang.StrictMath#log10(double)
- */
- @SuppressWarnings("boxing")
- @SmallTest
- public void testLog10D() {
- // Test for special cases
- assertTrue("Should return NaN", Double.isNaN(StrictMath
- .log10(Double.NaN)));
- assertTrue("Should return NaN", Double.isNaN(StrictMath
- .log10(-2541.05745687234187532)));
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, StrictMath
- .log10(Double.POSITIVE_INFINITY));
- assertEquals("Should return NEGATIVE_INFINITY",
- Double.NEGATIVE_INFINITY, StrictMath.log10(0.0));
- assertEquals("Should return NEGATIVE_INFINITY",
- Double.NEGATIVE_INFINITY, StrictMath.log10(+0.0));
- assertEquals("Should return NEGATIVE_INFINITY",
- Double.NEGATIVE_INFINITY, StrictMath.log10(-0.0));
- assertEquals("Should return 14.0", 14.0, StrictMath.log10(StrictMath
- .pow(10, 14)));
-
- assertEquals("Should return 3.7389561269540406", 3.7389561269540406,
- StrictMath.log10(5482.2158));
- assertEquals("Should return 14.661551142893833", 14.661551142893833,
- StrictMath.log10(458723662312872.125782332587));
- assertEquals("Should return -0.9083828622192334", -0.9083828622192334,
- StrictMath.log10(0.12348583358871));
- assertEquals("Should return 308.25471555991675", 308.25471555991675,
- StrictMath.log10(Double.MAX_VALUE));
- assertEquals("Should return -323.3062153431158", -323.3062153431158,
- StrictMath.log10(Double.MIN_VALUE));
- }
-
- /**
- * @tests java.lang.StrictMath#log1p(double)
- */
- @SuppressWarnings("boxing")
- @SmallTest
- public void testLog1pD() {
- // Test for special cases
- assertTrue("Should return NaN", Double.isNaN(StrictMath
- .log1p(Double.NaN)));
- assertTrue("Should return NaN", Double.isNaN(StrictMath
- .log1p(-32.0482175)));
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, StrictMath
- .log1p(Double.POSITIVE_INFINITY));
- assertEquals(Double.doubleToLongBits(0.0), Double
- .doubleToLongBits(StrictMath.log1p(0.0)));
- assertEquals(Double.doubleToLongBits(+0.0), Double
- .doubleToLongBits(StrictMath.log1p(+0.0)));
- assertEquals(Double.doubleToLongBits(-0.0), Double
- .doubleToLongBits(StrictMath.log1p(-0.0)));
-
- assertEquals("Should return -0.2941782295312541", -0.2941782295312541,
- StrictMath.log1p(-0.254856327));
- assertEquals("Should return 7.368050685564151", 7.368050685564151,
- StrictMath.log1p(1583.542));
- assertEquals("Should return 0.4633708685409921", 0.4633708685409921,
- StrictMath.log1p(0.5894227));
- assertEquals("Should return 709.782712893384", 709.782712893384,
- StrictMath.log1p(Double.MAX_VALUE));
- assertEquals("Should return Double.MIN_VALUE", Double.MIN_VALUE,
- StrictMath.log1p(Double.MIN_VALUE));
- }
-
- /**
- * @tests java.lang.StrictMath#max(double,double)
- */
- @SmallTest
- public void testMaxDD() {
- // Test for method double java.lang.StrictMath.max(double, double)
- assertEquals("Incorrect double max value", 1908897.6000089, StrictMath.max(
- -1908897.6000089, 1908897.6000089), 0D);
- assertEquals("Incorrect double max value", 1908897.6000089, StrictMath.max(2.0,
- 1908897.6000089), 0D);
- assertEquals("Incorrect double max value", -2.0, StrictMath.max(-2.0,
- -1908897.6000089), 0D);
-
- }
-
- /**
- * @tests java.lang.StrictMath#max(float,float)
- */
- @SmallTest
- public void testMaxFF() {
- // Test for method float java.lang.StrictMath.max(float, float)
- assertTrue("Incorrect float max value", StrictMath.max(-1908897.600f,
- 1908897.600f) == 1908897.600f);
- assertTrue("Incorrect float max value", StrictMath.max(2.0f,
- 1908897.600f) == 1908897.600f);
- assertTrue("Incorrect float max value", StrictMath.max(-2.0f,
- -1908897.600f) == -2.0f);
- }
-
- /**
- * @tests java.lang.StrictMath#max(int,int)
- */
- @SmallTest
- public void testMaxII() {
- // Test for method int java.lang.StrictMath.max(int, int)
- assertEquals("Incorrect int max value", 19088976, StrictMath.max(-19088976,
- 19088976));
- assertEquals("Incorrect int max value",
- 19088976, StrictMath.max(20, 19088976));
- assertEquals("Incorrect int max value",
- -20, StrictMath.max(-20, -19088976));
- }
-
- /**
- * @tests java.lang.StrictMath#max(long,long)
- */
- @SmallTest
- public void testMaxJJ() {
- // Test for method long java.lang.StrictMath.max(long, long)
- assertEquals("Incorrect long max value", 19088976000089L, StrictMath.max(-19088976000089L,
- 19088976000089L));
- assertEquals("Incorrect long max value", 19088976000089L, StrictMath.max(20,
- 19088976000089L));
- assertEquals("Incorrect long max value", -20, StrictMath.max(-20,
- -19088976000089L));
- }
-
- /**
- * @tests java.lang.StrictMath#min(double,double)
- */
- @SmallTest
- public void testMinDD() {
- // Test for method double java.lang.StrictMath.min(double, double)
- assertEquals("Incorrect double min value", -1908897.6000089, StrictMath.min(
- -1908897.6000089, 1908897.6000089), 0D);
- assertEquals("Incorrect double min value", 2.0, StrictMath.min(2.0,
- 1908897.6000089), 0D);
- assertEquals("Incorrect double min value", -1908897.6000089, StrictMath.min(-2.0,
- -1908897.6000089), 0D);
- }
-
- /**
- * @tests java.lang.StrictMath#min(float,float)
- */
- @SmallTest
- public void testMinFF() {
- // Test for method float java.lang.StrictMath.min(float, float)
- assertTrue("Incorrect float min value", StrictMath.min(-1908897.600f,
- 1908897.600f) == -1908897.600f);
- assertTrue("Incorrect float min value", StrictMath.min(2.0f,
- 1908897.600f) == 2.0f);
- assertTrue("Incorrect float min value", StrictMath.min(-2.0f,
- -1908897.600f) == -1908897.600f);
- }
-
- /**
- * @tests java.lang.StrictMath#min(int,int)
- */
- @SmallTest
- public void testMinII() {
- // Test for method int java.lang.StrictMath.min(int, int)
- assertEquals("Incorrect int min value", -19088976, StrictMath.min(-19088976,
- 19088976));
- assertEquals("Incorrect int min value",
- 20, StrictMath.min(20, 19088976));
- assertEquals("Incorrect int min value",
- -19088976, StrictMath.min(-20, -19088976));
-
- }
-
- /**
- * @tests java.lang.StrictMath#min(long,long)
- */
- @SmallTest
- public void testMinJJ() {
- // Test for method long java.lang.StrictMath.min(long, long)
- assertEquals("Incorrect long min value", -19088976000089L, StrictMath.min(-19088976000089L,
- 19088976000089L));
- assertEquals("Incorrect long min value", 20, StrictMath.min(20,
- 19088976000089L));
- assertEquals("Incorrect long min value", -19088976000089L, StrictMath.min(-20,
- -19088976000089L));
- }
-
- /**
- * @tests java.lang.StrictMath#pow(double,double)
- */
- @SmallTest
- public void testPowDD() {
- // Test for method double java.lang.StrictMath.pow(double, double)
- assertTrue("pow returned incorrect value",
- (long) StrictMath.pow(2, 8) == 256l);
- assertTrue("pow returned incorrect value",
- StrictMath.pow(2, -8) == 0.00390625d);
- }
-
- /**
- * @tests java.lang.StrictMath#rint(double)
- */
- @SmallTest
- public void testRintD() {
- // Test for method double java.lang.StrictMath.rint(double)
- assertEquals("Failed to round properly - up to odd",
- 3.0, StrictMath.rint(2.9), 0D);
- assertTrue("Failed to round properly - NaN", Double.isNaN(StrictMath
- .rint(Double.NaN)));
- assertEquals("Failed to round properly down to even", 2.0, StrictMath
- .rint(2.1), 0D);
- assertTrue("Failed to round properly " + 2.5 + " to even", StrictMath
- .rint(2.5) == 2.0);
- }
-
- /**
- * @tests java.lang.StrictMath#round(double)
- */
- @SmallTest
- public void testRoundD() {
- // Test for method long java.lang.StrictMath.round(double)
- assertEquals("Incorrect rounding of a float",
- -91, StrictMath.round(-90.89d));
- }
-
- /**
- * @tests java.lang.StrictMath#round(float)
- */
- @SmallTest
- public void testRoundF() {
- // Test for method int java.lang.StrictMath.round(float)
- assertEquals("Incorrect rounding of a float",
- -91, StrictMath.round(-90.89f));
- }
-
- /**
- * @tests java.lang.StrictMath#signum(double)
- */
- @SmallTest
- public void testSignumD() {
- assertTrue(Double.isNaN(StrictMath.signum(Double.NaN)));
- assertEquals(Double.doubleToLongBits(0.0), Double
- .doubleToLongBits(StrictMath.signum(0.0)));
- assertEquals(Double.doubleToLongBits(+0.0), Double
- .doubleToLongBits(StrictMath.signum(+0.0)));
- assertEquals(Double.doubleToLongBits(-0.0), Double
- .doubleToLongBits(StrictMath.signum(-0.0)));
-
- assertEquals(1.0, StrictMath.signum(253681.2187962), 0D);
- assertEquals(-1.0, StrictMath.signum(-125874693.56), 0D);
- assertEquals(1.0, StrictMath.signum(1.2587E-308), 0D);
- assertEquals(-1.0, StrictMath.signum(-1.2587E-308), 0D);
-
- assertEquals(1.0, StrictMath.signum(Double.MAX_VALUE), 0D);
- assertEquals(1.0, StrictMath.signum(Double.MIN_VALUE), 0D);
- assertEquals(-1.0, StrictMath.signum(-Double.MAX_VALUE), 0D);
- assertEquals(-1.0, StrictMath.signum(-Double.MIN_VALUE), 0D);
- assertEquals(1.0, StrictMath.signum(Double.POSITIVE_INFINITY), 0D);
- assertEquals(-1.0, StrictMath.signum(Double.NEGATIVE_INFINITY), 0D);
-
- }
-
- /**
- * @tests java.lang.StrictMath#signum(float)
- */
- @SmallTest
- public void testSignumF() {
- assertTrue(Float.isNaN(StrictMath.signum(Float.NaN)));
- assertEquals(Float.floatToIntBits(0.0f), Float
- .floatToIntBits(StrictMath.signum(0.0f)));
- assertEquals(Float.floatToIntBits(+0.0f), Float
- .floatToIntBits(StrictMath.signum(+0.0f)));
- assertEquals(Float.floatToIntBits(-0.0f), Float
- .floatToIntBits(StrictMath.signum(-0.0f)));
-
- assertEquals(1.0f, StrictMath.signum(253681.2187962f), 0f);
- assertEquals(-1.0f, StrictMath.signum(-125874693.56f), 0f);
- assertEquals(1.0f, StrictMath.signum(1.2587E-11f), 0f);
- assertEquals(-1.0f, StrictMath.signum(-1.2587E-11f), 0f);
-
- assertEquals(1.0f, StrictMath.signum(Float.MAX_VALUE), 0f);
- assertEquals(1.0f, StrictMath.signum(Float.MIN_VALUE), 0f);
- assertEquals(-1.0f, StrictMath.signum(-Float.MAX_VALUE), 0f);
- assertEquals(-1.0f, StrictMath.signum(-Float.MIN_VALUE), 0f);
- assertEquals(1.0f, StrictMath.signum(Float.POSITIVE_INFINITY), 0f);
- assertEquals(-1.0f, StrictMath.signum(Float.NEGATIVE_INFINITY), 0f);
- }
-
- /**
- * @tests java.lang.StrictMath#sin(double)
- */
- @SmallTest
- public void testSinD() {
- // Test for method double java.lang.StrictMath.sin(double)
- assertTrue("Returned incorrect sine", StrictMath.sin(StrictMath
- .asin(OPP / HYP)) == OPP / HYP);
- }
-
- /**
- * @tests java.lang.StrictMath#sinh(double)
- */
- @SmallTest
- public void testSinhD() {
- // Test for special situations
- assertTrue(Double.isNaN(StrictMath.sinh(Double.NaN)));
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, StrictMath
- .sinh(Double.POSITIVE_INFINITY), 0D);
- assertEquals("Should return NEGATIVE_INFINITY",
- Double.NEGATIVE_INFINITY, StrictMath
- .sinh(Double.NEGATIVE_INFINITY), 0D);
- assertEquals(Double.doubleToLongBits(0.0), Double
- .doubleToLongBits(StrictMath.sinh(0.0)));
- assertEquals(Double.doubleToLongBits(+0.0), Double
- .doubleToLongBits(StrictMath.sinh(+0.0)));
- assertEquals(Double.doubleToLongBits(-0.0), Double
- .doubleToLongBits(StrictMath.sinh(-0.0)));
-
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, StrictMath.sinh(1234.56), 0D);
- assertEquals("Should return NEGATIVE_INFINITY",
- Double.NEGATIVE_INFINITY, StrictMath.sinh(-1234.56), 0D);
- assertEquals("Should return 1.0000000000001666E-6",
- 1.0000000000001666E-6, StrictMath.sinh(0.000001), 0D);
- assertEquals("Should return -1.0000000000001666E-6",
- -1.0000000000001666E-6, StrictMath.sinh(-0.000001), 0D);
- assertEquals("Should return 5.115386441963859", 5.115386441963859,
- StrictMath.sinh(2.33482), 0D);
- assertEquals("Should return POSITIVE_INFINITY",
- Double.POSITIVE_INFINITY, StrictMath.sinh(Double.MAX_VALUE), 0D);
- assertEquals("Should return 4.9E-324", 4.9E-324, StrictMath
- .sinh(Double.MIN_VALUE), 0D);
- }
-
- /**
- * @tests java.lang.StrictMath#sqrt(double)
- */
- @SmallTest
- public void testSqrtD() {
- // Test for method double java.lang.StrictMath.sqrt(double)
- assertEquals("Incorrect root returned1",
- 2, StrictMath.sqrt(StrictMath.pow(StrictMath.sqrt(2), 4)), 0.0);
- assertEquals("Incorrect root returned2", 7, StrictMath.sqrt(49), 0.0);
- }
-
- /**
- * @tests java.lang.StrictMath#tan(double)
- */
- @SmallTest
- public void testTanD() {
- // Test for method double java.lang.StrictMath.tan(double)
- assertTrue(
- "Returned incorrect tangent: ",
- StrictMath.tan(StrictMath.atan(1.0)) <= 1.0
- || StrictMath.tan(StrictMath.atan(1.0)) >= 9.9999999999999983E-1);
- }
-
- /**
- * @tests java.lang.StrictMath#tanh(double)
- */
- @SmallTest
- public void testTanhD() {
- // Test for special situations
- assertTrue(Double.isNaN(StrictMath.tanh(Double.NaN)));
- assertEquals("Should return +1.0", +1.0, StrictMath
- .tanh(Double.POSITIVE_INFINITY), 0D);
- assertEquals("Should return -1.0", -1.0, StrictMath
- .tanh(Double.NEGATIVE_INFINITY), 0D);
- assertEquals(Double.doubleToLongBits(0.0), Double
- .doubleToLongBits(StrictMath.tanh(0.0)));
- assertEquals(Double.doubleToLongBits(+0.0), Double
- .doubleToLongBits(StrictMath.tanh(+0.0)));
- assertEquals(Double.doubleToLongBits(-0.0), Double
- .doubleToLongBits(StrictMath.tanh(-0.0)));
-
- assertEquals("Should return 1.0", 1.0, StrictMath.tanh(1234.56), 0D);
- assertEquals("Should return -1.0", -1.0, StrictMath.tanh(-1234.56), 0D);
- assertEquals("Should return 9.999999999996666E-7",
- 9.999999999996666E-7, StrictMath.tanh(0.000001), 0D);
- assertEquals("Should return 0.981422884124941", 0.981422884124941,
- StrictMath.tanh(2.33482), 0D);
- assertEquals("Should return 1.0", 1.0, StrictMath
- .tanh(Double.MAX_VALUE), 0D);
- assertEquals("Should return 4.9E-324", 4.9E-324, StrictMath
- .tanh(Double.MIN_VALUE), 0D);
- }
-
- /**
- * @tests java.lang.StrictMath#random()
- */
- @MediumTest
- public void testRandom() {
- // There isn't a place for these tests so just stick them here
- assertEquals("Wrong value E",
- 4613303445314885481L, Double.doubleToLongBits(StrictMath.E));
- assertEquals("Wrong value PI",
- 4614256656552045848L, Double.doubleToLongBits(StrictMath.PI));
-
- for (int i = 500; i >= 0; i--) {
- double d = StrictMath.random();
- assertTrue("Generated number is out of range: " + d, d >= 0.0
- && d < 1.0);
- }
- }
-
- /**
- * @tests java.lang.StrictMath#toRadians(double)
- */
- @MediumTest
- public void testToRadiansD() {
- for (double d = 500; d >= 0; d -= 1.0) {
- double converted = StrictMath.toDegrees(StrictMath.toRadians(d));
- assertTrue("Converted number not equal to original. d = " + d,
- converted >= d * 0.99999999 && converted <= d * 1.00000001);
- }
- }
-
- /**
- * @tests java.lang.StrictMath#toDegrees(double)
- */
- @MediumTest
- public void testToDegreesD() {
- for (double d = 500; d >= 0; d -= 1.0) {
- double converted = StrictMath.toRadians(StrictMath.toDegrees(d));
- assertTrue("Converted number not equal to original. d = " + d,
- converted >= d * 0.99999999 && converted <= d * 1.00000001);
- }
- }
-
- /**
- * @tests java.lang.StrictMath#ulp(double)
- */
- @SuppressWarnings("boxing")
- @SmallTest
- public void testUlp_D() {
- // Test for special cases
- assertTrue("Should return NaN", Double
- .isNaN(StrictMath.ulp(Double.NaN)));
- assertEquals("Returned incorrect value", Double.POSITIVE_INFINITY,
- StrictMath.ulp(Double.POSITIVE_INFINITY), 0D);
- assertEquals("Returned incorrect value", Double.POSITIVE_INFINITY,
- StrictMath.ulp(Double.NEGATIVE_INFINITY), 0D);
- assertEquals("Returned incorrect value", Double.MIN_VALUE, StrictMath
- .ulp(0.0), 0D);
- assertEquals("Returned incorrect value", Double.MIN_VALUE, StrictMath
- .ulp(+0.0), 0D);
- assertEquals("Returned incorrect value", Double.MIN_VALUE, StrictMath
- .ulp(-0.0), 0D);
- assertEquals("Returned incorrect value", StrictMath.pow(2, 971),
- StrictMath.ulp(Double.MAX_VALUE), 0D);
- assertEquals("Returned incorrect value", StrictMath.pow(2, 971),
- StrictMath.ulp(-Double.MAX_VALUE), 0D);
-
- assertEquals("Returned incorrect value", Double.MIN_VALUE, StrictMath
- .ulp(Double.MIN_VALUE), 0D);
- assertEquals("Returned incorrect value", Double.MIN_VALUE, StrictMath
- .ulp(-Double.MIN_VALUE), 0D);
-
- assertEquals("Returned incorrect value", 2.220446049250313E-16,
- StrictMath.ulp(1.0), 0D);
- assertEquals("Returned incorrect value", 2.220446049250313E-16,
- StrictMath.ulp(-1.0), 0D);
- assertEquals("Returned incorrect value", 2.2737367544323206E-13,
- StrictMath.ulp(1153.0), 0D);
- }
-
- /**
- * @tests java.lang.StrictMath#ulp(float)
- */
- @SuppressWarnings("boxing")
- @SmallTest
- public void testUlpF() {
- // Test for special cases
- assertTrue("Should return NaN", Float.isNaN(StrictMath.ulp(Float.NaN)));
- assertEquals("Returned incorrect value", Float.POSITIVE_INFINITY,
- StrictMath.ulp(Float.POSITIVE_INFINITY), 0f);
- assertEquals("Returned incorrect value", Float.POSITIVE_INFINITY,
- StrictMath.ulp(Float.NEGATIVE_INFINITY), 0f);
- assertEquals("Returned incorrect value", Float.MIN_VALUE, StrictMath
- .ulp(0.0f), 0f);
- assertEquals("Returned incorrect value", Float.MIN_VALUE, StrictMath
- .ulp(+0.0f), 0f);
- assertEquals("Returned incorrect value", Float.MIN_VALUE, StrictMath
- .ulp(-0.0f), 0f);
- assertEquals("Returned incorrect value", 2.028241E31f, StrictMath
- .ulp(Float.MAX_VALUE), 0f);
- assertEquals("Returned incorrect value", 2.028241E31f, StrictMath
- .ulp(-Float.MAX_VALUE), 0f);
-
- assertEquals("Returned incorrect value", 1.4E-45f, StrictMath
- .ulp(Float.MIN_VALUE), 0f);
- assertEquals("Returned incorrect value", 1.4E-45f, StrictMath
- .ulp(-Float.MIN_VALUE), 0f);
-
- assertEquals("Returned incorrect value", 1.1920929E-7f, StrictMath
- .ulp(1.0f), 0f);
- assertEquals("Returned incorrect value", 1.1920929E-7f, StrictMath
- .ulp(-1.0f), 0f);
- assertEquals("Returned incorrect value", 1.2207031E-4f, StrictMath
- .ulp(1153.0f), 0f);
- assertEquals("Returned incorrect value", 5.6E-45f, Math
- .ulp(9.403954E-38f), 0f);
- }
-}
diff --git a/tests/CoreTests/android/core/StringReaderTest.java b/tests/CoreTests/android/core/StringReaderTest.java
deleted file mode 100644
index 66b3e81..0000000
--- a/tests/CoreTests/android/core/StringReaderTest.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.StringReader;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class StringReaderTest extends TestCase {
-
- @SmallTest
- public void testStringReader() throws Exception {
- String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
-
- StringReader a = new StringReader(str);
- StringReader b = new StringReader(str);
- StringReader c = new StringReader(str);
- StringReader d = new StringReader(str);
-
- assertEquals(str, IOUtil.read(a));
- assertEquals("AbCdEfGhIj", IOUtil.read(b, 10));
- assertEquals("bdfhjlnprtvxz", IOUtil.skipRead(c));
- assertEquals("AbCdEfGdEfGhIjKlMnOpQrStUvWxYz", IOUtil.markRead(d, 3, 4));
- }
-}
diff --git a/tests/CoreTests/android/core/StringTest.java b/tests/CoreTests/android/core/StringTest.java
deleted file mode 100644
index 957dd40..0000000
--- a/tests/CoreTests/android/core/StringTest.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import com.ibm.icu4jni.text.RuleBasedNumberFormat;
-import com.ibm.icu4jni.text.RuleBasedNumberFormat.RBNFType;
-
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Some String tests.
- */
-public class StringTest extends TestCase {
- private String germanSpelloutRule = "%alt-ones:" +
- " -x: minus >>;" +
- " x.x: << komma >>;" +
- " null; eins; =%%main=;" +
- "%%main:" +
- " null; ein; zwei; drei; vier; f\u00fcnf; sechs; sieben; acht; neun;\n" +
- " zehn; elf; zwu00f6lf; >>zehn;" +
- " 20: [>>und]zwanzig;" +
- " 30: [>>und]dreiu00dfig;" +
- " 40: [>>und]vierzig;" +
- " 50: [>>und]fu00fcnfzig;" +
- " 60: [>>und]sechzig;" +
- " 70: [>>und]siebzig;" +
- " 80: [>>und]achtzig;" +
- " 90: [>>und]neunzig;" +
- " 100: hundert[>%alt-ones>];" +
- " 200: <<hundert[>%alt-ones>];" +
- " 1000: tausend[>%alt-ones>];" +
- " 1100: tausendein[>%alt-ones>];" +
- " 1200: tausend[>%alt-ones>];" +
- " 2000: <<tausend[>%alt-ones>];";
-
- @SmallTest
- public void testString() throws Exception {
- String test = "0123456789";
- String test1 = new String("0123456789"); // different object
- String test2 = new String("0123456780"); // different value
- String offset = new String("xxx0123456789yyy");
- String sub = offset.substring(3, 13);
-
- assertEquals(test, test);
- assertEquals(test, test1);
- assertFalse(test.equals(test2));
-
- assertEquals(0, test.compareTo(test1));
- assertTrue(test1.compareTo(test2) > 0);
- assertTrue(test2.compareTo(test1) < 0);
-
- /* compare string with a nonzero offset, in left/right side */
- assertEquals(0, test.compareTo(sub));
- assertEquals(0, sub.compareTo(test));
- assertEquals(test, sub);
- assertEquals(sub, test);
- /* same base, one is a substring */
- assertFalse(offset.equals(sub));
- assertFalse(sub.equals(offset));
- /* wrong class */
- assertFalse(test.equals(this));
-
- /* null ptr - throw */
- try {
- test.compareTo(null);
- fail("didn't get expected npe");
- } catch (NullPointerException npe) {
- // expected
- }
- /* null ptr - ok */
- assertFalse(test.equals(null));
-
- test = test.substring(1);
- assertEquals("123456789", test);
- assertFalse(test.equals(test1));
-
- test = test.substring(1);
- assertEquals("23456789", test);
-
- test = test.substring(1);
- assertEquals("3456789", test);
-
- test = test.substring(1);
- assertEquals("456789", test);
-
- test = test.substring(3, 5);
- assertEquals("78", test);
-
- test = "this/is/a/path";
- String[] strings = test.split("/");
- assertEquals(4, strings.length);
-
- assertEquals("this is a path", test.replaceAll("/", " "));
- assertEquals("this is a path", test.replace("/", " "));
-
- assertEquals(0, "abc".compareToIgnoreCase("ABC"));
- assertTrue("abc".compareToIgnoreCase("DEF") < 0);
- assertTrue("ABC".compareToIgnoreCase("def") < 0);
- assertTrue("Now".compareTo("Mow") > 0);
- assertTrue("Now".compareToIgnoreCase("Mow") > 0);
-
- // RuleBasedNumberFormnat tests
- RuleBasedNumberFormat format = new RuleBasedNumberFormat();
- format.open(RBNFType.SPELLOUT);
- String result = format.format(15);
- assertEquals("Expected spellout format: 'fifteen' but was "
- + result, "fifteen", result);
- format.close();
-
- format.open(RBNFType.DURATION);
- result = format.format(15);
- assertEquals("Expected spellout format: '15 sec.' but was "
- + result, "15 sec.", result);
- format.close();
-
- format.open(RBNFType.ORDINAL);
- result = format.format(15);
- assertEquals("Expected spellout format: '15th' but was "
- + result, "15th", result);
- format.close();
- format.open(germanSpelloutRule);
-
- result = format.format(1323);
- assertEquals("Expected spellout format: 'tausenddrei" +
- "hundertdreiundzwanzig' but was " + result, "tausend" +
- "dreihundertdreiundzwanzig", result);
- int res = format.parse("tausenddreihundertdreiundzwanzig")
- .intValue();
- assertEquals("Expected spellout format: 'tausend" +
- "dreihundertdreiundzwanzig' but was " + res , 1323, res);
- format.close();
- }
-}
-
diff --git a/tests/CoreTests/android/core/StringWriterTest.java b/tests/CoreTests/android/core/StringWriterTest.java
deleted file mode 100644
index fed2221..0000000
--- a/tests/CoreTests/android/core/StringWriterTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.StringWriter;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class StringWriterTest extends TestCase {
-
- @SmallTest
- public void testStringWriter() throws Exception {
- String str = "AbCdEfGhIjKlMnOpQrStUvWxYz";
- StringWriter a = new StringWriter(10);
-
- a.write(str, 0, 26);
- a.write('X');
-
- assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzX", a.toString());
-
- a.write("alphabravodelta", 5, 5);
- a.append('X');
- assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzXbravoX", a.toString());
- a.append("omega");
- assertEquals("AbCdEfGhIjKlMnOpQrStUvWxYzXbravoXomega", a.toString());
- }
-}
diff --git a/tests/CoreTests/android/core/TestEventHandler.java b/tests/CoreTests/android/core/TestEventHandler.java
deleted file mode 100644
index 4cfcade..0000000
--- a/tests/CoreTests/android/core/TestEventHandler.java
+++ /dev/null
@@ -1,811 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import java.util.ArrayList;
-import java.util.Map;
-
-import org.apache.http.protocol.HTTP;
-import android.util.Log;
-import android.util.Config;
-import android.net.http.*;
-
-/**
- * Implements EventHandler and provides test functionality to validate
- * responses to requests from the test server
- */
-public class TestEventHandler implements EventHandler {
-
- /**
- * Status variables
- */
- private int majorVersion = -1;
- private int minorVersion = -1;
- private int responseCode = -1;
- private String reasonPhrase;
-
- /* List of headers received */
- private Map<String, String> headerMap;
-
- /* Used to sync low level delayed requests */
- public static final Object syncObj = new Object();
-
- /* Indicates whether the low level request testing is in operation */
- private boolean useLowLevel = false;
-
- /* Indicates whether responses should be automatically generated or
- * delayed
- */
- private boolean delayResponse = false;
-
- /* Test method expectation identifiers */
- public final static int TEST_REQUEST_SENT = 0;
- public final static int TEST_STATUS = 1;
- public final static int TEST_HEADERS = 2;
- public final static int TEST_LOCATION_CHANGED = 3;
- public final static int TEST_DATA = 4;
- public final static int TEST_ENDDATA = 5;
- public final static int TEST_ERROR = 6;
- public final static int TEST_SSL_CERTIFICATE_ERROR = 7;
-
- public final static int TEST_NUM_EXPECTS = 8;
-
- /* Expected status codes */
- private int expectMajor = -1;
- private int expectMinor = -1;
- private int expectCode = -1;
-
- /* Array indicating which event types are expected */
- private boolean[] expects = new boolean[TEST_NUM_EXPECTS];
-
- /* Array indicating which event types are not expected */
- private boolean[] notExpecting = new boolean[TEST_NUM_EXPECTS];
-
- /* Indicates which events have been received */
- private boolean[] eventsReceived = new boolean[TEST_NUM_EXPECTS];
-
- /* Redirection variables */
- private String expectLocation;
- private int expectPermanent = -1;
-
- /* Content data expected to be received */
- private byte[] expectData;
- private int expectDataLength = -1;
-
- private int expectErrorId = -1;
-
- private int expectSslErrors = -1;
- private SslCertificate expectCertificate;
-
- public class TestHeader {
- public TestHeader(String n, String v) {
- name = n;
- value = v;
- }
- public String name;
- public String value;
- }
-
- private ArrayList<TestHeader> expectHeaders = new ArrayList<TestHeader>();
-
- /* Holds failure details */
- private StringBuffer expectDetails = new StringBuffer();
-
- /* If we use a request handle, we retain a reference here for redirects
- * using setupRedirect
- */
- private RequestHandle mRequestHandle;
-
- /* The low level API uses this reference also for non-delayed requests */
- private LowLevelNetRunner netRunner;
-
- public TestEventHandler() {
- for (int i = 0; i < TEST_NUM_EXPECTS; i++) {
- expects[i] = false;
- notExpecting[i] = false;
- eventsReceived[i] = false;
- }
- }
-
- /**
- * Implementation of EventHandler method called when a request has been
- * sent. If the test is waiting for this call, it will be signalled,
- * otherwise this method will trigger the response to be read
- * automatically.
- */
- public void requestSent() {
- Log.v(LOGTAG, "TestEventHandler:requestSent()");
- expects[TEST_REQUEST_SENT] = false;
- eventsReceived[TEST_REQUEST_SENT] = true;
- if (notExpecting[TEST_REQUEST_SENT]) {
- expectDetails.append("Request sent event received but not expected");
- expectDetails.append("\r\n");
- }
-
- if (useLowLevel) {
- if (delayResponse) {
- synchronized (syncObj) {
- syncObj.notifyAll();
- }
- } else {
- // mRequest.startReadingResponse();
- }
- }
- }
-
- /**
- * Implements the EventHandler status method called when a server status
- * response is received.
- * @param major_version The HTTP major version
- * @param minor_version The HTTP minor version
- * @param code The status code
- * @param reason_phrase A reason phrase passed to us by the server
- */
- public void status(int major_version, int minor_version,
- int code, String reason_phrase) {
- if (Config.LOGV) {
- Log.v(LOGTAG, "TestEventHandler:status() major: " + major_version +
- " minor: " + minor_version +
- " code: " + code +
- " reason: " + reason_phrase);
- }
-
- eventsReceived[TEST_STATUS] = true;
- if (notExpecting[TEST_STATUS]) {
- expectDetails.append("Status event received but not expected");
- expectDetails.append("\r\n");
- }
-
- majorVersion = major_version;
- minorVersion = minor_version;
- responseCode = code;
- reasonPhrase = reason_phrase;
-
- if (expectMajor != -1) {
- if (expectMajor == major_version) {
- expectMajor = -1;
- } else {
- expectDetails.append("Major version expected:"+expectMajor+
- " got:"+major_version);
- expectDetails.append("\r\n");
- }
- }
-
- if (expectMinor != -1) {
- if (expectMinor == minor_version) {
- expectMinor = -1;
- } else {
- expectDetails.append("Minor version expected:"+expectMinor+
- " got:"+minor_version);
- expectDetails.append("\r\n");
- }
- }
-
- if (expectCode != -1) {
- if (expectCode == code) {
- expectCode = -1;
- } else {
- expectDetails.append("Status code expected:"+expectCode+
- " got:"+code);
- expectDetails.append("\r\n");
- }
- }
-
-
- if ((expectMajor == -1) && (expectMinor == -1) && (expectCode == -1)) {
- expects[TEST_STATUS] = false;
- } else {
- System.out.println("MAJOR = "+expectMajor+" MINOR = "+expectMinor+
- " CODE = "+expectCode);
- }
- }
-
- /**
- * Implements the EventHandler headers method called when a server
- * sends header fields
- */
- public void headers(Headers headers) {
- if (Config.LOGV) {
- Log.v(LOGTAG, "TestEventHandler:headers()");
- }
- expects[TEST_HEADERS] = false;
-
- if (notExpecting[TEST_HEADERS]) {
- expectDetails.append("Header event received but not expected");
- expectDetails.append("\r\n");
- }
-
- /* Check through headers received for matches with expected
- * headers */
- if (expectHeaders.isEmpty()) {
- return;
- }
-
- for (int i = expectHeaders.size() - 1; i >= 0; i--) {
- TestHeader h = expectHeaders.get(i);
- System.out.println("Expected header name: " + h.name);
- String s = null;
- switch (h.name.hashCode()) {
- case -1132779846:
- s = Long.toString(headers.getContentLength());
- break;
- case 785670158:
- s = headers.getContentType();
- break;
- case 2095084583:
- s = headers.getContentEncoding();
- break;
- case 1901043637:
- s = headers.getLocation();
- break;
- case -243037365:
- s = headers.getWwwAuthenticate();
- break;
- case -301767724:
- s = headers.getProxyAuthenticate();
- break;
- case -1267267485:
- s = headers.getContentDisposition();
- break;
- case 1397189435:
- s = headers.getAcceptRanges();
- break;
- case -1309235404:
- s = headers.getExpires();
- break;
- case -208775662:
- s = headers.getCacheControl();
- break;
- case 150043680:
- s = headers.getLastModified();
- break;
- case 3123477:
- s = headers.getEtag();
- break;
- case -775651618:
- int ct = headers.getConnectionType();
- if (ct == Headers.CONN_CLOSE) {
- s = HTTP.CONN_CLOSE;
- } else if (ct == Headers.CONN_KEEP_ALIVE) {
- s = HTTP.CONN_KEEP_ALIVE;
- }
- break;
- default:
- s = null;
-
- }
- if (evaluateHeader(h, s)) {
- expectHeaders.remove(i);
- }
- }
-
- }
-
- public boolean evaluateHeader(TestHeader h, String value) {
- if (value == null) {
- expects[TEST_HEADERS] = true;
- System.out.print(" Missing! ");
- expectDetails.append(" missing header " + h.name);
- return false;
- }
- if (h.value == null) {
- System.out.println("Expect value = null");
- return true;
- }
- System.out.println("Expect value = " +
- (h.value.toLowerCase()) + " got " +
- value.toLowerCase());
-
- if (!h.value.equalsIgnoreCase(value)) {
- expectDetails.append("expect header value " + h.value +
- " got " + value);
- expects[TEST_HEADERS] = true;
- return false;
- }
- return true;
- }
- /**
- * Implements the EventHandler locationChanged method called when a server
- * sends a redirect message
- * @param newLocation The URL to the new server
- * @param permanent Indicator of whether this is a permanent change
- */
- public void locationChanged(String newLocation, boolean permanent) {
- if (Config.LOGV) {
- Log.v(LOGTAG, "TestEventHandler: locationChanged() " +
- newLocation + " permanent " + permanent);
- }
-
- eventsReceived[TEST_LOCATION_CHANGED] = true;
- if (notExpecting[TEST_LOCATION_CHANGED]) {
- expectDetails.append("Location changed event received but "+
- "not expected");
- expectDetails.append("\r\n");
- }
-
- if (expectLocation != null) {
- if (expectLocation.equals(newLocation)) {
- expectLocation = null;
- } else {
- expectDetails.append("Location expected:"+expectLocation+
- " got:"+newLocation);
- expectDetails.append("\r\n");
- }
- }
-
- if (expectPermanent != -1) {
- if (((expectPermanent == 0) && !permanent) ||
- ((expectPermanent == 1) && permanent)){
- expectPermanent = -1;
- } else {
- expectDetails.append("Location permanent expected:"+
- expectPermanent+" got"+permanent);
- expectDetails.append("\r\n");
- }
- }
-
- if ((expectLocation == null) && (expectPermanent == -1))
- expects[TEST_LOCATION_CHANGED] = false;
- }
-
- /**
- * Implements the EventHandler data method called when a server
- * sends content data
- * @param data The byte array content
- * @param len The length of the data
- */
- public void data(byte[] data, int len) {
- boolean mismatch = false;
-
- if (Config.LOGV) {
- Log.v(LOGTAG, "TestEventHandler: data() " + len + " bytes");
- }
-
- eventsReceived[TEST_DATA] = true;
- if (notExpecting[TEST_DATA]) {
- expectDetails.append("Data event received but not expected");
- expectDetails.append("\r\n");
- }
-
- Log.v(LOGTAG, new String(data, 0, len));
-
- if (expectDataLength != -1) {
- if (expectDataLength == len) {
- expectDataLength = -1;
- } else {
- expectDetails.append("expect data length mismatch expected:"+
- expectDataLength+" got:"+len);
- expectDetails.append("\r\n");
- }
-
- /* Check data only if length is the same */
- if ((expectDataLength == -1) && expectData != null) {
- for (int i = 0; i < len; i++) {
- if (expectData[i] != data[i]) {
- mismatch = true;
- expectDetails.append("Expect data mismatch at byte "+
- i+" expected:"+expectData[i]+" got:"+data[i]);
- expectDetails.append("\r\n");
- break;
- }
- }
- }
- }
-
- if ((expectDataLength == -1) || !mismatch)
- expects[TEST_DATA] = false;
- }
-
- /**
- * Implements the EventHandler endData method called to
- * indicate completion or a request
- */
- public void endData() {
- if (Config.LOGV) {
- Log.v(LOGTAG, "TestEventHandler: endData() called");
- }
-
- eventsReceived[TEST_ENDDATA] = true;
- if (notExpecting[TEST_ENDDATA]) {
- expectDetails.append("End data event received but not expected");
- expectDetails.append("\r\n");
- }
-
- expects[TEST_ENDDATA] = false;
-
- if (useLowLevel) {
- if (delayResponse) {
- synchronized (syncObj) {
- syncObj.notifyAll();
- }
- } else {
- if (netRunner != null) {
- System.out.println("TestEventHandler: endData() stopping "+
- netRunner);
- netRunner.decrementRunCount();
- }
- }
- }
- }
-
- /**
- * Implements the EventHandler certificate method called every
- * time a resource is loaded via a secure connection
- */
- public void certificate(SslCertificate certificate) {}
-
- /**
- * Implements the EventHandler error method called when a server
- * sends header fields
- * @param id Status code of the error
- * @param description Brief description of the error
- */
- public void error(int id, String description) {
- if (Config.LOGV) {
- Log.v(LOGTAG, "TestEventHandler: error() called Id:" + id +
- " description " + description);
- }
-
- eventsReceived[TEST_ERROR] = true;
- if (notExpecting[TEST_ERROR]) {
- expectDetails.append("Error event received but not expected");
- expectDetails.append("\r\n");
- }
- if (expectErrorId != -1) {
- if (expectErrorId == id) {
- expectErrorId = -1;
- } else {
- expectDetails.append("Error Id expected:"+expectErrorId+
- " got:"+id);
- expectDetails.append("\r\n");
- }
- }
-
- if (expectErrorId == -1)
- expects[TEST_ERROR] = false;
-
- if (useLowLevel) {
- if (delayResponse) {
- synchronized (syncObj) {
- syncObj.notifyAll();
- }
- } else {
- if (netRunner != null) {
- System.out.println("TestEventHandler: endData() stopping "+
- netRunner);
- netRunner.decrementRunCount();
- }
- }
- }
- }
-
- /**
- * SSL certificate error callback. Handles SSL error(s) on the way
- * up to the user.
- */
- public void handleSslErrorRequest(SslError error) {
- int primaryError = error.getPrimaryError();
-
- if (Config.LOGV) {
- Log.v(LOGTAG, "TestEventHandler: handleSslErrorRequest(): "+
- " primary error:" + primaryError +
- " certificate: " + error.getCertificate());
- }
-
- eventsReceived[TEST_SSL_CERTIFICATE_ERROR] = true;
- if (notExpecting[TEST_SSL_CERTIFICATE_ERROR]) {
- expectDetails.append("SSL Certificate error event received "+
- "but not expected");
- expectDetails.append("\r\n");
- }
-
- if (expectSslErrors != -1) {
- if (expectSslErrors == primaryError) {
- expectSslErrors = -1;
- } else {
- expectDetails.append("SslCertificateError id expected:"+
- expectSslErrors+" got: " + primaryError);
- expectDetails.append("\r\n");
- }
- }
-
- // SslCertificate match here?
-
- if (expectSslErrors == -1) // && expectSslCertificate == certificate?
- expects[TEST_SSL_CERTIFICATE_ERROR] = false;
- }
-
- /**
- * Use the low level net runner with no delayed response
- * @param runner The LowLevelNetRunner object
- */
- public void setNetRunner(LowLevelNetRunner runner) {
- setNetRunner(runner, false);
- }
-
- /**
- * Use the low level net runner and specify if the response
- * should be delayed
- * @param runner The LowLevelNetRunner object
- * @param delayedResponse Set to true is you will use the
- * waitForRequestSent/waitForRequestResponse routines
- */
- public void setNetRunner(LowLevelNetRunner runner,
- boolean delayedResponse) {
- netRunner = runner;
- useLowLevel = true;
- delayResponse = delayedResponse;
-
- if (!delayResponse)
- netRunner.incrementRunCount();
- }
-
- /**
- * Enable this listeners Request object to read server responses.
- * This should only be used in conjunction with setDelayResponse(true)
- */
- public void waitForRequestResponse() {
- if (!delayResponse || !useLowLevel) {
- Log.d(LOGTAG, " Cant do this without delayReponse set ");
- return;
- }
-
- //if (mRequest != null) {
- // mRequest.startReadingResponse();
- // }
- /* Now wait for the response to be completed either through endData
- * or an error
- */
- synchronized (syncObj) {
- try {
- syncObj.wait();
- } catch (InterruptedException e) {
- }
- }
- }
-
- /**
- * Enable this listeners Request object to read server responses.
- * This should only be used in conjunction with setDelayResponse(true)
- */
- public void waitForRequestSent() {
- if (!delayResponse || !useLowLevel) {
- Log.d(LOGTAG, " Cant do this without delayReponse set ");
- return;
- }
-
- /* Now wait for the response to be completed either through endData
- * or an error
- */
- synchronized (syncObj) {
- try {
- syncObj.wait();
- } catch (InterruptedException e) {
- }
- }
- }
-
- /* Test expected values - these routines set the tests expectations */
-
- public void expectRequestSent() {
- expects[TEST_REQUEST_SENT] = true;
- }
-
- public void expectNoRequestSent() {
- notExpecting[TEST_REQUEST_SENT] = true;
- }
-
- public void expectStatus() {
- expects[TEST_STATUS] = true;
- }
-
- public void expectNoStatus() {
- notExpecting[TEST_STATUS] = true;
- }
-
- public void expectStatus(int major, int minor, int code) {
- expects[TEST_STATUS] = true;
- expectMajor = major;
- expectMinor = minor;
- expectCode = code;
- }
-
- public void expectStatus(int code) {
- expects[TEST_STATUS] = true;
- expectCode = code;
- }
-
- public void expectHeaders() {
- expects[TEST_HEADERS] = true;
- }
-
- public void expectNoHeaders() {
- notExpecting[TEST_HEADERS] = true;
- }
-
- public void expectHeaderAdd(String name) {
- expects[TEST_HEADERS] = true;
- TestHeader h = new TestHeader(name.toLowerCase(), null);
- expectHeaders.add(h);
- }
-
- public void expectHeaderAdd(String name, String value) {
- expects[TEST_HEADERS] = true;
- TestHeader h = new TestHeader(name.toLowerCase(), value);
- expectHeaders.add(h);
- }
-
- public void expectLocationChanged() {
- expects[TEST_LOCATION_CHANGED] = true;
- }
-
- public void expectNoLocationChanged() {
- notExpecting[TEST_LOCATION_CHANGED] = true;
- }
-
- public void expectLocationChanged(String newLocation) {
- expects[TEST_LOCATION_CHANGED] = true;
- expectLocation = newLocation;
- }
-
- public void expectLocationChanged(String newLocation, boolean permanent) {
- expects[TEST_LOCATION_CHANGED] = true;
- expectLocation = newLocation;
- expectPermanent = permanent ? 1 : 0;
- }
-
- public void expectData() {
- expects[TEST_DATA] = true;
- }
-
- public void expectNoData() {
- notExpecting[TEST_DATA] = true;
- }
-
- public void expectData(int len) {
- expects[TEST_DATA] = true;
- expectDataLength = len;
- }
-
- public void expectData(byte[] data, int len) {
- expects[TEST_DATA] = true;
- expectData = new byte[len];
- expectDataLength = len;
-
- for (int i = 0; i < len; i++) {
- expectData[i] = data[i];
- }
- }
-
- public void expectEndData() {
- expects[TEST_ENDDATA] = true;
- }
-
- public void expectNoEndData() {
- notExpecting[TEST_ENDDATA] = true;
- }
-
- public void expectError() {
- expects[TEST_ERROR] = true;
- }
-
- public void expectNoError() {
- notExpecting[TEST_ERROR] = true;
- }
-
- public void expectError(int errorId) {
- expects[TEST_ERROR] = true;
- expectErrorId = errorId;
- }
-
- public void expectSSLCertificateError() {
- expects[TEST_SSL_CERTIFICATE_ERROR] = true;
- }
-
- public void expectNoSSLCertificateError() {
- notExpecting[TEST_SSL_CERTIFICATE_ERROR] = true;
- }
-
- public void expectSSLCertificateError(int errors) {
- expects[TEST_SSL_CERTIFICATE_ERROR] = true;
- expectSslErrors = errors;
- }
-
- public void expectSSLCertificateError(SslCertificate certificate) {
- expects[TEST_SSL_CERTIFICATE_ERROR] = true;
- expectCertificate = certificate;
- }
-
- /**
- * Test to see if current expectations match recieved information
- * @return True is all expected results have been matched
- */
- public boolean expectPassed() {
- for (int i = 0; i < TEST_NUM_EXPECTS; i++) {
- if (expects[i] == true) {
- return false;
- }
- }
-
- for (int i = 0; i < TEST_NUM_EXPECTS; i++) {
- if (eventsReceived[i] && notExpecting[i]) {
- return false;
- }
- }
- return true;
- }
-
- /**
- * Return message indicating expectation failures
- */
- public String getFailureMessage() {
- return expectDetails.toString();
- }
-
- /**
- * Reset all expectation values for re-use
- */
- public void resetExpects() {
- expectMajor = -1;
- expectMinor = -1;
- expectCode = -1;
- expectLocation = null;
- expectPermanent = -1;
- expectErrorId = -1;
- expectSslErrors = -1;
- expectCertificate = null;
- expectDetails.setLength(0);
- expectHeaders.clear();
-
- for (int i = 0; i < TEST_NUM_EXPECTS; i++) {
- expects[i] = false;
- notExpecting[i] = false;
- eventsReceived[i] = false;
- }
-
- for (int i = 0; i < expectDataLength; i++) {
- expectData[i] = 0;
- }
-
- expectDataLength = -1;
- }
-
- /**
- * Attach the RequestHandle to this handler
- * @param requestHandle The RequestHandle
- */
- public void attachRequestHandle(RequestHandle requestHandle) {
- if (Config.LOGV) {
- Log.v(LOGTAG, "TestEventHandler.attachRequestHandle(): " +
- "requestHandle: " + requestHandle);
- }
- mRequestHandle = requestHandle;
- }
-
- /**
- * Detach the RequestHandle
- */
- public void detachRequestHandle() {
- if (Config.LOGV) {
- Log.v(LOGTAG, "TestEventHandler.detachRequestHandle(): " +
- "requestHandle: " + mRequestHandle);
- }
- mRequestHandle = null;
- }
-
- protected final static String LOGTAG = "http";
-}
diff --git a/tests/CoreTests/android/core/TestWebData.java b/tests/CoreTests/android/core/TestWebData.java
deleted file mode 100644
index 2ef19be..0000000
--- a/tests/CoreTests/android/core/TestWebData.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-/**
- * Represents test data used by the Request API tests
- */
-public class TestWebData {
-
- /*
- * Simple Html body
- * <html>
- * <body>
- * <h1>Hello World!</h1>
- * </body>
- * </html>
- */
- public final static byte[] test1 = {
- (byte)0x3c, (byte)0x68, (byte)0x74, (byte)0x6d,
- (byte)0x6c, (byte)0x3e, (byte)0x0a, (byte)0x3c,
- (byte)0x62, (byte)0x6f, (byte)0x64, (byte)0x79,
- (byte)0x3e, (byte)0x0a, (byte)0x3c, (byte)0x68,
- (byte)0x31, (byte)0x3e, (byte)0x48, (byte)0x65,
- (byte)0x6c, (byte)0x6c, (byte)0x6f, (byte)0x20,
- (byte)0x57, (byte)0x6f, (byte)0x72, (byte)0x6c,
- (byte)0x64, (byte)0x21, (byte)0x3c, (byte)0x2f,
- (byte)0x68, (byte)0x31, (byte)0x3e, (byte)0x0a,
- (byte)0x3c, (byte)0x2f, (byte)0x62, (byte)0x6f,
- (byte)0x64, (byte)0x79, (byte)0x3e, (byte)0x0a,
- (byte)0x3c, (byte)0x2f, (byte)0x68, (byte)0x74,
- (byte)0x6d, (byte)0x6c, (byte)0x3e, (byte)0x0a
- };
-
- /*
- * Simple Html body
- * <html>
- * <body>
- * <h1>Hello World!</h1>
- * </body>
- * </html>
- */
- public final static byte[] test2 = {
- (byte)0x3c, (byte)0x68, (byte)0x74, (byte)0x6d,
- (byte)0x6c, (byte)0x3e, (byte)0x0a, (byte)0x3c,
- (byte)0x62, (byte)0x6f, (byte)0x64, (byte)0x79,
- (byte)0x3e, (byte)0x0a, (byte)0x3c, (byte)0x68,
- (byte)0x31, (byte)0x3e, (byte)0x48, (byte)0x65,
- (byte)0x6c, (byte)0x6c, (byte)0x6f, (byte)0x20,
- (byte)0x57, (byte)0x6f, (byte)0x72, (byte)0x6c,
- (byte)0x64, (byte)0x21, (byte)0x3c, (byte)0x2f,
- (byte)0x68, (byte)0x31, (byte)0x3e, (byte)0x0a,
- (byte)0x3c, (byte)0x2f, (byte)0x62, (byte)0x6f,
- (byte)0x64, (byte)0x79, (byte)0x3e, (byte)0x0a,
- (byte)0x3c, (byte)0x2f, (byte)0x68, (byte)0x74,
- (byte)0x6d, (byte)0x6c, (byte)0x3e, (byte)0x0a
- };
-
- // string for test request post body
- public final static String postContent = "user=111";
-
- // Array of all test data
- public final static byte[][] tests = {
- test1,
- test2
- };
-
- /**
- * List of static test cases for use with test server
- */
- public static TestWebData[] testParams = {
- new TestWebData(52, 14000000, "test1", "text/html", false),
- new TestWebData(52, 14000002, "test2", "unknown/unknown", false)
- };
-
- /**
- * List of response strings for use by the test server
- */
- public static String[] testServerResponse = {
- "Redirecting 301",
- "Redirecting 302",
- "Redirecting 303",
- "Redirecting 307"
- };
-
- // Redirection indices into testServerResponse
- public final static int REDIRECT_301 = 0;
- public final static int REDIRECT_302 = 1;
- public final static int REDIRECT_303 = 2;
- public final static int REDIRECT_307 = 3;
-
- /**
- * Creates a data package with information used by the server when responding
- * to requests
- */
- TestWebData(int length, int lastModified, String name, String type, boolean isDir) {
- testLength = length;
- testLastModified = lastModified;
- testName = name;
- testType = type;
- testDir = isDir;
- }
-
- // Length of test entity body
- public int testLength;
-
- // Last modified date value (milliseconds)
- public int testLastModified;
-
- // Test identification name
- public String testName;
-
- // The MIME type to assume for this test
- public String testType;
-
- // Indicates if this is a directory or not
- public boolean testDir;
-
-}
diff --git a/tests/CoreTests/android/core/TestWebServer.java b/tests/CoreTests/android/core/TestWebServer.java
deleted file mode 100644
index f73e6ff..0000000
--- a/tests/CoreTests/android/core/TestWebServer.java
+++ /dev/null
@@ -1,871 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import android.util.Log;
-
-import java.io.*;
-import java.lang.Thread;
-import java.net.*;
-import java.util.*;
-
-/**
- * TestWebServer is a simulated controllable test server that
- * can respond to requests from HTTP clients.
- *
- * The server can be controlled to change how it reacts to any
- * requests, and can be told to simulate various events (such as
- * network failure) that would happen in a real environment.
- */
-class TestWebServer implements HttpConstants {
-
- /* static class data/methods */
-
- /* The ANDROID_LOG_TAG */
- private final static String LOGTAG = "httpsv";
-
- /* Where worker threads stand idle */
- Vector threads = new Vector();
-
- /* List of all active worker threads */
- Vector activeThreads = new Vector();
-
- /* timeout on client connections */
- int timeout = 0;
-
- /* max # worker threads */
- int workers = 5;
-
- /* Default port for this server to listen on */
- final static int DEFAULT_PORT = 8080;
-
- /* Default socket timeout value */
- final static int DEFAULT_TIMEOUT = 5000;
-
- /* Version string (configurable) */
- protected String HTTP_VERSION_STRING = "HTTP/1.1";
-
- /* Indicator for whether this server is configured as a HTTP/1.1
- * or HTTP/1.0 server
- */
- private boolean http11 = true;
-
- /* The thread handling new requests from clients */
- private AcceptThread acceptT;
-
- /* timeout on client connections */
- int mTimeout;
-
- /* Server port */
- int mPort;
-
- /* Switch on/off logging */
- boolean mLog = false;
-
- /* If set, this will keep connections alive after a request has been
- * processed.
- */
- boolean keepAlive = true;
-
- /* If set, this will cause response data to be sent in 'chunked' format */
- boolean chunked = false;
-
- /* If set, this will indicate a new redirection host */
- String redirectHost = null;
-
- /* If set, this indicates the reason for redirection */
- int redirectCode = -1;
-
- /* Set the number of connections the server will accept before shutdown */
- int acceptLimit = 100;
-
- /* Count of number of accepted connections */
- int acceptedConnections = 0;
-
- public TestWebServer() {
- }
-
- /**
- * Initialize a new server with default port and timeout.
- * @param log Set true if you want trace output
- */
- public void initServer(boolean log) throws Exception {
- initServer(DEFAULT_PORT, DEFAULT_TIMEOUT, log);
- }
-
- /**
- * Initialize a new server with default timeout.
- * @param port Sets the server to listen on this port
- * @param log Set true if you want trace output
- */
- public void initServer(int port, boolean log) throws Exception {
- initServer(port, DEFAULT_TIMEOUT, log);
- }
-
- /**
- * Initialize a new server with default port and timeout.
- * @param port Sets the server to listen on this port
- * @param timeout Indicates the period of time to wait until a socket is
- * closed
- * @param log Set true if you want trace output
- */
- public void initServer(int port, int timeout, boolean log) throws Exception {
- mPort = port;
- mTimeout = timeout;
- mLog = log;
- keepAlive = true;
-
- if (acceptT == null) {
- acceptT = new AcceptThread();
- acceptT.init();
- acceptT.start();
- }
- }
-
- /**
- * Print to the log file (if logging enabled)
- * @param s String to send to the log
- */
- protected void log(String s) {
- if (mLog) {
- Log.d(LOGTAG, s);
- }
- }
-
- /**
- * Set the server to be an HTTP/1.0 or HTTP/1.1 server.
- * This should be called prior to any requests being sent
- * to the server.
- * @param set True for the server to be HTTP/1.1, false for HTTP/1.0
- */
- public void setHttpVersion11(boolean set) {
- http11 = set;
- if (set) {
- HTTP_VERSION_STRING = "HTTP/1.1";
- } else {
- HTTP_VERSION_STRING = "HTTP/1.0";
- }
- }
-
- /**
- * Call this to determine whether server connection should remain open
- * @param value Set true to keep connections open after a request
- * completes
- */
- public void setKeepAlive(boolean value) {
- keepAlive = value;
- }
-
- /**
- * Call this to indicate whether chunked data should be used
- * @param value Set true to make server respond with chunk encoded
- * content data.
- */
- public void setChunked(boolean value) {
- chunked = value;
- }
-
- /**
- * Call this to specify the maximum number of sockets to accept
- * @param limit The number of sockets to accept
- */
- public void setAcceptLimit(int limit) {
- acceptLimit = limit;
- }
-
- /**
- * Call this to indicate redirection port requirement.
- * When this value is set, the server will respond to a request with
- * a redirect code with the Location response header set to the value
- * specified.
- * @param redirect The location to be redirected to
- * @param redirectCode The code to send when redirecting
- */
- public void setRedirect(String redirect, int code) {
- redirectHost = redirect;
- redirectCode = code;
- log("Server will redirect output to "+redirect+" code "+code);
- }
-
- /**
- * Cause the thread accepting connections on the server socket to close
- */
- public void close() {
- /* Stop the Accept thread */
- if (acceptT != null) {
- log("Closing AcceptThread"+acceptT);
- acceptT.close();
- acceptT = null;
- }
- }
- /**
- * The AcceptThread is responsible for initiating worker threads
- * to handle incoming requests from clients.
- */
- class AcceptThread extends Thread {
-
- ServerSocket ss = null;
- boolean running = false;
-
- public void init() {
- // Networking code doesn't support ServerSocket(port) yet
- InetSocketAddress ia = new InetSocketAddress(mPort);
- while (true) {
- try {
- ss = new ServerSocket();
- // Socket timeout functionality is not available yet
- //ss.setSoTimeout(5000);
- ss.setReuseAddress(true);
- ss.bind(ia);
- break;
- } catch (IOException e) {
- log("IOException in AcceptThread.init()");
- e.printStackTrace();
- // wait and retry
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- }
- }
- }
-
- /**
- * Main thread responding to new connections
- */
- public synchronized void run() {
- running = true;
- try {
- while (running) {
- // Log.d(LOGTAG, "TestWebServer run() calling accept()");
- Socket s = ss.accept();
- acceptedConnections++;
- if (acceptedConnections >= acceptLimit) {
- running = false;
- }
-
- Worker w = null;
- synchronized (threads) {
- if (threads.isEmpty()) {
- Worker ws = new Worker();
- ws.setSocket(s);
- activeThreads.addElement(ws);
- (new Thread(ws, "additional worker")).start();
- } else {
- w = (Worker) threads.elementAt(0);
- threads.removeElementAt(0);
- w.setSocket(s);
- }
- }
- }
- } catch (SocketException e) {
- log("SocketException in AcceptThread: probably closed during accept");
- running = false;
- } catch (IOException e) {
- log("IOException in AcceptThread");
- e.printStackTrace();
- running = false;
- }
- log("AcceptThread terminated" + this);
- }
-
- // Close this socket
- public void close() {
- try {
- running = false;
- /* Stop server socket from processing further. Currently
- this does not cause the SocketException from ss.accept
- therefore the acceptLimit functionality has been added
- to circumvent this limitation */
- ss.close();
-
- // Stop worker threads from continuing
- for (Enumeration e = activeThreads.elements(); e.hasMoreElements();) {
- Worker w = (Worker)e.nextElement();
- w.close();
- }
- activeThreads.clear();
-
- } catch (IOException e) {
- /* We are shutting down the server, so we expect
- * things to die. Don't propagate.
- */
- log("IOException caught by server socket close");
- }
- }
- }
-
- // Size of buffer for reading from the connection
- final static int BUF_SIZE = 2048;
-
- /* End of line byte sequence */
- static final byte[] EOL = {(byte)'\r', (byte)'\n' };
-
- /**
- * The worker thread handles all interactions with a current open
- * connection. If pipelining is turned on, this will allow this
- * thread to continuously operate on numerous requests before the
- * connection is closed.
- */
- class Worker implements HttpConstants, Runnable {
-
- /* buffer to use to hold request data */
- byte[] buf;
-
- /* Socket to client we're handling */
- private Socket s;
-
- /* Reference to current request method ID */
- private int requestMethod;
-
- /* Reference to current requests test file/data */
- private String testID;
-
- /* Reference to test number from testID */
- private int testNum;
-
- /* Reference to whether new request has been initiated yet */
- private boolean readStarted;
-
- /* Indicates whether current request has any data content */
- private boolean hasContent = false;
-
- boolean running = false;
-
- /* Request headers are stored here */
- private Hashtable<String, String> headers = new Hashtable<String, String>();
-
- /* Create a new worker thread */
- Worker() {
- buf = new byte[BUF_SIZE];
- s = null;
- }
-
- /**
- * Called by the AcceptThread to unblock this Worker to process
- * a request.
- * @param s The socket on which the connection has been made
- */
- synchronized void setSocket(Socket s) {
- this.s = s;
- notify();
- }
-
- /**
- * Called by the accept thread when it's closing. Potentially unblocks
- * the worker thread to terminate properly
- */
- synchronized void close() {
- running = false;
- notify();
- }
-
- /**
- * Main worker thread. This will wait until a request has
- * been identified by the accept thread upon which it will
- * service the thread.
- */
- public synchronized void run() {
- running = true;
- while(running) {
- if (s == null) {
- /* nothing to do */
- try {
- log(this+" Moving to wait state");
- wait();
- } catch (InterruptedException e) {
- /* should not happen */
- continue;
- }
- if (!running) break;
- }
- try {
- handleClient();
- } catch (Exception e) {
- e.printStackTrace();
- }
- /* go back in wait queue if there's fewer
- * than numHandler connections.
- */
- s = null;
- Vector pool = threads;
- synchronized (pool) {
- if (pool.size() >= workers) {
- /* too many threads, exit this one */
- activeThreads.remove(this);
- return;
- } else {
- pool.addElement(this);
- }
- }
- }
- log(this+" terminated");
- }
-
- /**
- * Zero out the buffer from last time
- */
- private void clearBuffer() {
- for (int i = 0; i < BUF_SIZE; i++) {
- buf[i] = 0;
- }
- }
-
- /**
- * Utility method to read a line of data from the input stream
- * @param is Inputstream to read
- * @return number of bytes read
- */
- private int readOneLine(InputStream is) {
-
- int read = 0;
-
- clearBuffer();
- try {
- log("Reading one line: started ="+readStarted+" avail="+is.available());
- while ((!readStarted) || (is.available() > 0)) {
- int data = is.read();
- // We shouldn't get EOF but we need tdo check
- if (data == -1) {
- log("EOF returned");
- return -1;
- }
-
- buf[read] = (byte)data;
-
- System.out.print((char)data);
-
- readStarted = true;
- if (buf[read++]==(byte)'\n') {
- System.out.println();
- return read;
- }
- }
- } catch (IOException e) {
- log("IOException from readOneLine");
- e.printStackTrace();
- }
- return read;
- }
-
- /**
- * Read a chunk of data
- * @param is Stream from which to read data
- * @param length Amount of data to read
- * @return number of bytes read
- */
- private int readData(InputStream is, int length) {
- int read = 0;
- int count;
- // At the moment we're only expecting small data amounts
- byte[] buf = new byte[length];
-
- try {
- while (is.available() > 0) {
- count = is.read(buf, read, length-read);
- read += count;
- }
- } catch (IOException e) {
- log("IOException from readData");
- e.printStackTrace();
- }
- return read;
- }
-
- /**
- * Read the status line from the input stream extracting method
- * information.
- * @param is Inputstream to read
- * @return number of bytes read
- */
- private int parseStatusLine(InputStream is) {
- int index;
- int nread = 0;
-
- log("Parse status line");
- // Check for status line first
- nread = readOneLine(is);
- // Bomb out if stream closes prematurely
- if (nread == -1) {
- requestMethod = UNKNOWN_METHOD;
- return -1;
- }
-
- if (buf[0] == (byte)'G' &&
- buf[1] == (byte)'E' &&
- buf[2] == (byte)'T' &&
- buf[3] == (byte)' ') {
- requestMethod = GET_METHOD;
- log("GET request");
- index = 4;
- } else if (buf[0] == (byte)'H' &&
- buf[1] == (byte)'E' &&
- buf[2] == (byte)'A' &&
- buf[3] == (byte)'D' &&
- buf[4] == (byte)' ') {
- requestMethod = HEAD_METHOD;
- log("HEAD request");
- index = 5;
- } else if (buf[0] == (byte)'P' &&
- buf[1] == (byte)'O' &&
- buf[2] == (byte)'S' &&
- buf[3] == (byte)'T' &&
- buf[4] == (byte)' ') {
- requestMethod = POST_METHOD;
- log("POST request");
- index = 5;
- } else {
- // Unhandled request
- requestMethod = UNKNOWN_METHOD;
- return -1;
- }
-
- // A valid method we understand
- if (requestMethod > UNKNOWN_METHOD) {
- // Read file name
- int i = index;
- while (buf[i] != (byte)' ') {
- // There should be HTTP/1.x at the end
- if ((buf[i] == (byte)'\n') || (buf[i] == (byte)'\r')) {
- requestMethod = UNKNOWN_METHOD;
- return -1;
- }
- i++;
- }
-
- testID = new String(buf, 0, index, i-index);
- if (testID.startsWith("/")) {
- testID = testID.substring(1);
- }
-
- return nread;
- }
- return -1;
- }
-
- /**
- * Read a header from the input stream
- * @param is Inputstream to read
- * @return number of bytes read
- */
- private int parseHeader(InputStream is) {
- int index = 0;
- int nread = 0;
- log("Parse a header");
- // Check for status line first
- nread = readOneLine(is);
- // Bomb out if stream closes prematurely
- if (nread == -1) {
- requestMethod = UNKNOWN_METHOD;
- return -1;
- }
- // Read header entry 'Header: data'
- int i = index;
- while (buf[i] != (byte)':') {
- // There should be an entry after the header
-
- if ((buf[i] == (byte)'\n') || (buf[i] == (byte)'\r')) {
- return UNKNOWN_METHOD;
- }
- i++;
- }
-
- String headerName = new String(buf, 0, i);
- i++; // Over ':'
- while (buf[i] == ' ') {
- i++;
- }
- String headerValue = new String(buf, i, nread-1);
-
- headers.put(headerName, headerValue);
- return nread;
- }
-
- /**
- * Read all headers from the input stream
- * @param is Inputstream to read
- * @return number of bytes read
- */
- private int readHeaders(InputStream is) {
- int nread = 0;
- log("Read headers");
- // Headers should be terminated by empty CRLF line
- while (true) {
- int headerLen = 0;
- headerLen = parseHeader(is);
- if (headerLen == -1)
- return -1;
- nread += headerLen;
- if (headerLen <= 2) {
- return nread;
- }
- }
- }
-
- /**
- * Read content data from the input stream
- * @param is Inputstream to read
- * @return number of bytes read
- */
- private int readContent(InputStream is) {
- int nread = 0;
- log("Read content");
- String lengthString = headers.get(requestHeaders[REQ_CONTENT_LENGTH]);
- int length = new Integer(lengthString).intValue();
-
- // Read content
- length = readData(is, length);
- return length;
- }
-
- /**
- * The main loop, reading requests.
- */
- void handleClient() throws IOException {
- InputStream is = new BufferedInputStream(s.getInputStream());
- PrintStream ps = new PrintStream(s.getOutputStream());
- int nread = 0;
-
- /* we will only block in read for this many milliseconds
- * before we fail with java.io.InterruptedIOException,
- * at which point we will abandon the connection.
- */
- s.setSoTimeout(mTimeout);
- s.setTcpNoDelay(true);
-
- do {
- nread = parseStatusLine(is);
- if (requestMethod != UNKNOWN_METHOD) {
-
- // If status line found, read any headers
- nread = readHeaders(is);
-
- // Then read content (if any)
- // TODO handle chunked encoding from the client
- if (headers.get(requestHeaders[REQ_CONTENT_LENGTH]) != null) {
- nread = readContent(is);
- }
- } else {
- if (nread > 0) {
- /* we don't support this method */
- ps.print(HTTP_VERSION_STRING + " " + HTTP_BAD_METHOD +
- " unsupported method type: ");
- ps.write(buf, 0, 5);
- ps.write(EOL);
- ps.flush();
- } else {
- }
- if (!keepAlive || nread <= 0) {
- headers.clear();
- readStarted = false;
-
- log("SOCKET CLOSED");
- s.close();
- return;
- }
- }
-
- // Reset test number prior to outputing data
- testNum = -1;
-
- // Write out the data
- printStatus(ps);
- printHeaders(ps);
-
- // Write line between headers and body
- psWriteEOL(ps);
-
- // Write the body
- if (redirectCode == -1) {
- switch (requestMethod) {
- case GET_METHOD:
- if ((testNum < 0) || (testNum > TestWebData.tests.length - 1)) {
- send404(ps);
- } else {
- sendFile(ps);
- }
- break;
- case HEAD_METHOD:
- // Nothing to do
- break;
- case POST_METHOD:
- // Post method write body data
- if ((testNum > 0) || (testNum < TestWebData.tests.length - 1)) {
- sendFile(ps);
- }
-
- break;
- default:
- break;
- }
- } else { // Redirecting
- switch (redirectCode) {
- case 301:
- // Seems 301 needs a body by neon (although spec
- // says SHOULD).
- psPrint(ps, TestWebData.testServerResponse[TestWebData.REDIRECT_301]);
- break;
- case 302:
- //
- psPrint(ps, TestWebData.testServerResponse[TestWebData.REDIRECT_302]);
- break;
- case 303:
- psPrint(ps, TestWebData.testServerResponse[TestWebData.REDIRECT_303]);
- break;
- case 307:
- psPrint(ps, TestWebData.testServerResponse[TestWebData.REDIRECT_307]);
- break;
- default:
- break;
- }
- }
-
- ps.flush();
-
- // Reset for next request
- readStarted = false;
- headers.clear();
-
- } while (keepAlive);
-
- log("SOCKET CLOSED");
- s.close();
- }
-
- // Print string to log and output stream
- void psPrint(PrintStream ps, String s) throws IOException {
- log(s);
- ps.print(s);
- }
-
- // Print bytes to log and output stream
- void psWrite(PrintStream ps, byte[] bytes, int len) throws IOException {
- log(new String(bytes));
- ps.write(bytes, 0, len);
- }
-
- // Print CRLF to log and output stream
- void psWriteEOL(PrintStream ps) throws IOException {
- log("CRLF");
- ps.write(EOL);
- }
-
-
- // Print status to log and output stream
- void printStatus(PrintStream ps) throws IOException {
- // Handle redirects first.
- if (redirectCode != -1) {
- log("REDIRECTING TO "+redirectHost+" status "+redirectCode);
- psPrint(ps, HTTP_VERSION_STRING + " " + redirectCode +" Moved permanently");
- psWriteEOL(ps);
- psPrint(ps, "Location: " + redirectHost);
- psWriteEOL(ps);
- return;
- }
-
-
- if (testID.startsWith("test")) {
- testNum = Integer.valueOf(testID.substring(4))-1;
- }
-
- if ((testNum < 0) || (testNum > TestWebData.tests.length - 1)) {
- psPrint(ps, HTTP_VERSION_STRING + " " + HTTP_NOT_FOUND + " not found");
- psWriteEOL(ps);
- } else {
- psPrint(ps, HTTP_VERSION_STRING + " " + HTTP_OK+" OK");
- psWriteEOL(ps);
- }
-
- log("Status sent");
- }
- /**
- * Create the server response and output to the stream
- * @param ps The PrintStream to output response headers and data to
- */
- void printHeaders(PrintStream ps) throws IOException {
- psPrint(ps,"Server: TestWebServer"+mPort);
- psWriteEOL(ps);
- psPrint(ps, "Date: " + (new Date()));
- psWriteEOL(ps);
- psPrint(ps, "Connection: " + ((keepAlive) ? "Keep-Alive" : "Close"));
- psWriteEOL(ps);
-
- // Yuk, if we're not redirecting, we add the file details
- if (redirectCode == -1) {
-
- if (!TestWebData.testParams[testNum].testDir) {
- if (chunked) {
- psPrint(ps, "Transfer-Encoding: chunked");
- } else {
- psPrint(ps, "Content-length: "+TestWebData.testParams[testNum].testLength);
- }
- psWriteEOL(ps);
-
- psPrint(ps,"Last Modified: " + (new
- Date(TestWebData.testParams[testNum].testLastModified)));
- psWriteEOL(ps);
-
- psPrint(ps, "Content-type: " + TestWebData.testParams[testNum].testType);
- psWriteEOL(ps);
- } else {
- psPrint(ps, "Content-type: text/html");
- psWriteEOL(ps);
- }
- } else {
- // Content-length of 301, 302, 303, 307 are the same.
- psPrint(ps, "Content-length: "+(TestWebData.testServerResponse[TestWebData.REDIRECT_301]).length());
- psWriteEOL(ps);
- psWriteEOL(ps);
- }
- log("Headers sent");
-
- }
-
- /**
- * Sends the 404 not found message
- * @param ps The PrintStream to write to
- */
- void send404(PrintStream ps) throws IOException {
- ps.println("Not Found\n\n"+
- "The requested resource was not found.\n");
- }
-
- /**
- * Sends the data associated with the headers
- * @param ps The PrintStream to write to
- */
- void sendFile(PrintStream ps) throws IOException {
- // For now just make a chunk with the whole of the test data
- // It might be worth making this multiple chunks for large
- // test data to test multiple chunks.
- int dataSize = TestWebData.tests[testNum].length;
- if (chunked) {
- psPrint(ps, Integer.toHexString(dataSize));
- psWriteEOL(ps);
- psWrite(ps, TestWebData.tests[testNum], dataSize);
- psWriteEOL(ps);
- psPrint(ps, "0");
- psWriteEOL(ps);
- psWriteEOL(ps);
- } else {
- psWrite(ps, TestWebData.tests[testNum], dataSize);
- }
- }
- }
-}
diff --git a/tests/CoreTests/android/core/TreeMapTest.java b/tests/CoreTests/android/core/TreeMapTest.java
deleted file mode 100644
index 229d86d..0000000
--- a/tests/CoreTests/android/core/TreeMapTest.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.util.HashMap;
-import java.util.Random;
-import java.util.TreeMap;
-import android.test.suitebuilder.annotation.LargeTest;
-
-/**
- * Tests for basic functinality of TreeMaps
- */
-public class TreeMapTest extends TestCase {
-
- private Random mRandom = new Random(1);
-
- private static final boolean SPEW = false;
-
- @LargeTest
- public void testTreeMap() {
- for (int i = 0; i < 10; i++) {
- if (SPEW) System.out.println("Running doTest cycle #" + (i + 1));
- doTest();
- }
- }
-
- private void doTest() {
- TreeMap<Integer, String> tm = new TreeMap<Integer, String>();
- HashMap<Integer, String> hm = new HashMap<Integer, String>();
-
- int minVal = Integer.MAX_VALUE;
- int maxVal = Integer.MIN_VALUE;
-
- for (int i = 0; i < 100; i++) {
- int val = mRandom.nextInt(1000);
- if (SPEW) System.out.println("Adding val = " + val);
- if (val < minVal) {
- minVal = val;
- }
- if (val > maxVal) {
- maxVal = val;
- }
- tm.put(new Integer(val), "V:" + val);
- hm.put(new Integer(val), "V:" + val);
-
- if (SPEW) System.out.println("tm = " + tm);
-
- if (SPEW) System.out.println("tm.size() = " + tm.size());
- if (SPEW) System.out.println("hm.size() = " + hm.size());
- assertEquals(tm.size(), hm.size());
-
- if (SPEW) System.out.println("tm.firstKey() = " + tm.firstKey());
- if (SPEW) System.out.println("minVal = " + minVal);
- if (SPEW) System.out.println("tm.lastKey() = " + tm.lastKey());
- if (SPEW) System.out.println("maxVal = " + maxVal);
- assertEquals(minVal, tm.firstKey().intValue());
- assertEquals(maxVal, tm.lastKey().intValue());
- }
-
- // Check for equality
- for (int val = 0; val < 1000; val++) {
- Integer vv = new Integer(val);
- String tms = tm.get(vv);
- String hms = hm.get(vv);
- assertEquals(tms, hms);
- }
-
- for (int i = 0; i < 1000; i++) {
- int val = mRandom.nextInt(1000);
- if (SPEW) System.out.println("Removing val = " + val);
-
- String tms = tm.remove(new Integer(val));
- String hms = hm.remove(new Integer(val));
-
- if (SPEW) System.out.println("tm = " + tm);
-
- assertEquals(tm.size(), hm.size());
- assertEquals(tms, hms);
- }
-
- // Check for equality
- for (int val = 0; val < 1000; val++) {
- Integer vv = new Integer(val);
- String tms = tm.get(vv);
- String hms = hm.get(vv);
- assertEquals(tms, hms);
- }
- }
-}
diff --git a/tests/CoreTests/android/core/URITest.java b/tests/CoreTests/android/core/URITest.java
deleted file mode 100644
index 3b821d8..0000000
--- a/tests/CoreTests/android/core/URITest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class URITest extends TestCase {
-
- @SmallTest
- public void testConstruct() throws Exception {
- construct("http://www.google.com/this/is-the/path?query#fragment",
- "www.google.com", "/this/is-the/path", true);
- }
-
- private static void construct(String str, String host, String path, boolean absolute)
- throws URISyntaxException {
- URI uri = new URI(str);
- assertEquals(host, uri.getHost());
- assertEquals(path, uri.getPath());
- assertEquals(absolute, uri.isAbsolute());
- }
-
- @SmallTest
- public void testResolve() throws Exception {
- resolve("http://www.google.com/your",
- "mom",
- "http://www.google.com/mom");
- }
-
- private static void resolve(String base, String uri, String expected) {
- URI b = URI.create(base);
- URI resolved = b.resolve(uri);
-// System.out.println("base=" + base + " uri=" + uri
-// + " resolved=" + resolved);
- assertEquals(expected, resolved.toString());
- }
-}
diff --git a/tests/CoreTests/android/core/URLTest.java b/tests/CoreTests/android/core/URLTest.java
deleted file mode 100644
index 56f9f7b..0000000
--- a/tests/CoreTests/android/core/URLTest.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.net.HttpURLConnection;
-import java.net.ServerSocket;
-import java.net.Socket;
-import java.net.URL;
-import java.net.URLConnection;
-
-import android.test.suitebuilder.annotation.Suppress;
-
-@Suppress
-public class URLTest extends TestCase {
-
- private static void get(String u) throws IOException {
- URL url = new URL(u);
- URLConnection cn = url.openConnection();
- cn.connect();
-// System.out.println("Content-Type: " + cn.getContentType());
-// System.out.println("Content-Length: " + cn.getContentLength());
-
- InputStream stream = cn.getInputStream();
- if (stream == null) {
- throw new RuntimeException("stream is null");
- }
- byte[] data = new byte[1024];
- stream.read(data);
-
-// if (true) {
-// System.out.print("data=");
-// System.out.write(data);
-// System.out.println();
-// }
-
-// System.out.println("Content-Type: " + cn.getContentType());
-// System.out.print("data:");
-// System.out.write(data);
-// System.out.println();
-
- assertTrue(new String(data).indexOf("<html>") >= 0);
- }
-
- public void testGetHTTP() throws Exception {
- get("http://www.google.com");
- }
-
- public void testGetHTTPS() throws Exception {
- get("https://www.fortify.net/cgi/ssl_2.pl");
- }
-
- /**
- * Dummy HTTP server class for testing keep-alive behavior. Listens a
- * single time and responds to a given number of requests on the same
- * socket. Then closes the socket.
- */
- private static class DummyServer implements Runnable {
-
- private int keepAliveCount;
-
- public DummyServer(int keepAliveCount) {
- this.keepAliveCount = keepAliveCount;
- }
-
- public void run() {
- try {
- ServerSocket server = new ServerSocket(8182);
- Socket socket = server.accept();
-
- InputStream input = socket.getInputStream();
- BufferedReader reader = new BufferedReader(new InputStreamReader(input));
- try {
- for (int i = 0; i < keepAliveCount; i++) {
- String header = reader.readLine();
- while (header != null && header.length() != 0) {
- header = reader.readLine();
- }
-
- OutputStream output = socket.getOutputStream();
- PrintWriter writer = new PrintWriter(output);
-
- try {
- writer.println("HTTP/1.1 200 OK");
- String body = "Hello, Android world #" + i + "!";
- writer.println("Content-Length: " + body.length());
- writer.println("");
- writer.print(body);
- writer.flush();
- } finally {
- writer.close();
- }
- }
- } finally {
- reader.close();
- }
- socket.close();
- server.close();
- } catch (Exception ex) {
- throw new RuntimeException(ex);
- }
- }
- }
-
- /**
- * Does a request to the given URL, reads and returns the result.
- */
- private String request(URL url) throws Exception {
- URLConnection connection = url.openConnection();
- connection.connect();
-
- InputStream input = connection.getInputStream();
- BufferedReader reader = new BufferedReader(new InputStreamReader(input));
- try {
- return reader.readLine();
- } finally {
- reader.close();
- }
- }
-
- /**
- * Test case for HTTP keep-alive behavior.
- */
- public void testGetKeepAlive() throws Exception {
- new Thread(new DummyServer(3)).start();
- Thread.sleep(100);
-
- // We expect the request to work three times, then it fails.
- URL url = new URL("http://localhost:8182");
- assertEquals("Hello, Android world #0!", request(url));
- assertEquals("Hello, Android world #1!", request(url));
- assertEquals("Hello, Android world #2!", request(url));
-
- try {
- request(url);
- fail("ConnectException expected.");
- } catch (Exception ex) {
- // Ok.
- }
- }
-
- /**
- * Regression for issue 1001814.
- */
- public void testHttpConnectionTimeout() throws Exception {
- int timeout = 5000;
- HttpURLConnection cn = null;
- long start = 0;
- try {
- start = System.currentTimeMillis();
- URL url = new URL("http://123.123.123.123");
- cn = (HttpURLConnection) url.openConnection();
- cn.setConnectTimeout(5000);
- cn.connect();
- fail("should have thrown an exception");
- } catch (IOException ioe) {
- long delay = System.currentTimeMillis() - start;
- if (Math.abs(timeout - delay) > 1000) {
- fail("Timeout was not accurate. it needed " + delay +
- " instead of " + timeout + "miliseconds");
- }
- } finally {
- if (cn != null) {
- cn.disconnect();
- }
- }
- }
-
- /**
- * Regression test for issue 1158780 where using '{' and '}' in an URL threw
- * an NPE. The RI accepts this URL and returns the status 404.
- */
- public void testMalformedUrl() throws Exception {
- URL url = new URL("http://www.google.com/cgi-bin/myscript?g={United+States}+Borders+Mexico+{Climate+change}+Marketing+{Automotive+industry}+News+Health+Internet");
- HttpURLConnection conn = (HttpURLConnection)url.openConnection();
- int status = conn.getResponseCode();
- android.util.Log.d("URLTest", "status: " + status);
- }
-}
diff --git a/tests/CoreTests/android/core/ZipFileTest.java b/tests/CoreTests/android/core/ZipFileTest.java
deleted file mode 100644
index 04b476b..0000000
--- a/tests/CoreTests/android/core/ZipFileTest.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Enumeration;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-import java.util.zip.ZipOutputStream;
-import android.test.suitebuilder.annotation.MediumTest;
-
-
-/**
- * Basic tests for ZipFile.
- */
-public class ZipFileTest extends TestCase {
- private static final int SAMPLE_SIZE = 128 * 1024;
-
- @MediumTest
- public void testZipFile() throws Exception {
-
- File file = File.createTempFile("ZipFileTest", ".zip");
- try {
- // create a test file; assume it's not going to collide w/anything
- FileOutputStream outStream = new FileOutputStream(file);
- createCompressedZip(outStream);
-// System.out.println("CREATED " + file);
-
- scanZip(file.getPath());
- read2(file.getPath());
- } finally {
- file.delete();
- }
- }
-
- /*
- * stepStep == 0 --> >99% compression
- * stepStep == 1 --> ~30% compression
- * stepStep == 2 --> no compression
- */
- static byte[] makeSampleFile(int stepStep) throws IOException {
- byte[] sample = new byte[SAMPLE_SIZE];
- byte val, step;
- int i, j, offset;
-
- val = 0;
- step = 1;
- offset = 0;
- for (i = 0; i < SAMPLE_SIZE / 256; i++) {
- for (j = 0; j < 256; j++) {
- sample[offset++] = val;
- val += step;
- }
-
- step += stepStep;
- }
-
- return sample;
- }
-
- static void createCompressedZip(OutputStream bytesOut) throws IOException {
- ZipOutputStream out = new ZipOutputStream(bytesOut);
- try {
- int i;
-
- for (i = 0; i < 3; i++) {
- byte[] input = makeSampleFile(i);
- ZipEntry newEntry = new ZipEntry("file-" + i);
-
- if (i != 1) {
- newEntry.setComment("this is file " + i);
- }
- out.putNextEntry(newEntry);
- out.write(input, 0, input.length);
- out.closeEntry();
- }
-
- out.setComment("This is a lovely compressed archive!");
- } finally {
- out.close();
- }
- }
-
- static void scanZip(String fileName) throws IOException {
- ZipFile zipFile = new ZipFile(fileName);
- Enumeration fileList;
- int idx = 0;
-
-// System.out.println("Contents of " + zipFile + ":");
- for (fileList = zipFile.entries(); fileList.hasMoreElements();) {
- ZipEntry entry = (ZipEntry) fileList.nextElement();
-// System.out.println(" " + entry.getName());
- assertEquals(entry.getName(), "file-" + idx);
- idx++;
- }
-
- zipFile.close();
- }
-
- /*
- * Read compressed data from two different entries at the same time,
- * to verify that the streams aren't getting confused. If we do
- * something wrong, the inflater will choke and throw a ZipException.
- *
- * This doesn't test synchronization in multi-threaded use.
- */
- static void read2(String fileName) throws IOException {
- ZipFile zipFile;
- ZipEntry entry1, entry2;
- byte buf[] = new byte[16384];
- InputStream stream1, stream2;
- int len, totalLen1, totalLen2;
-
- /* use file-1 and file-2 because the compressed data is large */
- zipFile = new ZipFile(fileName);
- entry1 = zipFile.getEntry("file-1");
- entry2 = zipFile.getEntry("file-2");
-
- /* make sure we got the right thing */
- assertEquals("file-1", entry1.getName());
- assertEquals("file-2", entry2.getName());
-
- /* create streams */
- stream1 = zipFile.getInputStream(entry1);
- stream2 = zipFile.getInputStream(entry2);
-
- /*
- * Read a piece of file #1.
- */
- totalLen1 = stream1.read(buf);
- assertTrue("initial read failed on #1", totalLen1 >= 0);
-
- /*
- * Read a piece of file #2.
- */
- totalLen2 = stream2.read(buf);
- assertTrue("initial read failed on #2", totalLen2 >= 0);
-
- /*
- * Read the rest of file #1, and close the stream.
- *
- * If our streams are crossed up, we'll fail here.
- */
- while ((len = stream1.read(buf)) > 0) {
- totalLen1 += len;
- }
- assertEquals(SAMPLE_SIZE, totalLen1);
- stream1.close();
-
- /*
- * Read the rest of file #2, and close the stream.
- */
- while ((len = stream2.read(buf)) > 0) {
- totalLen2 += len;
- }
- assertEquals(SAMPLE_SIZE, totalLen2);
- stream2.close();
-
- /*
- * Open a new one.
- */
- stream1 = zipFile.getInputStream(zipFile.getEntry("file-0"));
-
- /*
- * Close the ZipFile. According to the RI, none if its InputStreams can
- * be read after this point.
- */
- zipFile.close();
-
- Exception error = null;
- try {
- stream1.read(buf);
- } catch (Exception ex) {
- error = ex;
- }
-
- assertNotNull("ZipFile shouldn't allow reading of closed files.", error);
- }
-}
-
diff --git a/tests/CoreTests/android/core/ZipStreamTest.java b/tests/CoreTests/android/core/ZipStreamTest.java
deleted file mode 100644
index 74cfe82..0000000
--- a/tests/CoreTests/android/core/ZipStreamTest.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.core;
-
-import junit.framework.TestCase;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-import java.util.zip.ZipOutputStream;
-import android.test.suitebuilder.annotation.LargeTest;
-
-/**
- * Basic tests for ZipStream
- */
-public class ZipStreamTest extends TestCase {
-
- @LargeTest
- public void testZipStream() throws Exception {
- ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
- createCompressedZip(bytesOut);
-
- byte[] zipData = bytesOut.toByteArray();
-
- /*
- FileOutputStream outFile = new FileOutputStream("/tmp/foo.zip");
- outFile.write(zipData, 0, zipData.length);
- outFile.close();
- */
-
- /*
- FileInputStream inFile = new FileInputStream("/tmp/foo.zip");
- int inputLength = inFile.available();
- zipData = new byte[inputLength];
- if (inFile.read(zipData) != inputLength)
- throw new RuntimeException();
- inFile.close();
- */
-
- ByteArrayInputStream bytesIn = new ByteArrayInputStream(zipData);
- scanZip(bytesIn);
-
- bytesOut = new ByteArrayOutputStream();
- createUncompressedZip(bytesOut);
-
- zipData = bytesOut.toByteArray();
-
- bytesIn = new ByteArrayInputStream(zipData);
- scanZip(bytesIn);
- }
-
- /*
- * stepStep == 0 --> >99% compression
- * stepStep == 1 --> ~30% compression
- * stepStep == 2 --> no compression
- */
- private static byte[] makeSampleFile(int stepStep) throws IOException {
- byte[] sample = new byte[128 * 1024];
- byte val, step;
- int i, j, offset;
-
- val = 0;
- step = 1;
- offset = 0;
- for (i = 0; i < (128 * 1024) / 256; i++) {
- for (j = 0; j < 256; j++) {
- sample[offset++] = val;
- val += step;
- }
-
- step += stepStep;
- }
-
- return sample;
- }
-
- private static void createCompressedZip(ByteArrayOutputStream bytesOut) throws IOException {
- ZipOutputStream out = new ZipOutputStream(bytesOut);
- try {
- int i;
-
- for (i = 0; i < 3; i++) {
- byte[] input = makeSampleFile(i);
- ZipEntry newEntry = new ZipEntry("file-" + i);
-
- if (i != 1)
- newEntry.setComment("this is file " + i);
- out.putNextEntry(newEntry);
- out.write(input, 0, input.length);
- out.closeEntry();
- }
-
- out.setComment("This is a lovely compressed archive!");
- } finally {
- out.close();
- }
- }
-
- private static void createUncompressedZip(ByteArrayOutputStream bytesOut) throws IOException {
- ZipOutputStream out = new ZipOutputStream(bytesOut);
- try {
- long[] crcs = {0x205fbff3, 0x906fae57L, 0x2c235131};
- int i;
-
- for (i = 0; i < 3; i++) {
- byte[] input = makeSampleFile(i);
- ZipEntry newEntry = new ZipEntry("file-" + i);
-
- if (i != 1)
- newEntry.setComment("this is file " + i);
- newEntry.setMethod(ZipEntry.STORED);
- newEntry.setSize(128 * 1024);
- newEntry.setCrc(crcs[i]);
- out.putNextEntry(newEntry);
- out.write(input, 0, input.length);
- out.closeEntry();
- }
-
- out.setComment("This is a lovely, but uncompressed, archive!");
- } finally {
- out.close();
- }
- }
-
- private static void scanZip(ByteArrayInputStream bytesIn) throws IOException {
- ZipInputStream in = new ZipInputStream(bytesIn);
- try {
- int i;
-
- for (i = 0; i < 3; i++) {
- ZipEntry entry = in.getNextEntry();
- ByteArrayOutputStream contents = new ByteArrayOutputStream();
- byte[] buf = new byte[4096];
- int len, totalLen = 0;
-
- while ((len = in.read(buf)) > 0) {
- contents.write(buf, 0, len);
- totalLen += len;
- }
-
- assertEquals(128 * 1024, totalLen);
-
-// System.out.println("ZipStreamTest: name='" + entry.getName()
-// + "', zero=" + contents.toByteArray()[0]
-// + ", tfs=" + contents.toByteArray()[257]
-// + ", crc=" + Long.toHexString(entry.getCrc()));
- }
-
- assertNull("should only be three entries", in.getNextEntry());
- } finally {
- in.close();
- }
- }
-}
-
diff --git a/tests/CoreTests/android/database/MatrixCursorTest.java b/tests/CoreTests/android/database/MatrixCursorTest.java
deleted file mode 100644
index fb8a12f..0000000
--- a/tests/CoreTests/android/database/MatrixCursorTest.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.database;
-
-import junit.framework.TestCase;
-
-import java.util.*;
-
-public class MatrixCursorTest extends TestCase {
-
- public void testEmptyCursor() {
- Cursor cursor = new MatrixCursor(new String[] { "a" });
- assertEquals(0, cursor.getCount());
- }
-
- public void testNullValue() {
- MatrixCursor cursor = new MatrixCursor(new String[] { "a" });
- cursor.newRow().add(null);
- cursor.moveToNext();
- assertTrue(cursor.isNull(0));
- }
-
- public void testMatrixCursor() {
- MatrixCursor cursor = newMatrixCursor();
-
- cursor.newRow()
- .add("a")
- .add(1)
- .add(2)
- .add(3)
- .add(4)
- .add(5);
-
- cursor.moveToNext();
-
- checkValues(cursor);
-
- cursor.newRow()
- .add("a")
- .add("1")
- .add("2")
- .add("3")
- .add("4")
- .add("5");
-
- cursor.moveToNext();
- checkValues(cursor);
-
- cursor.moveToPrevious();
- checkValues(cursor);
- }
-
- public void testAddArray() {
- MatrixCursor cursor = newMatrixCursor();
-
- cursor.addRow(new Object[] { "a", 1, 2, 3, 4, 5 });
- cursor.moveToNext();
- checkValues(cursor);
-
- try {
- cursor.addRow(new Object[0]);
- fail();
- } catch (IllegalArgumentException e) { /* expected */ }
- }
-
- public void testAddIterable() {
- MatrixCursor cursor = newMatrixCursor();
-
- cursor.addRow(Arrays.asList("a", 1, 2, 3, 4, 5));
- cursor.moveToNext();
- checkValues(cursor);
-
- try {
- cursor.addRow(Collections.emptyList());
- fail();
- } catch (IllegalArgumentException e) { /* expected */ }
-
- try {
- cursor.addRow(Arrays.asList("a", 1, 2, 3, 4, 5, "Too many!"));
- fail();
- } catch (IllegalArgumentException e) { /* expected */ }
- }
-
- public void testAddArrayList() {
- MatrixCursor cursor = newMatrixCursor();
-
- cursor.addRow(new NonIterableArrayList<Object>(
- Arrays.asList("a", 1, 2, 3, 4, 5)));
- cursor.moveToNext();
- checkValues(cursor);
-
- try {
- cursor.addRow(new NonIterableArrayList<Object>());
- fail();
- } catch (IllegalArgumentException e) { /* expected */ }
-
- try {
- cursor.addRow(new NonIterableArrayList<Object>(
- Arrays.asList("a", 1, 2, 3, 4, 5, "Too many!")));
- fail();
- } catch (IllegalArgumentException e) { /* expected */ }
- }
-
- static class NonIterableArrayList<T> extends ArrayList<T> {
-
- NonIterableArrayList() {}
-
- NonIterableArrayList(Collection<? extends T> ts) {
- super(ts);
- }
-
- @Override
- public Iterator<T> iterator() {
- throw new AssertionError();
- }
- }
-
- private MatrixCursor newMatrixCursor() {
- return new MatrixCursor(new String[] {
- "string", "short", "int", "long", "float", "double" });
- }
-
- private void checkValues(MatrixCursor cursor) {
- assertEquals("a", cursor.getString(0));
- assertEquals(1, cursor.getShort(1));
- assertEquals(2, cursor.getInt(2));
- assertEquals(3, cursor.getLong(3));
- assertEquals(4.0f, cursor.getFloat(4));
- assertEquals(5.0D, cursor.getDouble(5));
- }
-
-}
diff --git a/tests/CoreTests/android/graphics/ColorStateListTest.java b/tests/CoreTests/android/graphics/ColorStateListTest.java
deleted file mode 100644
index 68c2fc1..0000000
--- a/tests/CoreTests/android/graphics/ColorStateListTest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.graphics;
-
-import android.content.res.Resources;
-import android.content.res.ColorStateList;
-import android.test.AndroidTestCase;
-import android.core.R;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Tests of {@link android.graphics.ColorStateList}
- */
-
-public class ColorStateListTest extends AndroidTestCase {
-
- private Resources mResources;
- private int mFailureColor;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mResources = mContext.getResources();
- mFailureColor = mResources.getColor(R.color.failColor);
- }
-
- @SmallTest
- public void testStateIsInList() throws Exception {
- ColorStateList colorStateList = mResources.getColorStateList(R.color.color1);
- int[] focusedState = {android.R.attr.state_focused};
- int focusColor = colorStateList.getColorForState(focusedState, R.color.failColor);
- assertEquals(mResources.getColor(R.color.testcolor1), focusColor);
- }
-
- @SmallTest
- public void testEmptyState() throws Exception {
- ColorStateList colorStateList = mResources.getColorStateList(R.color.color1);
- int[] emptyState = {};
- int defaultColor = colorStateList.getColorForState(emptyState, mFailureColor);
- assertEquals(mResources.getColor(R.color.testcolor2), defaultColor);
- }
-
- @SmallTest
- public void testGetColor() throws Exception {
- int defaultColor = mResources.getColor(R.color.color1);
- assertEquals(mResources.getColor(R.color.testcolor2), defaultColor);
- }
-
- @SmallTest
- public void testGetColorWhenListHasNoDefault() throws Exception {
- int defaultColor = mResources.getColor(R.color.color_no_default);
- assertEquals(mResources.getColor(R.color.testcolor1), defaultColor);
- }
-}
diff --git a/tests/CoreTests/android/graphics/drawable/StateListDrawableTest.java b/tests/CoreTests/android/graphics/drawable/StateListDrawableTest.java
deleted file mode 100644
index 0d9f72e..0000000
--- a/tests/CoreTests/android/graphics/drawable/StateListDrawableTest.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.graphics.drawable;
-
-import junit.framework.TestCase;
-
-import android.R;
-import android.graphics.Canvas;
-import android.graphics.ColorFilter;
-import android.util.StateSet;
-import android.view.MockView;
-
-/**
- * Tests for StateListDrawable
- *
- */
-
-public class StateListDrawableTest extends TestCase {
-
- private StateListDrawable slDrawable;
- private MockDrawable mockFocusedDrawable;
- private MockDrawable mockCheckedDrawable;
- private MockView mockView;
- private MockDrawable mockDefaultDrawable;
-
-
- // Re-enable tests when we are running in the framework-test directory which allows
- // access to package private access for MockView
-
- public void broken_testFocusScenarioSetStringWildcardFirst() throws Exception {
- int focusedStateSet[] = {R.attr.state_focused};
- int checkedStateSet[] = {R.attr.state_checked};
- slDrawable.addState(StateSet.WILD_CARD,
- mockDefaultDrawable);
- slDrawable.addState(checkedStateSet, mockCheckedDrawable);
- slDrawable.addState(focusedStateSet, mockFocusedDrawable);
- mockView.requestFocus();
- mockView.getBackground().draw(null);
- assertTrue(mockDefaultDrawable.wasDrawn);
- }
-
- public void broken_testFocusScenarioStateSetWildcardLast() throws Exception {
- int focusedStateSet[] = {R.attr.state_focused};
- int checkedStateSet[] = {R.attr.state_checked};
- slDrawable.addState(checkedStateSet, mockCheckedDrawable);
- slDrawable.addState(focusedStateSet, mockFocusedDrawable);
- slDrawable.addState(StateSet.WILD_CARD,
- mockDefaultDrawable);
- mockView.requestFocus();
- mockView.getBackground().draw(null);
- assertTrue(mockFocusedDrawable.wasDrawn);
- }
-
-
- protected void setUp() throws Exception {
- super.setUp();
- slDrawable = new StateListDrawable();
- mockFocusedDrawable = new MockDrawable();
- mockCheckedDrawable = new MockDrawable();
- mockDefaultDrawable = new MockDrawable();
- mockView = new MockView();
- mockView.setBackgroundDrawable(slDrawable);
- }
-
- static class MockDrawable extends Drawable {
-
- public boolean wasDrawn = false;
-
- public void draw(Canvas canvas) {
- wasDrawn = true;
- }
-
- public void setAlpha(int alpha) {
- }
-
- public void setColorFilter(ColorFilter cf) {
- }
-
- public int getOpacity() {
- return android.graphics.PixelFormat.UNKNOWN;
- }
- }
-
-}
diff --git a/tests/CoreTests/android/location/LocationManagerProximityTest.java b/tests/CoreTests/android/location/LocationManagerProximityTest.java
deleted file mode 100644
index 5f62983..0000000
--- a/tests/CoreTests/android/location/LocationManagerProximityTest.java
+++ /dev/null
@@ -1,307 +0,0 @@
-/*
- * Copyright (C) 2008 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package android.location;
-
-import android.app.PendingIntent;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.location.Criteria;
-import android.location.Location;
-import android.location.LocationManager;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.util.Log;
-
-/**
- * Tests for LocationManager.addProximityAlert
- *
- * TODO: add tests for more scenarios
- *
- * To run:
- * adb shell am instrument -e class com.google.android.mapstests.api.LocationProximityTest \
- * -w com.google.android.mapstests/.MapInstrumentationTestRunner
- *
- */
-@MediumTest
-public class LocationManagerProximityTest extends AndroidTestCase {
-
- private static final int UPDATE_LOCATION_WAIT_TIME = 1000;
- private static final int PROXIMITY_WAIT_TIME = 2000;
-
- private LocationManager mLocationManager;
- private PendingIntent mPendingIntent;
- private TestIntentReceiver mIntentReceiver;
- private String mOriginalAllowedProviders;
- private int mOriginalMocksAllowed;
-
- private static final String LOG_TAG = "LocationProximityTest";
-
- // use network provider as mock location provider, because:
- // - proximity alert is hardcoded to listen to only network or gps
- // - 'network' provider is not installed in emulator, so can mock it
- // using test provider APIs
- private static final String PROVIDER_NAME = LocationManager.NETWORK_PROVIDER;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- // allow mock locations
- mOriginalMocksAllowed =
- android.provider.Settings.Secure.getInt(getContext().getContentResolver(),
- android.provider.Settings.Secure.ALLOW_MOCK_LOCATION, 0);
-
- android.provider.Settings.Secure.putInt(getContext().getContentResolver(),
- android.provider.Settings.Secure.ALLOW_MOCK_LOCATION, 1);
-
- mOriginalAllowedProviders =
- android.provider.Settings.Secure.getString(
- getContext().getContentResolver(),
- android.provider.Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
-
- // ensure 'only' the mock provider is enabled
- // need to do this so the proximity listener does not ignore the mock
- // updates in favor of gps updates
- android.provider.Settings.Secure.putString(
- getContext().getContentResolver(),
- android.provider.Settings.Secure.LOCATION_PROVIDERS_ALLOWED,
- PROVIDER_NAME);
-
- mLocationManager = (LocationManager) getContext().
- getSystemService(Context.LOCATION_SERVICE);
- if (mLocationManager.getProvider(PROVIDER_NAME) != null) {
- mLocationManager.removeTestProvider(PROVIDER_NAME);
- }
-
- mLocationManager.addTestProvider(PROVIDER_NAME, true, //requiresNetwork,
- false, // requiresSatellite,
- true, // requiresCell,
- false, // hasMonetaryCost,
- false, // supportsAltitude,
- false, // supportsSpeed, s
- false, // upportsBearing,
- Criteria.POWER_MEDIUM, // powerRequirement
- Criteria.ACCURACY_FINE); // accuracy
- }
-
- @Override
- protected void tearDown() throws Exception {
- mLocationManager.removeTestProvider(PROVIDER_NAME);
-
- if (mPendingIntent != null) {
- mLocationManager.removeProximityAlert(mPendingIntent);
- }
- if (mIntentReceiver != null) {
- getContext().unregisterReceiver(mIntentReceiver);
- }
-
- android.provider.Settings.Secure.putInt(getContext().getContentResolver(),
- android.provider.Settings.Secure.ALLOW_MOCK_LOCATION, mOriginalMocksAllowed);
-
- if (mOriginalAllowedProviders != null) {
- // restore original settings
- android.provider.Settings.Secure.putString(
- getContext().getContentResolver(),
- android.provider.Settings.Secure.LOCATION_PROVIDERS_ALLOWED,
- mOriginalAllowedProviders);
- mLocationManager.updateProviders();
- }
- }
-
- /**
- * Tests basic proximity alert when entering proximity
- */
- public void testEnterProximity() throws Exception {
- doTestEnterProximity(10000);
- }
-
- /**
- * Tests proximity alert when entering proximity, with no expiration
- */
- public void testEnterProximity_noexpire() throws Exception {
- doTestEnterProximity(-1);
- }
-
- /**
- * Helper variant for testing enter proximity scenario
- * TODO: add additional parameters as more scenarios are added
- *
- * @param expiration - expiry of proximity alert
- */
- private void doTestEnterProximity(long expiration) throws Exception {
- // update location to outside proximity range
- synchronousSendLocation(30, 30);
- registerProximityListener(0, 0, 1000, expiration);
- sendLocation(0, 0);
- waitForAlert();
- assertProximityType(true);
- }
-
- /**
- * Tests basic proximity alert when exiting proximity
- */
- public void testExitProximity() throws Exception {
- // first do enter proximity scenario
- doTestEnterProximity(-1);
-
- // now update to trigger exit proximity proximity
- mIntentReceiver.clearReceivedIntents();
- sendLocation(20, 20);
- waitForAlert();
- assertProximityType(false);
- }
-
- /**
- * Registers the proximity intent receiver
- */
- private void registerProximityListener(double latitude, double longitude,
- float radius, long expiration) {
- String intentKey = "testProximity";
- Intent proximityIntent = new Intent(intentKey);
- mPendingIntent = PendingIntent.getBroadcast(getContext(), 0,
- proximityIntent, PendingIntent.FLAG_CANCEL_CURRENT);
- mIntentReceiver = new TestIntentReceiver(intentKey);
-
- mLocationManager.addProximityAlert(latitude, longitude, radius,
- expiration, mPendingIntent);
-
- getContext().registerReceiver(mIntentReceiver,
- mIntentReceiver.getFilter());
-
- }
-
- /**
- * Blocks until proximity intent notification is received
- * @throws InterruptedException
- */
- private void waitForAlert() throws InterruptedException {
- Log.d(LOG_TAG, "Waiting for proximity update");
- synchronized (mIntentReceiver) {
- mIntentReceiver.wait(PROXIMITY_WAIT_TIME);
- }
-
- assertNotNull("Did not receive proximity alert",
- mIntentReceiver.getLastReceivedIntent());
- }
-
- /**
- * Asserts that the received intent had the enter proximity property set as
- * expected
- * @param expectedEnterProximity - true if enter proximity expected, false if
- * exit expected
- */
- private void assertProximityType(boolean expectedEnterProximity)
- throws Exception {
- boolean proximityTest = mIntentReceiver.getLastReceivedIntent().
- getBooleanExtra(LocationManager.KEY_PROXIMITY_ENTERING,
- !expectedEnterProximity);
- assertEquals("proximity alert not set to expected enter proximity value",
- expectedEnterProximity, proximityTest);
- }
-
- /**
- * Synchronous variant of sendLocation
- */
- private void synchronousSendLocation(final double latitude,
- final double longitude)
- throws InterruptedException {
- sendLocation(latitude, longitude, this);
- // wait for location to be set
- synchronized (this) {
- wait(UPDATE_LOCATION_WAIT_TIME);
- }
- }
-
- /**
- * Asynchronously update the mock location provider without notification
- */
- private void sendLocation(final double latitude, final double longitude) {
- sendLocation(latitude, longitude, null);
- }
-
- /**
- * Asynchronously update the mock location provider with given latitude and
- * longitude
- *
- * @param latitude - update location
- * @param longitude - update location
- * @param observer - optionally, object to notify when update is sent.If
- * null, no update will be sent
- */
- private void sendLocation(final double latitude, final double longitude,
- final Object observer) {
- Thread locationUpdater = new Thread() {
- @Override
- public void run() {
- Location loc = new Location(PROVIDER_NAME);
- loc.setLatitude(latitude);
- loc.setLongitude(longitude);
-
- loc.setTime(java.lang.System.currentTimeMillis());
- Log.d(LOG_TAG, "Sending update for " + PROVIDER_NAME);
- mLocationManager.setTestProviderLocation(PROVIDER_NAME, loc);
- if (observer != null) {
- synchronized (observer) {
- observer.notify();
- }
- }
- }
- };
- locationUpdater.start();
-
- }
-
- /**
- * Helper class that receives a proximity intent and notifies the main class
- * when received
- */
- private static class TestIntentReceiver extends BroadcastReceiver {
-
- private String mExpectedAction;
- private Intent mLastReceivedIntent;
-
- public TestIntentReceiver(String expectedAction) {
- mExpectedAction = expectedAction;
- mLastReceivedIntent = null;
- }
-
- public IntentFilter getFilter() {
- IntentFilter filter = new IntentFilter(mExpectedAction);
- return filter;
- }
-
- @Override
- public void onReceive(Context context, Intent intent) {
- if (intent != null && mExpectedAction.equals(intent.getAction())) {
- Log.d(LOG_TAG, "Intent Received: " + intent.toString());
- mLastReceivedIntent = intent;
- synchronized (this) {
- notify();
- }
- }
- }
-
- public Intent getLastReceivedIntent() {
- return mLastReceivedIntent;
- }
-
- public void clearReceivedIntents() {
- mLastReceivedIntent = null;
- }
- }
-}
diff --git a/tests/CoreTests/android/location/LocationTest.java b/tests/CoreTests/android/location/LocationTest.java
deleted file mode 100644
index 847ac7a..0000000
--- a/tests/CoreTests/android/location/LocationTest.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * Copyright (C) 2007 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.location;
-
-import android.test.suitebuilder.annotation.SmallTest;
-
-import junit.framework.TestCase;
-
-/**
- * Unit tests for android.location.Location
- */
-@SmallTest
-public class LocationTest extends TestCase {
-
- // ***** Tests for Location.convert
- public void testConvert_DegreesToDouble(){
- String testDegreesCoord = "-80.075";
- String message;
- double result;
-
- result = Location.convert(testDegreesCoord);
- message = "degreesToDoubleTest: Double should be -80.075, actual value is " +
- String.valueOf(result);
- assertEquals(message, -80.075, result);
- }
-
- public void testConvert_MinutesToDouble(){
- String testMinutesCoord = "-80:05.10000";
- String message;
- double result;
-
- result = Location.convert(testMinutesCoord);
- message = "minutesToDoubleTest: Double should be -80.085, actual value is " +
- String.valueOf(result);
- assertEquals(message, -80.085, result);
- }
-
- public void testConvert_SecondsToDouble(){
- String testSecondsCoord = "-80:04:03.00000";
- String message;
- double result;
-
- result = Location.convert(testSecondsCoord);
- message = "secondsToDoubleTest: Double should be -80.0675, actual value is " +
- String.valueOf(result);
- assertEquals(message, -80.0675, result);
- }
-
- public void testConvert_SecondsToDouble2(){
- String testSecondsCoord = "-80:4:3";
- String message;
- double result;
-
- result = Location.convert(testSecondsCoord);
- message = "secondsToDouble2Test: Double should be -80.0675, actual value is " +
- String.valueOf(result);
- assertEquals(message, -80.0675, result);
- }
-
- // Testing the Convert(Double, Int)
- public void testConvert_CoordinateToDegrees(){
- String message;
- String result;
-
- result = Location.convert(-80.075, Location.FORMAT_DEGREES);
- message = "coordinateToDegreesTest: Should return a string -80.075, but returned " + result;
- assertEquals(message, "-80.075", result);
- }
-
- public void testConvert_CoordinateToDegrees2(){
- String message;
- String result;
- result = Location.convert(-80.0, Location.FORMAT_DEGREES);
- message = "coordinateToDegrees2Test: Should return a string -80, but returned " + result;
- assertEquals(message, "-80", result);
- }
-
- public void testConvert_CoordinateToMinutes(){
- String message;
- String result;
- double input = -80.085;
- result = Location.convert(input, Location.FORMAT_MINUTES);
- message = "coordinateToMinuteTest: Should return a string -80:5.1, but returned " +
- result;
- assertEquals(message, "-80:5.1", result);
- }
-
- public void testConvert_CoordinateToMinutes2(){
- String message;
- String result;
- double input = -80;
- result = Location.convert(input, Location.FORMAT_MINUTES);
- message = "coordinateToMinute2Test: Should return a string -80:0, but returned " +
- result;
- assertEquals(message, "-80:0", result);
- }
-
- public void testConvert_CoordinateToSeconds(){
- String message;
- String result;
-
- result = Location.convert(-80.075, Location.FORMAT_SECONDS);
- message = "coordinateToSecondsTest: Should return a string -80:4:30, but returned " +
- result;
- assertEquals(message, "-80:4:30", result);
- }
- // **** end tests for Location.convert
-
-
- public void testBearingTo(){
- String message;
- float bearing;
- Location zeroLocation = new Location("");
- zeroLocation.setLatitude(0);
- zeroLocation.setLongitude(0);
-
- Location testLocation = new Location("");
- testLocation.setLatitude(1000000);
- testLocation.setLongitude(0);
-
- bearing = zeroLocation.bearingTo(zeroLocation);
- message = "bearingToTest: Bearing should be 0, actual value is " + String.valueOf(bearing);
- assertEquals(message, 0, bearing, 0);
-
- bearing = zeroLocation.bearingTo(testLocation);
- message = "bearingToTest: Bearing should be 180, actual value is " +
- String.valueOf(bearing);
- assertEquals(message, 180, bearing, 0);
-
- testLocation.setLatitude(0);
- testLocation.setLongitude(1000000);
- bearing = zeroLocation.bearingTo(testLocation);
- message = "bearingToTest: Bearing should be -90, actual value is " +
- String.valueOf(bearing);
- assertEquals(message, -90, bearing, 0);
-
- //TODO: Test a Random Middle Value
- }
-
- public void testDistanceTo() {
- String message;
- boolean result = true;
- float distance;
- Location zeroLocation = new Location("");
- zeroLocation.setLatitude(0);
- zeroLocation.setLongitude(0);
-
- Location testLocation = new Location("");
- testLocation.setLatitude(1000000);
- testLocation.setLongitude(0);
-
- distance = zeroLocation.distanceTo(zeroLocation);
- message = "distanceToTest: Distance should be 0, actual value is " +
- String.valueOf(distance);
- assertEquals(message, distance, 0, 0);
-
- distance = zeroLocation.distanceTo(testLocation);
- message = "distanceToTest: Distance should be 8885140, actual value is " +
- String.valueOf(distance);
- assertEquals(message, distance, 8885140.0, 1);
- }
-
- public void testAltitude() {
- String message;
- Location loc = new Location("");
-
- loc.setAltitude(1);
- message = "altitudeTest: set/getAltitude to 1 didn't work.";
- assertEquals(message, loc.getAltitude(), 1, 0);
- message = "altitudeTest: hasAltitude (a) didn't work.";
- assertTrue(message, loc.hasAltitude());
-
- loc.removeAltitude();
- message = "altitudeTest: hasAltitude (b) didn't work.";
- assertFalse(message, loc.hasAltitude());
- message = "altitudeTest: getAltitude didn't return 0 when there was no altitude.";
- assertEquals(message, loc.getAltitude(), 0, 0);
- }
-
- public void testSpeed() {
- String message;
- Location loc = new Location("");
-
- loc.setSpeed(1);
- message = "speedTest: set/getSpeed to 1 didn't work.";
- assertEquals(message, loc.getSpeed(), 1, 0);
- message = "speedTest: hasSpeed (a) didn't work.";
- assertTrue(message, loc.hasSpeed());
-
- loc.removeSpeed();
- message = "speedTest: hasSpeed (b) didn't work.";
- assertFalse(message, loc.hasSpeed());
- message = "speedTest: getSpeed didn't return 0 when there was no speed.";
- assertEquals(message, loc.getSpeed(), 0, 0);
- }
-
- public void testBearing() {
- String message;
- Location loc = new Location("");
-
- loc.setBearing(1);
- message = "bearingTest: set/getBearing to 1 didn't work.";
- assertEquals(message, loc.getBearing(), 1, 0);
- message = "bearingTest: hasBearing (a) didn't work.";
- assertTrue(message, loc.hasBearing());
-
- loc.removeBearing();
- message = "bearingTest: hasBearing (b) didn't work.";
- assertFalse(message, loc.hasBearing());
- message = "bearingTest: getBearing didn't return 0 when there was no bearing.";
- assertEquals(message, loc.getBearing(), 0, 0);
- }
-
-}
-
-
diff --git a/tests/CoreTests/android/res/color/color1.xml b/tests/CoreTests/android/res/color/color1.xml
deleted file mode 100644
index 87034fa..0000000
--- a/tests/CoreTests/android/res/color/color1.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_focused="true" android:color="@color/testcolor1"/>
- <item android:color="@color/testcolor2"/>
-</selector>
diff --git a/tests/CoreTests/android/res/color/color_no_default.xml b/tests/CoreTests/android/res/color/color_no_default.xml
deleted file mode 100644
index 41a9b5d..0000000
--- a/tests/CoreTests/android/res/color/color_no_default.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_focused="true" android:color="@color/testcolor1"/>
-</selector>
diff --git a/tests/CoreTests/android/res/values/colors.xml b/tests/CoreTests/android/res/values/colors.xml
deleted file mode 100644
index 7559e65..0000000
--- a/tests/CoreTests/android/res/values/colors.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-**
-** Copyright 2006, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<resources>
- <color name="testcolor1">#ff00ff00</color>
- <color name="testcolor2">#ffff0000</color>
- <color name="failColor">#ff0000ff</color>
-</resources>
-
diff --git a/tests/CoreTests/android/test/AndroidTestRunnerTest.java b/tests/CoreTests/android/test/AndroidTestRunnerTest.java
deleted file mode 100644
index 0574704..0000000
--- a/tests/CoreTests/android/test/AndroidTestRunnerTest.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test;
-
-import android.test.mock.MockContext;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import com.google.android.collect.Lists;
-
-import junit.framework.TestCase;
-import junit.framework.AssertionFailedError;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import junit.framework.TestListener;
-
-import java.util.List;
-import java.util.Arrays;
-
-/**
- * Unit tests for {@link AndroidTestRunner}
- */
-@SmallTest
-public class AndroidTestRunnerTest extends TestCase {
- private AndroidTestRunner mAndroidTestRunner;
- private StubContext mStubContext;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mStubContext = new StubContext(getClass().getClassLoader());
-
- mAndroidTestRunner = new AndroidTestRunner();
- mAndroidTestRunner.setContext(mStubContext);
- }
-
- public void testLoadNoTestCases() throws Exception {
- mAndroidTestRunner.setTestClassName(TestSuite.class.getName(), null);
-
- List<TestCase> testCases = mAndroidTestRunner.getTestCases();
- assertNotNull(testCases);
- assertEquals(1, testCases.size());
- assertEquals("warning", testCases.get(0).getName());
- assertEquals(TestSuite.class.getSimpleName(), mAndroidTestRunner.getTestClassName());
- }
-
- public void testSetTestSuiteWithOneTestCase() throws Exception {
- mAndroidTestRunner.setTestClassName(OneTestTestCase.class.getName(), null);
-
- List<TestCase> testCases = mAndroidTestRunner.getTestCases();
- assertNotNull(testCases);
- assertEquals(1, testCases.size());
- assertEquals("testOne", testCases.get(0).getName());
- assertEquals(OneTestTestCase.class.getSimpleName(), mAndroidTestRunner.getTestClassName());
- }
-
- public void testRunTest() throws Exception {
- mAndroidTestRunner.setTestClassName(OneTestTestCase.class.getName(), null);
-
- TestListenerStub testListenerStub = new TestListenerStub();
- mAndroidTestRunner.addTestListener(testListenerStub);
-
- mAndroidTestRunner.runTest();
-
- assertTrue(testListenerStub.saw("testOne"));
- }
-
- public void testRunTestWithAndroidTestCase() throws Exception {
- mAndroidTestRunner.setTestClassName(
- OneAndroidTestTestCase.class.getName(), "testOneAndroid");
-
- TestListenerStub testListenerStub = new TestListenerStub();
- mAndroidTestRunner.addTestListener(testListenerStub);
-
- assertNull(((AndroidTestCase) mAndroidTestRunner.getTestCases().get(0)).getContext());
-
- mAndroidTestRunner.runTest();
-
- assertTrue(testListenerStub.saw("testOneAndroid"));
- assertSame(mStubContext,
- ((AndroidTestCase) mAndroidTestRunner.getTestCases().get(0)).getContext());
- }
-
- public void testRunTestWithAndroidTestCaseInSuite() throws Exception {
- mAndroidTestRunner.setTestClassName(OneAndroidTestTestCase.class.getName(), null);
-
- TestListenerStub testListenerStub = new TestListenerStub();
- mAndroidTestRunner.addTestListener(testListenerStub);
-
- mAndroidTestRunner.runTest();
-
- assertTrue(testListenerStub.saw("testOneAndroid"));
-
- List<TestCase> testCases = mAndroidTestRunner.getTestCases();
- for (TestCase testCase : testCases) {
- assertSame(mStubContext, ((AndroidTestCase) testCase).getContext());
- }
- }
-
- public void testRunTestWithAndroidTestCaseInNestedSuite() throws Exception {
- mAndroidTestRunner.setTestClassName(AndroidTestCaseTestSuite.class.getName(), null);
-
- TestListenerStub testListenerStub = new TestListenerStub();
- mAndroidTestRunner.addTestListener(testListenerStub);
-
- mAndroidTestRunner.runTest();
-
- assertTrue(testListenerStub.saw("testOneAndroid"));
-
- List<TestCase> testCases = mAndroidTestRunner.getTestCases();
- for (TestCase testCase : testCases) {
- assertSame(mStubContext, ((AndroidTestCase) testCase).getContext());
- }
- }
-
- public void testRunTestWithNullListener() throws Exception {
- mAndroidTestRunner.setTestClassName(OneTestTestCase.class.getName(), null);
-
- mAndroidTestRunner.addTestListener(null);
- try {
- mAndroidTestRunner.runTest();
- } catch (NullPointerException e) {
- fail("Should not add a null TestListener");
- }
- }
-
- public void testSetTestClassWithTestSuiteProvider() throws Exception {
- mAndroidTestRunner.setTestClassName(SampleTestSuiteProvider.class.getName(), null);
- List<TestCase> testCases = mAndroidTestRunner.getTestCases();
- List<String> testNames = Lists.newArrayList();
- for (TestCase testCase : testCases) {
- testNames.add(testCase.getName());
- }
-
- // Use the test suite provided by the interface method rather than the static suite method.
- assertEquals(Arrays.asList("testOne"), testNames);
- }
-
- public void testSetTestClassWithTestSuite() throws Exception {
- mAndroidTestRunner.setTestClassName(SampleTestSuite.class.getName(), null);
- List<TestCase> testCases = mAndroidTestRunner.getTestCases();
- List<String> testNames = Lists.newArrayList();
- for (TestCase testCase : testCases) {
- testNames.add(testCase.getName());
- }
- assertEquals(Arrays.asList("testOne", "testOne", "testTwo"), testNames);
- }
-
- public void testRunSingleTestMethod() throws Exception {
- String testMethodName = "testTwo";
- mAndroidTestRunner.setTestClassName(TwoTestTestCase.class.getName(), testMethodName);
- List<TestCase> testCases = mAndroidTestRunner.getTestCases();
- List<String> testNames = Lists.newArrayList();
- for (TestCase testCase : testCases) {
- testNames.add(testCase.getName());
- }
- assertEquals(Arrays.asList(testMethodName), testNames);
- }
-
- public void testSetTestClassInvalidClass() throws Exception {
- try {
- mAndroidTestRunner.setTestClassName("class.that.does.not.exist", null);
- fail("expected exception not thrown");
- } catch (RuntimeException e) {
- // expected
- }
- }
-
- public void testRunSkipExecution() throws Exception {
- String testMethodName = "testFail";
- mAndroidTestRunner.setTestClassName(
- OnePassOneErrorOneFailTestCase.class.getName(), testMethodName);
-
- TestListenerStub testListenerStub = new TestListenerStub();
- mAndroidTestRunner.addTestListener(testListenerStub);
-
- // running the failing test should pass - ie as if its not run
- mAndroidTestRunner.runTest();
-
- assertTrue(testListenerStub.saw("testFail"));
- }
-
- public static class SampleTestSuiteProvider implements TestSuiteProvider {
-
- public TestSuite getTestSuite() {
- TestSuite testSuite = new TestSuite();
- testSuite.addTestSuite(OneTestTestCase.class);
- return testSuite;
- }
-
- public static Test suite() {
- return SampleTestSuite.suite();
- }
- }
-
- public static class SampleTestSuite {
- public static TestSuite suite() {
- TestSuite testSuite = new TestSuite();
- testSuite.addTestSuite(OneTestTestCase.class);
- testSuite.addTestSuite(TwoTestTestCase.class);
- return testSuite;
- }
- }
-
- public static class AndroidTestCaseTestSuite {
- public static TestSuite suite() {
- TestSuite testSuite = new TestSuite();
- testSuite.addTestSuite(OneAndroidTestTestCase.class);
- return testSuite;
- }
- }
-
- public static class OneAndroidTestTestCase extends AndroidTestCase {
- public void testOneAndroid() throws Exception {
- }
- }
-
- public static class OneTestTestCase extends TestCase {
- public void testOne() throws Exception {
- }
- }
-
- public static class TwoTestTestCase extends TestCase {
- public void testOne() throws Exception {
- }
-
- public void testTwo() throws Exception {
- }
- }
-
- public static class OnePassOneErrorOneFailTestCase extends TestCase {
- public void testPass() throws Exception {
- }
-
- public void testError() throws Exception {
- throw new Exception();
- }
-
- public void testFail() throws Exception {
- fail();
- }
- }
-
- private static class TestListenerStub implements TestListener {
- List<String> testNames = Lists.newArrayList();
-
- public void addError(Test test, Throwable t) {
- }
-
- public void addFailure(Test test, AssertionFailedError t) {
- }
-
- public void endTest(Test test) {
- }
-
- public void startTest(Test test) {
- if (test instanceof TestCase) {
- testNames.add(((TestCase) test).getName());
- } else if (test instanceof TestSuite) {
- testNames.add(((TestSuite) test).getName());
- }
- }
-
- public boolean saw(String testName) {
- return testNames.contains(testName);
- }
- }
-
- private static class StubContext extends MockContext {
- private ClassLoader mClassLoader;
-
- public StubContext(ClassLoader classLoader) {
- this.mClassLoader = classLoader;
- }
-
- @Override
- public ClassLoader getClassLoader() {
- return mClassLoader;
- }
- }
-}
diff --git a/tests/CoreTests/android/test/InstrumentationTestRunnerTest.java b/tests/CoreTests/android/test/InstrumentationTestRunnerTest.java
deleted file mode 100644
index d9afd54..0000000
--- a/tests/CoreTests/android/test/InstrumentationTestRunnerTest.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.test.mock.MockContext;
-import android.test.suitebuilder.ListTestCaseNames;
-import android.test.suitebuilder.ListTestCaseNames.TestDescriptor;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import java.util.List;
-
-/**
- * Tests for {@link InstrumentationTestRunner}
- */
-@SmallTest
-public class InstrumentationTestRunnerTest extends TestCase {
- private StubInstrumentationTestRunner mInstrumentationTestRunner;
- private StubAndroidTestRunner mStubAndroidTestRunner;
- private String mTargetContextPackageName;
-
- protected void setUp() throws Exception {
- super.setUp();
- mStubAndroidTestRunner = new StubAndroidTestRunner();
- mTargetContextPackageName = "android.test.suitebuilder.examples";
- mInstrumentationTestRunner = new StubInstrumentationTestRunner(
- new StubContext("com.google.foo.tests"),
- new StubContext(mTargetContextPackageName), mStubAndroidTestRunner);
- }
-
- public void testOverrideTestToRunWithClassArgument() throws Exception {
- String expectedTestClassName = PlaceHolderTest.class.getName();
- mInstrumentationTestRunner.onCreate(createBundle(
- InstrumentationTestRunner.ARGUMENT_TEST_CLASS, expectedTestClassName));
-
- assertTestRunnerCalledWithExpectedParameters(expectedTestClassName, "testPlaceHolder");
- }
-
- public void testOverrideTestToRunWithClassAndMethodArgument() throws Exception {
- String expectedTestClassName = PlaceHolderTest.class.getName();
- String expectedTestMethodName = "testPlaceHolder";
- String classAndMethod = expectedTestClassName + "#" + expectedTestMethodName;
- mInstrumentationTestRunner.onCreate(createBundle(
- InstrumentationTestRunner.ARGUMENT_TEST_CLASS, classAndMethod));
-
- assertTestRunnerCalledWithExpectedParameters(expectedTestClassName,
- expectedTestMethodName);
- }
-
- public void testUseSelfAsTestSuiteProviderWhenNoMetaDataOrClassArgument() throws Exception {
- TestSuite testSuite = new TestSuite();
- testSuite.addTestSuite(PlaceHolderTest.class);
- mInstrumentationTestRunner.setAllTestsSuite(testSuite);
- mInstrumentationTestRunner.onCreate(null);
- assertTestRunnerCalledWithExpectedParameters(
- PlaceHolderTest.class.getName(), "testPlaceHolder");
- }
-
- public void testMultipleTestClass() throws Exception {
- String classArg = PlaceHolderTest.class.getName() + "," +
- PlaceHolderTest2.class.getName();
- mInstrumentationTestRunner.onCreate(createBundle(
- InstrumentationTestRunner.ARGUMENT_TEST_CLASS, classArg));
-
- Test test = mStubAndroidTestRunner.getTest();
-
- assertContentsInOrder(ListTestCaseNames.getTestNames((TestSuite) test),
- new TestDescriptor(PlaceHolderTest.class.getName(), "testPlaceHolder"),
- new TestDescriptor(PlaceHolderTest2.class.getName(), "testPlaceHolder2"));
-
- }
-
- public void testDelayParameter() throws Exception {
- int delayMsec = 1000;
- Bundle args = new Bundle();
- args.putInt(InstrumentationTestRunner.ARGUMENT_DELAY_MSEC, delayMsec);
- args.putString(InstrumentationTestRunner.ARGUMENT_TEST_CLASS,
- PlaceHolderTest.class.getName() + "," +
- PlaceHolderTest2.class.getName());
- mInstrumentationTestRunner.onCreate(args);
- Thread t = new Thread() { public void run() { mInstrumentationTestRunner.onStart(); } };
-
- // Should delay three times: before, between, and after the two tests.
- long beforeTest = System.currentTimeMillis();
- t.start();
- t.join();
- assertTrue(System.currentTimeMillis() > beforeTest + delayMsec * 3);
- assertTrue(mInstrumentationTestRunner.isStarted());
- assertTrue(mInstrumentationTestRunner.isFinished());
- assertTrue(mStubAndroidTestRunner.isRun());
- }
-
- private void assertContentsInOrder(List<TestDescriptor> actual, TestDescriptor... source) {
- TestDescriptor[] clonedSource = source.clone();
- assertEquals("Unexpected number of items.", clonedSource.length, actual.size());
- for (int i = 0; i < actual.size(); i++) {
- TestDescriptor actualItem = actual.get(i);
- TestDescriptor sourceItem = clonedSource[i];
- assertEquals("Unexpected item. Index: " + i, sourceItem, actualItem);
- }
- }
-
- private void assertTestRunnerCalledWithExpectedParameters(
- String expectedTestClassName, String expectedTestMethodName) {
- Test test = mStubAndroidTestRunner.getTest();
- assertContentsInOrder(ListTestCaseNames.getTestNames((TestSuite) test),
- new TestDescriptor(expectedTestClassName, expectedTestMethodName));
- assertTrue(mInstrumentationTestRunner.isStarted());
- assertFalse(mInstrumentationTestRunner.isFinished());
- }
-
- private Bundle createBundle(String key, String value) {
- Bundle bundle = new Bundle();
- bundle.putString(key, value);
- return bundle;
- }
-
- private static class StubInstrumentationTestRunner extends InstrumentationTestRunner {
- private Context mContext;
- private Context mTargetContext;
- private boolean mStarted;
- private boolean mFinished;
- private AndroidTestRunner mAndroidTestRunner;
- private TestSuite mTestSuite;
- private TestSuite mDefaultTestSuite;
- private String mPackageNameForDefaultTests;
-
- public StubInstrumentationTestRunner(Context context, Context targetContext,
- AndroidTestRunner androidTestRunner) {
- this.mContext = context;
- this.mTargetContext = targetContext;
- this.mAndroidTestRunner = androidTestRunner;
- }
-
- public Context getContext() {
- return mContext;
- }
-
- public TestSuite getAllTests() {
- return mTestSuite;
- }
-
- public Context getTargetContext() {
- return mTargetContext;
- }
-
- protected AndroidTestRunner getAndroidTestRunner() {
- return mAndroidTestRunner;
- }
-
- public void start() {
- mStarted = true;
- }
-
- public void finish(int resultCode, Bundle results) {
- mFinished = true;
- }
-
- public boolean isStarted() {
- return mStarted;
- }
-
- public boolean isFinished() {
- return mFinished;
- }
-
- public void setAllTestsSuite(TestSuite testSuite) {
- mTestSuite = testSuite;
- }
-
- public void setDefaultTestsSuite(TestSuite testSuite) {
- mDefaultTestSuite = testSuite;
- }
-
- public String getPackageNameForDefaultTests() {
- return mPackageNameForDefaultTests;
- }
- }
-
- private static class StubContext extends MockContext {
- private String mPackageName;
-
- public StubContext(String packageName) {
- this.mPackageName = packageName;
- }
-
- @Override
- public String getPackageCodePath() {
- return mPackageName;
- }
-
- @Override
- public String getPackageName() {
- return mPackageName;
- }
-
- @Override
- public ClassLoader getClassLoader() {
- return getClass().getClassLoader();
- }
- }
-
- private static class StubAndroidTestRunner extends AndroidTestRunner {
- private Test mTest;
- private boolean mRun;
-
- public boolean isRun() {
- return mRun;
- }
-
- public void setTest(Test test) {
- super.setTest(test);
- mTest = test;
- }
-
- public Test getTest() {
- return mTest;
- }
-
- public void runTest() {
- super.runTest();
- mRun = true;
- }
- }
-
- /**
- * Empty test used for validation
- */
- public static class PlaceHolderTest extends TestCase {
-
- public PlaceHolderTest() {
- super("testPlaceHolder");
- }
-
- public void testPlaceHolder() throws Exception {
-
- }
- }
-
- /**
- * Empty test used for validation
- */
- public static class PlaceHolderTest2 extends TestCase {
-
- public PlaceHolderTest2() {
- super("testPlaceHolder2");
- }
-
- public void testPlaceHolder2() throws Exception {
-
- }
- }
-}
diff --git a/tests/CoreTests/android/test/StubTestBrowserActivity.java b/tests/CoreTests/android/test/StubTestBrowserActivity.java
deleted file mode 100644
index 97ed3ce..0000000
--- a/tests/CoreTests/android/test/StubTestBrowserActivity.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test;
-
-import junit.framework.TestSuite;
-
-public class StubTestBrowserActivity extends TestBrowserActivity {
-
- private static TestSuite mTestSuite;
-
- static void setTopTestSuite(TestSuite testSuite) {
- mTestSuite = testSuite;
- }
-
- @Override
- public TestSuite getTopTestSuite() {
- return mTestSuite;
- }
-}
diff --git a/tests/CoreTests/android/test/TestBrowserActivityTest.java b/tests/CoreTests/android/test/TestBrowserActivityTest.java
deleted file mode 100644
index 6afbe37..0000000
--- a/tests/CoreTests/android/test/TestBrowserActivityTest.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test;
-
-import android.app.Activity;
-import android.app.Instrumentation;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.RemoteException;
-import android.os.ServiceManager;
-import android.view.IWindowManager;
-import android.widget.ListView;
-
-import com.google.android.collect.Lists;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import java.util.List;
-
-public class TestBrowserActivityTest extends InstrumentationTestCase {
-
- private TestBrowserActivity mTestBrowserActivity;
- private StubTestBrowserController mTestBrowserController;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- StubTestBrowserActivity.setTopTestSuite(null);
- mTestBrowserController = new StubTestBrowserController();
- ServiceLocator.setTestBrowserController(mTestBrowserController);
- }
-
- @Override
- protected void tearDown() throws Exception {
- if (mTestBrowserActivity != null) {
- mTestBrowserActivity.finish();
- }
- mTestBrowserActivity = null;
- super.tearDown();
- }
-
- public void testEmptyListContent() throws Exception {
- StubTestBrowserActivity.setTopTestSuite(new TestSuite());
-
- mTestBrowserActivity = createActivity();
-
- ListView listView = getListView();
- // There is always an item on the list for running all tests.
- assertEquals("Unexpected number of items on list view.", 1, listView.getCount());
-
- assertEquals("Stubbed Test Browser", mTestBrowserActivity.getTitle().toString());
- }
-
- public void testOneListContent() throws Exception {
- List<String> testCaseNames = Lists.newArrayList("AllTests");
- StubTestBrowserActivity.setTopTestSuite(createTestSuite(testCaseNames));
-
- mTestBrowserActivity = createActivity();
-
- ListView listView = getListView();
- assertListViewContents(testCaseNames, listView);
- }
-
- public void testListWithTestCases() throws Exception {
- List<String> testCaseNames = Lists.newArrayList("AllTests", "Apples", "Bananas", "Oranges");
- StubTestBrowserActivity.setTopTestSuite(createTestSuite(testCaseNames));
-
- mTestBrowserActivity = createActivity();
-
- ListView listView = getListView();
- assertListViewContents(testCaseNames, listView);
- }
-
- public void testListWithTestSuite() throws Exception {
- List<String> testCaseNames = Lists.newArrayList(OneTestTestCase.class.getSimpleName());
- StubTestBrowserActivity.setTopTestSuite(new OneTestInTestSuite());
-
- mTestBrowserActivity = createActivity();
-
- ListView listView = getListView();
- assertListViewContents(testCaseNames, listView);
- }
-
- public void testSelectATestCase() throws Exception {
- List<String> testCaseNames = Lists.newArrayList("AllTests");
- TestSuite testSuite = createTestSuite(testCaseNames);
- StubTestBrowserActivity.setTopTestSuite(testSuite);
-
- mTestBrowserController.setTestCase(OneTestTestCase.class);
- mTestBrowserActivity = createActivity();
-
- Instrumentation.ActivityMonitor activityMonitor = getInstrumentation().addMonitor(
- TestBrowserControllerImpl.TEST_RUNNER_ACTIVITY_CLASS_NAME, null, false);
- try {
- assertEquals(0, activityMonitor.getHits());
-
- ListView listView = getListView();
- int invokedTestCaseIndex = 0;
- listView.performItemClick(listView, invokedTestCaseIndex, 0);
-
- Activity activity = activityMonitor.waitForActivityWithTimeout(2000);
- assertNotNull(activity);
- try {
- assertEquals(1, activityMonitor.getHits());
- assertEquals(invokedTestCaseIndex, mTestBrowserController.getLastPosition());
- } finally {
- activity.finish();
- }
- } finally {
- getInstrumentation().removeMonitor(activityMonitor);
- }
- }
-
- public void testCreateFromIntentWithOneTest() throws Exception {
- List<String> testCaseNames = Lists.newArrayList("testOne");
-
- mTestBrowserActivity = launchTestBrowserActivity(new TestSuite(OneTestTestCase.class));
-
- ListView listView = getListView();
- assertListViewContents(testCaseNames, listView);
- }
-
- public void testUpdateListOnStart() throws Exception {
- StubTestBrowserActivity.setTopTestSuite(new TestSuite());
-
- mTestBrowserActivity = createActivity();
-
- ListView listView = getListView();
- assertEquals("Unexpected number of items on list view.", 1, listView.getCount());
-
- List<String> testCaseNames = Lists.newArrayList("AllTests");
- StubTestBrowserActivity.setTopTestSuite(createTestSuite(testCaseNames));
-
- getInstrumentation().runOnMainSync(new Runnable() {
- public void run() {
- ((StubTestBrowserActivity) mTestBrowserActivity).onStart();
- }
- });
-
- listView = getListView();
- assertListViewContents(testCaseNames, listView);
- }
-
- public void testTitleHasTestSuiteName() throws Exception {
- final String testSuiteName = "com.android.TestSuite";
- StubTestBrowserActivity.setTopTestSuite(new TestSuite(testSuiteName));
-
- mTestBrowserActivity = createActivity();
-
- assertEquals("TestSuite", mTestBrowserActivity.getTitle().toString());
- }
-
- private TestSuite createTestSuite(List<String> testCaseNames) {
- return createTestSuite(testCaseNames.toArray(new String[testCaseNames.size()]));
- }
-
- private TestSuite createTestSuite(String... testCaseNames) {
- TestSuite testSuite = new TestSuite();
- for (String testCaseName : testCaseNames) {
- testSuite.addTest(new FakeTestCase(testCaseName));
- }
-
- return testSuite;
- }
-
- public static class FakeTestCase extends TestCase {
- public FakeTestCase(String name) {
- super(name);
- }
- }
-
- public static class OneTestTestCase extends TestCase {
- public void testOne() throws Exception {
- }
- }
-
- public static class OneTestInTestSuite extends TestSuite {
- public static Test suite() {
- TestSuite suite = new TestSuite(OneTestInTestSuite.class.getName());
- suite.addTestSuite(OneTestTestCase.class);
- return suite;
- }
- }
-
- private void assertListViewContents(List<String> expectedTestCaseNames, ListView listView) {
- assertEquals("Run All", listView.getItemAtPosition(0).toString());
- assertEquals("Unexpected number of items on list view.",
- expectedTestCaseNames.size() + 1, listView.getCount());
- for (int i = 0; i < expectedTestCaseNames.size(); i++) {
- String expectedTestCaseName = expectedTestCaseNames.get(i);
- String actualTestCaseName = listView.getItemAtPosition(i + 1).toString();
- assertEquals("Unexpected test case name. Index: " + i,
- expectedTestCaseName, actualTestCaseName);
- }
- }
-
- private ListView getListView() {
- return mTestBrowserActivity.getListView();
- }
-
- private TestBrowserActivity createActivity() throws RemoteException {
- return launchActivity("android.test", StubTestBrowserActivity.class, null);
- }
-
- private Intent createIntent(TestSuite testSuite) {
- Intent intent = new Intent(Intent.ACTION_RUN);
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- String className = StubTestBrowserActivity.class.getName();
- String packageName = className.substring(0, className.lastIndexOf("."));
- intent.setClassName(packageName, className);
- intent.setData(Uri.parse(testSuite.getName()));
- return intent;
- }
-
- private TestBrowserActivity launchTestBrowserActivity(TestSuite testSuite)
- throws RemoteException {
- getInstrumentation().setInTouchMode(false);
-
- TestBrowserActivity activity =
- (TestBrowserActivity) getInstrumentation().startActivitySync(
- createIntent(testSuite));
- getInstrumentation().waitForIdleSync();
- return activity;
- }
-
- private static class StubTestBrowserController extends TestBrowserControllerImpl {
- private int mPosition;
- private Class<? extends TestCase> mTestCaseClass;
-
- public Intent getIntentForTestAt(int position) {
- mPosition = position;
-
- Intent intent = new Intent();
- intent.setAction(Intent.ACTION_RUN);
-
- String className = TestBrowserControllerImpl.TEST_RUNNER_ACTIVITY_CLASS_NAME;
- String testName = mTestCaseClass.getClass().getName();
-
- String packageName = className.substring(0, className.lastIndexOf("."));
- intent.setClassName(packageName, className);
- intent.setData(Uri.parse(testName));
-
- return intent;
- }
-
- public void setTestCase(Class<? extends TestCase> testCaseClass) {
- mTestCaseClass = testCaseClass;
- }
-
- public int getLastPosition() {
- return mPosition;
- }
- }
-}
diff --git a/tests/CoreTests/android/test/TestBrowserControllerImplTest.java b/tests/CoreTests/android/test/TestBrowserControllerImplTest.java
deleted file mode 100644
index 1315606..0000000
--- a/tests/CoreTests/android/test/TestBrowserControllerImplTest.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test;
-
-import android.content.Intent;
-
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import java.util.Arrays;
-import java.util.List;
-
-public class TestBrowserControllerImplTest extends TestCase {
- private TestBrowserControllerImpl mTestBrowserController;
- private TestBrowserViewStub mTestBrowserView;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mTestBrowserController = new TestBrowserControllerImpl();
- mTestBrowserView = new TestBrowserViewStub();
- mTestBrowserController.registerView(mTestBrowserView);
- }
-
- public void testSetTestSuite() throws Exception {
- TestSuite testSuite = new TestSuite();
- testSuite.addTestSuite(DummyTestCase.class);
-
- mTestBrowserController.setTestSuite(testSuite);
-
- verifyTestNames(Arrays.asList("Run All", DummyTestCase.class.getSimpleName()),
- mTestBrowserView.getTestNames());
- }
-
- private static void verifyTestNames(List<String> expectedTestNames,
- List<String> actualTestNames) {
- assertEquals(expectedTestNames.size(), actualTestNames.size());
-
- // We use endsWith instead of equals because the return value of
- // class.getSimpleName(), when called on an inner class, varies
- // from one vm to another.
- // This allows the test to pass in multiple environments.
- for (int i = 0; i < expectedTestNames.size(); i++) {
- assertTrue(actualTestNames.get(i).endsWith(expectedTestNames.get(i)));
- }
- }
-
- public void testGetIntentForTestSuite() throws Exception {
- TestSuite testSuite = new TestSuite();
- testSuite.addTestSuite(DummyTestCase.class);
-
- String targetBrowserActvityClassName = "com.android.bogus.DummyActivity";
- String expectedTargetPackageName = "com.android.bogus";
- mTestBrowserController.setTargetBrowserActivityClassName(targetBrowserActvityClassName);
- mTestBrowserController.setTestSuite(testSuite);
- mTestBrowserController.setTargetPackageName(expectedTargetPackageName);
- Intent intent = mTestBrowserController.getIntentForTestAt(1);
- verifyIntent(intent, DummyTestCase.class, expectedTargetPackageName);
- assertEquals(targetBrowserActvityClassName, intent.getComponent().getClassName());
- }
-
- public void testGetIntentForTestCase() throws Exception {
- TestSuite testSuite = new TestSuite();
- testSuite.addTest(new DummyTestCase());
-
- mTestBrowserController.setTestSuite(testSuite);
- Intent intent = mTestBrowserController.getIntentForTestAt(1);
- verifyIntent(intent, DummyTestCase.class, "com.android.testharness");
- assertEquals(TestBrowserControllerImpl.TEST_RUNNER_ACTIVITY_CLASS_NAME,
- intent.getComponent().getClassName());
- assertEquals("testDummyTest",
- intent.getStringExtra(TestBrowserController.BUNDLE_EXTRA_TEST_METHOD_NAME));
- }
-
- public void testGetIntentForRunAll() throws Exception {
- TestSuite testSuite = new DummyTestSuite();
- testSuite.addTestSuite(DummyTestCase.class);
-
- mTestBrowserController.setTestSuite(testSuite);
- Intent intent = mTestBrowserController.getIntentForTestAt(0);
- verifyIntent(intent, DummyTestSuite.class, "com.android.testharness");
- }
-
- private static void verifyIntent(Intent intent, Class testClass, String expectedPackageName) {
- assertEquals(Intent.ACTION_RUN, intent.getAction());
- assertEquals(Intent.FLAG_ACTIVITY_NEW_TASK,
- intent.getFlags() & Intent.FLAG_ACTIVITY_NEW_TASK);
- assertEquals(Intent.FLAG_ACTIVITY_MULTIPLE_TASK,
- intent.getFlags() & Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
- assertEquals(testClass.getName(), intent.getData().toString());
- assertEquals(expectedPackageName, intent.getComponent().getPackageName());
- }
-
- private static class DummyTestSuite extends TestSuite {
- private DummyTestSuite() {
- super(DummyTestSuite.class.getName());
- }
- }
-
- private static class DummyTestCase extends TestCase {
- private DummyTestCase() {
- super("testDummyTest");
- }
-
- public void testDummyTest() throws Exception {
- }
- }
-
- private class TestBrowserViewStub implements TestBrowserView {
- private List<String> mTestNames;
-
- public void setTestNames(List<String> testNames) {
- mTestNames = testNames;
- }
-
- public List<String> getTestNames() {
- return mTestNames;
- }
- }
-}
diff --git a/tests/CoreTests/android/test/TestBrowserTests.java b/tests/CoreTests/android/test/TestBrowserTests.java
deleted file mode 100644
index 535e2f8..0000000
--- a/tests/CoreTests/android/test/TestBrowserTests.java
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2007 The Android Open Source Project
-
-
-package android.test;
-
-import junit.framework.TestSuite;
-
-public class TestBrowserTests extends TestBrowserActivity {
-
- @Override
- public TestSuite getTopTestSuite() {
- return suite();
- }
-
- public static TestSuite suite() {
- TestSuite testSuite = new TestSuite(TestBrowserTests.class.getName());
- testSuite.addTestSuite(TestBrowserControllerImplTest.class);
- testSuite.addTestSuite(TestCaseUtilTest.class);
-
- return testSuite;
- }
-}
diff --git a/tests/CoreTests/android/test/TestCaseUtilTest.java b/tests/CoreTests/android/test/TestCaseUtilTest.java
deleted file mode 100644
index bc6fa92..0000000
--- a/tests/CoreTests/android/test/TestCaseUtilTest.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import java.util.List;
-
-public class TestCaseUtilTest extends TestCase {
-
- public void testGetTestCaseNamesForTestSuiteWithSuiteMethod() throws Exception {
- TestSuite testSuite = new TwoTestsInTestSuite();
-
- List<String> testCaseNames = TestCaseUtil.getTestCaseNames(testSuite, false);
-
- assertEquals(2, testCaseNames.size());
- assertTrue(testCaseNames.get(0).endsWith("OneTestTestCase"));
- assertTrue(testCaseNames.get(1).endsWith("OneTestTestSuite"));
- }
-
- public void testGetTestCaseNamesForTestCaseWithSuiteMethod() throws Exception {
- TestCase testCase = new OneTestTestCaseWithSuite();
-
- List<String> testCaseNames = TestCaseUtil.getTestCaseNames(testCase, false);
-
- assertEquals(1, testCaseNames.size());
- assertTrue(testCaseNames.get(0).endsWith("testOne"));
- }
-
- public void testCreateTestForTestCase() throws Exception {
- Test test = TestCaseUtil.createTestSuite(OneTestTestCase.class);
- assertEquals(1, test.countTestCases());
- }
-
- public void testCreateTestForTestSuiteWithSuiteMethod() throws Exception {
- Test test = TestCaseUtil.createTestSuite(TwoTestsInTestSuite.class);
- assertEquals(2, test.countTestCases());
- }
-
- public void testCreateTestForTestCaseWithSuiteMethod() throws Exception {
- Test test = TestCaseUtil.createTestSuite(OneTestTestCaseWithSuite.class);
- assertEquals(1, test.countTestCases());
- }
-
- public void testReturnEmptyStringForTestSuiteWithNoName() throws Exception {
- assertEquals("", TestCaseUtil.getTestName(new TestSuite()));
- }
-
- public static class OneTestTestCase extends TestCase {
- public void testOne() throws Exception {
- }
- }
-
- public static class OneTestTestCaseWithSuite extends TestCase {
- public static Test suite() {
- TestCase testCase = new OneTestTestCase();
- testCase.setName("testOne");
- return testCase;
- }
-
- public void testOne() throws Exception {
- }
-
- public void testTwo() throws Exception {
- }
- }
-
- public static class OneTestTestSuite {
- public static Test suite() {
- TestSuite suite = new TestSuite(OneTestTestSuite.class.getName());
- suite.addTestSuite(OneTestTestCase.class);
- return suite;
- }
- }
-
- public static class TwoTestsInTestSuite extends TestSuite {
- public static Test suite() {
- TestSuite suite = new TestSuite(TwoTestsInTestSuite.class.getName());
- suite.addTestSuite(OneTestTestCase.class);
- suite.addTest(OneTestTestSuite.suite());
- return suite;
- }
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/AssignableFromTest.java b/tests/CoreTests/android/test/suitebuilder/AssignableFromTest.java
deleted file mode 100644
index 0f73e89..0000000
--- a/tests/CoreTests/android/test/suitebuilder/AssignableFromTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder;
-
-import junit.framework.TestCase;
-
-import java.lang.reflect.Method;
-
-public class AssignableFromTest extends TestCase {
- private AssignableFrom assignableFrom;
-
-
- protected void setUp() throws Exception {
- super.setUp();
- assignableFrom = new AssignableFrom(Animal.class);
- }
-
- public void testSelfIsAssignable() throws Exception {
- assertTrue(assignableFrom.apply(testMethodFor(Animal.class)));
- }
-
- public void testSubclassesAreAssignable() throws Exception {
- assertTrue(assignableFrom.apply(testMethodFor(Mammal.class)));
- assertTrue(assignableFrom.apply(testMethodFor(Human.class)));
- }
-
- public void testNotAssignable() throws Exception {
- assertFalse(assignableFrom.apply(testMethodFor(Pencil.class)));
- }
-
- public void testImplementorsAreAssignable() throws Exception {
- assignableFrom = new AssignableFrom(WritingInstrument.class);
-
- assertTrue(assignableFrom.apply(testMethodFor(Pencil.class)));
- assertTrue(assignableFrom.apply(testMethodFor(Pen.class)));
- }
-
- private TestMethod testMethodFor(Class<? extends TestCase> aClass)
- throws NoSuchMethodException {
- Method method = aClass.getMethod("testX");
- return new TestMethod(method, aClass);
- }
-
- private class Animal extends TestCase {
- public void testX() {
- }
- }
-
- private class Mammal extends Animal {
- public void testX() {
- }
- }
-
- private class Human extends Mammal {
- public void testX() {
- }
- }
-
- private interface WritingInstrument {
- }
-
- private class Pencil extends TestCase implements WritingInstrument {
- public void testX() {
- }
- }
-
- private class Pen extends TestCase implements WritingInstrument {
- public void testX() {
- }
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/InstrumentationTestSuiteBuilderTest.java b/tests/CoreTests/android/test/suitebuilder/InstrumentationTestSuiteBuilderTest.java
deleted file mode 100644
index 1872803..0000000
--- a/tests/CoreTests/android/test/suitebuilder/InstrumentationTestSuiteBuilderTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder;
-
-import static android.test.suitebuilder.ListTestCaseNames.getTestCaseNames;
-import android.test.suitebuilder.examples.OuterTest;
-import android.test.suitebuilder.examples.instrumentation.InstrumentationTest;
-
-import junit.framework.AssertionFailedError;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestListener;
-import junit.framework.TestResult;
-import junit.framework.TestSuite;
-
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-public class InstrumentationTestSuiteBuilderTest extends TestCase {
-
- private InstrumentationTestSuiteBuilder instrumentationTestSuiteBuilder;
-
- protected void setUp() throws Exception {
- super.setUp();
- instrumentationTestSuiteBuilder = new InstrumentationTestSuiteBuilder(getClass());
- }
-
- public void testShouldIncludeIntrumentationTests() throws Exception {
- instrumentationTestSuiteBuilder.includePackages(packageFor(InstrumentationTest.class));
-
- SuiteExecutionRecorder recorder = runSuite(instrumentationTestSuiteBuilder);
-
- assertEquals(1, recorder.testsSeen.size());
- assertTrue(recorder.saw("InstrumentationTest.testInstrumentation"));
- }
-
- public void testShouldOnlyIncludeIntrumentationTests() throws Exception {
- TestSuite testSuite = new OuterTest()
- .buildTestsUnderHereWith(instrumentationTestSuiteBuilder);
- List<String> testCaseNames = getTestCaseNames(testSuite);
- assertEquals(1, testCaseNames.size());
- assertEquals("testInstrumentation", testCaseNames.get(0));
- }
-
- private static String packageFor(Class clazz) {
- String className = clazz.getName();
- return className.substring(0, className.lastIndexOf('.'));
- }
-
- private SuiteExecutionRecorder runSuite(TestSuiteBuilder builder) {
- TestSuite suite = builder.build();
- SuiteExecutionRecorder recorder = new SuiteExecutionRecorder();
- TestResult result = new TestResult();
- result.addListener(recorder);
- suite.run(result);
- return recorder;
- }
-
- private class SuiteExecutionRecorder implements TestListener {
-
- private Set<String> failures = new HashSet<String>();
- private Set<String> errors = new HashSet<String>();
- private Set<String> testsSeen = new HashSet<String>();
-
- public void addError(Test test, Throwable t) {
- errors.add(testName(test));
- }
-
- public void addFailure(Test test, AssertionFailedError t) {
- failures.add(testName(test));
- }
-
- public void endTest(Test test) {
- }
-
- public void startTest(Test test) {
- testsSeen.add(testName(test));
- }
-
- public boolean saw(String testName) {
- return testsSeen.contains(testName);
- }
-
- public boolean failed(String testName) {
- return failures.contains(testName);
- }
-
- public boolean errored(String testName) {
- return errors.contains(testName);
- }
-
- public boolean passed(String testName) {
- return saw(testName) && !failed(testName) && !errored(testName);
- }
-
- private String testName(Test test) {
- TestCase testCase = (TestCase) test;
- return testCase.getClass().getSimpleName() + "." + testCase.getName();
- }
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/ListTestCaseNames.java b/tests/CoreTests/android/test/suitebuilder/ListTestCaseNames.java
deleted file mode 100644
index 37ec328..0000000
--- a/tests/CoreTests/android/test/suitebuilder/ListTestCaseNames.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-public class ListTestCaseNames {
- public static List<String> getTestCaseNames(TestSuite suite) {
- // TODO: deprecate this method and move all callers to use getTestNames
- List<Test> tests = Collections.<Test>list(suite.tests());
- ArrayList<String> testCaseNames = new ArrayList<String>();
- for (Test test : tests) {
- if (test instanceof TestCase) {
- testCaseNames.add(((TestCase) test).getName());
- } else if (test instanceof TestSuite) {
- testCaseNames.addAll(getTestCaseNames((TestSuite) test));
- }
- }
- return testCaseNames;
- }
-
- /**
- * Returns a list of test class and method names for each TestCase in suite.
- */
- public static List<TestDescriptor> getTestNames(TestSuite suite) {
- List<Test> tests = Collections.<Test>list(suite.tests());
- ArrayList<TestDescriptor> testNames = new ArrayList<TestDescriptor>();
- for (Test test : tests) {
- if (test instanceof TestCase) {
- String className = test.getClass().getName();
- String testName = ((TestCase) test).getName();
- testNames.add(new TestDescriptor(className, testName));
- } else if (test instanceof TestSuite) {
- testNames.addAll(getTestNames((TestSuite) test));
- }
- }
- return testNames;
- }
-
- /**
- * Data holder for test case info
- */
- public static class TestDescriptor {
- private String mClassName;
- private String mTestName;
-
- public TestDescriptor(String className, String testName) {
- mClassName = className;
- mTestName = testName;
- }
-
- public String getClassName() {
- return mClassName;
- }
-
- public String getTestName() {
- return mTestName;
- }
-
- /**
- * Override parent to do string-based class and test name comparison
- */
- @Override
- public boolean equals(Object otherObj) {
- if (otherObj instanceof TestDescriptor) {
- TestDescriptor otherDesc = (TestDescriptor)otherObj;
- return otherDesc.getClassName().equals(this.getClassName()) &&
- otherDesc.getTestName().equals(this.getTestName());
-
- }
- return false;
- }
-
- /**
- * Override parent to return a more user-friendly display string
- */
- @Override
- public String toString() {
- return getClassName() + "#" + getTestName();
- }
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/SmokeTestSuiteBuilderTest.java b/tests/CoreTests/android/test/suitebuilder/SmokeTestSuiteBuilderTest.java
deleted file mode 100644
index f817297..0000000
--- a/tests/CoreTests/android/test/suitebuilder/SmokeTestSuiteBuilderTest.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder;
-
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import java.util.List;
-
-public class SmokeTestSuiteBuilderTest extends TestCase {
-
- public void testShouldOnlyIncludeSmokeTests() throws Exception {
- TestSuite testSuite = new SmokeTestSuiteBuilder(getClass())
- .includeAllPackagesUnderHere().build();
-
- List<String> testCaseNames = ListTestCaseNames.getTestCaseNames(testSuite);
- assertEquals("Unexpected number of smoke tests.", 1, testCaseNames.size());
- assertEquals("Unexpected test name", "testSmoke", testCaseNames.get(0));
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/TestSuiteBuilderTest.java b/tests/CoreTests/android/test/suitebuilder/TestSuiteBuilderTest.java
deleted file mode 100644
index 293c813..0000000
--- a/tests/CoreTests/android/test/suitebuilder/TestSuiteBuilderTest.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder;
-
-import com.android.internal.util.Predicate;
-import static android.test.suitebuilder.ListTestCaseNames.getTestCaseNames;
-import android.test.suitebuilder.examples.OuterTest;
-import android.test.suitebuilder.examples.suppress.SuppressedTest;
-import android.test.suitebuilder.examples.error.ErrorTest;
-import android.test.suitebuilder.examples.error.FailingTest;
-import android.test.suitebuilder.examples.nested.Level1Test;
-import android.test.suitebuilder.examples.nested.nested.Level2Test;
-import android.test.suitebuilder.examples.simple.SimpleTest;
-import android.test.suitebuilder.examples.subclass.SubclassTest;
-import junit.framework.AssertionFailedError;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestListener;
-import junit.framework.TestResult;
-import junit.framework.TestSuite;
-
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-
-public class TestSuiteBuilderTest extends TestCase {
-
- private TestSuiteBuilder testSuiteBuilder;
-
- protected void setUp() throws Exception {
- super.setUp();
- testSuiteBuilder = new TestSuiteBuilder(getClass());
- }
-
- public void testShouldRunSimpleTests() throws Exception {
- testSuiteBuilder.includePackages(packageFor(SimpleTest.class));
-
- SuiteExecutionRecorder recorder = runSuite(testSuiteBuilder);
-
- assertTrue(recorder.passed("SimpleTest.testSimpleOne"));
- assertTrue(recorder.passed("SimpleTest.testSimpleTwo"));
- assertTrue(recorder.passed("AnotherSimpleTest.testAnotherOne"));
- }
-
- public void testShouldOnlyIncludeTestsThatSatisfyAllPredicates() throws Exception {
- testSuiteBuilder.includePackages(packageFor(SimpleTest.class))
- .addRequirements(testsWhoseNameContains("test"))
- .addRequirements(testsWhoseNameContains("Simple"))
- .addRequirements(testsWhoseNameContains("Two"));
-
- SuiteExecutionRecorder recorder = runSuite(testSuiteBuilder);
-
- assertTrue(recorder.passed("SimpleTest.testSimpleTwo"));
- }
-
- public void testShouldAddFailingTestsToSuite() throws Exception {
- testSuiteBuilder.includePackages(packageFor(FailingTest.class));
-
- SuiteExecutionRecorder recorder = runSuite(testSuiteBuilder);
-
- assertTrue(recorder.failed("FailingTest.testFailOne"));
- assertTrue(recorder.failed("FailingTest.testFailTwo"));
- }
-
- public void testShouldAddTestsWithErrorsToSuite() throws Exception {
- testSuiteBuilder.includePackages(packageFor(ErrorTest.class));
-
- SuiteExecutionRecorder recorder = runSuite(testSuiteBuilder);
-
- assertTrue(recorder.errored("ErrorTest.testErrorOne"));
- assertTrue(recorder.errored("ErrorTest.testErrorTwo"));
- }
-
- public void testShouldRunTestsInheritedFromSuperclass() throws Exception {
- testSuiteBuilder.includePackages(packageFor(SubclassTest.class));
-
- SuiteExecutionRecorder recorder = runSuite(testSuiteBuilder);
-
- assertEquals(2, getTestCaseNames(testSuiteBuilder.build()).size());
-
- assertTrue(recorder.passed("SubclassTest.testSubclass"));
- assertTrue(recorder.passed("SubclassTest.testSuperclass"));
- assertFalse(recorder.saw("SuperclassTest.testSuperclass"));
- }
-
- public void testShouldIncludeTestsInSubPackagesRecursively() throws Exception {
- testSuiteBuilder.includePackages(packageFor(Level1Test.class));
-
- SuiteExecutionRecorder recorder = runSuite(testSuiteBuilder);
-
- assertTrue(recorder.passed("Level1Test.testLevel1"));
- assertTrue(recorder.passed("Level2Test.testLevel2"));
- }
-
- public void testExcludePackage() throws Exception {
- testSuiteBuilder.includePackages(packageFor(SimpleTest.class),
- packageFor(Level1Test.class)).excludePackages(packageFor(Level2Test.class));
-
- TestSuite testSuite = testSuiteBuilder.build();
- assertContentsInOrder(getTestCaseNames(testSuite),
- "testLevel1", "testAnotherOne", "testSimpleOne", "testSimpleTwo");
- }
-
- public void testShouldExcludeSuppressedTests() throws Exception {
- testSuiteBuilder.includePackages(packageFor(SuppressedTest.class));
- testSuiteBuilder.build();
-
- SuiteExecutionRecorder recorder = runSuite(testSuiteBuilder);
-
- assertEquals(1, recorder.testsSeen.size());
- assertTrue(recorder.passed("PartiallySuppressedTest.testUnSuppressedMethod"));
- }
-
- /**
- * This test calls {@link OuterTest#buildTestsUnderHereRecursively()} to control
- * the packages under test. The call to {@link TestSuiteBuilder#includeAllPackagesUnderHere()}
- * is made from there so that only return the example tests.
- */
- public void testIncludeAllPackagesUnderHere() throws Exception {
-
- TestSuite testSuite = new OuterTest().buildTestsUnderHereRecursively();
- assertContentsInOrder(getTestCaseNames(testSuite),
- "testOuter", "testErrorOne", "testErrorTwo", "testFailOne", "testFailTwo",
- "testInstrumentation", "testLevel1", "testLevel2", "testAnotherOne",
- "testSimpleOne", "testSimpleTwo", "testNonSmoke", "testSmoke", "testSubclass",
- "testSuperclass", "testUnSuppressedMethod");
- }
-
- private void assertContentsInOrder(List<String> actual, String... source) {
- String[] clonedSource = source.clone();
- assertEquals("Unexpected number of items.", clonedSource.length, actual.size());
- for (int i = 0; i < actual.size(); i++) {
- String actualItem = actual.get(i);
- String sourceItem = clonedSource[i];
- assertEquals("Unexpected item. Index: " + i, sourceItem, actualItem);
- }
- }
-
- private static String packageFor(Class clazz) {
- String className = clazz.getName();
- return className.substring(0, className.lastIndexOf('.'));
- }
-
- private Predicate<TestMethod> testsWhoseNameContains(final String string) {
- return new Predicate<TestMethod>() {
- public boolean apply(TestMethod testMethod) {
- return testMethod.getName().contains(string);
- }
- };
- }
-
- private SuiteExecutionRecorder runSuite(TestSuiteBuilder builder) {
- TestSuite suite = builder.build();
- SuiteExecutionRecorder recorder = new SuiteExecutionRecorder();
- TestResult result = new TestResult();
- result.addListener(recorder);
- suite.run(result);
- return recorder;
- }
-
- private class SuiteExecutionRecorder implements TestListener {
-
- private Set<String> failures = new HashSet<String>();
- private Set<String> errors = new HashSet<String>();
- private Set<String> testsSeen = new HashSet<String>();
-
- public void addError(Test test, Throwable t) {
- errors.add(testName(test));
- }
-
- public void addFailure(Test test, AssertionFailedError t) {
- failures.add(testName(test));
- }
-
- public void endTest(Test test) {
- }
-
- public void startTest(Test test) {
- testsSeen.add(testName(test));
- }
-
- public boolean saw(String testName) {
- return testsSeen.contains(testName);
- }
-
- public boolean failed(String testName) {
- return failures.contains(testName);
- }
-
- public boolean errored(String testName) {
- return errors.contains(testName);
- }
-
- public boolean passed(String testName) {
- return saw(testName) && !failed(testName) && !errored(testName);
- }
-
- private String testName(Test test) {
- TestCase testCase = (TestCase) test;
- return testCase.getClass().getSimpleName() + "." + testCase.getName();
- }
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/UnitTestSuiteBuilderTest.java b/tests/CoreTests/android/test/suitebuilder/UnitTestSuiteBuilderTest.java
deleted file mode 100644
index 469938e..0000000
--- a/tests/CoreTests/android/test/suitebuilder/UnitTestSuiteBuilderTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder;
-
-import android.test.suitebuilder.examples.instrumentation.InstrumentationTest;
-
-import junit.framework.Assert;
-import junit.framework.AssertionFailedError;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestListener;
-import junit.framework.TestResult;
-import junit.framework.TestSuite;
-
-import java.util.HashSet;
-import java.util.Set;
-
-public class UnitTestSuiteBuilderTest extends TestCase {
-
- private UnitTestSuiteBuilder unitTestSuiteBuilder;
-
- protected void setUp() throws Exception {
- super.setUp();
- unitTestSuiteBuilder = new UnitTestSuiteBuilder(getClass());
- }
-
- public void testShouldExcludeIntrumentationTests() throws Exception {
- unitTestSuiteBuilder.includePackages(packageFor(InstrumentationTest.class));
-
- TestSuite testSuite = unitTestSuiteBuilder.build();
- Assert.assertEquals(0, ListTestCaseNames.getTestCaseNames(testSuite).size());
-
- SuiteExecutionRecorder recorder = runSuite(unitTestSuiteBuilder);
-
- assertFalse(recorder.saw("InstrumentationTest.testInstrumentation"));
- assertTrue(recorder.testsSeen.isEmpty());
- }
-
- private static String packageFor(Class clazz) {
- String className = clazz.getName();
- return className.substring(0, className.lastIndexOf('.'));
- }
-
- private SuiteExecutionRecorder runSuite(TestSuiteBuilder builder) {
- TestSuite suite = builder.build();
- SuiteExecutionRecorder recorder = new SuiteExecutionRecorder();
- TestResult result = new TestResult();
- result.addListener(recorder);
- suite.run(result);
- return recorder;
- }
-
- private class SuiteExecutionRecorder implements TestListener {
-
- private Set<String> failures = new HashSet<String>();
- private Set<String> errors = new HashSet<String>();
- private Set<String> testsSeen = new HashSet<String>();
-
- public void addError(Test test, Throwable t) {
- errors.add(testName(test));
- }
-
- public void addFailure(Test test, AssertionFailedError t) {
- failures.add(testName(test));
- }
-
- public void endTest(Test test) {
- }
-
- public void startTest(Test test) {
- testsSeen.add(testName(test));
- }
-
- public boolean saw(String testName) {
- return testsSeen.contains(testName);
- }
-
- public boolean failed(String testName) {
- return failures.contains(testName);
- }
-
- public boolean errored(String testName) {
- return errors.contains(testName);
- }
-
- public boolean passed(String testName) {
- return saw(testName) && !failed(testName) && !errored(testName);
- }
-
- private String testName(Test test) {
- TestCase testCase = (TestCase) test;
- return testCase.getClass().getSimpleName() + "." + testCase.getName();
- }
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/annotation/HasAnnotationTest.java b/tests/CoreTests/android/test/suitebuilder/annotation/HasAnnotationTest.java
deleted file mode 100644
index edf067d..0000000
--- a/tests/CoreTests/android/test/suitebuilder/annotation/HasAnnotationTest.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder.annotation;
-
-import android.test.suitebuilder.TestMethod;
-import junit.framework.TestCase;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-import java.lang.reflect.Method;
-
-public class HasAnnotationTest extends TestCase {
-
- public void testThatMethodWithAnnotationIsReportedAsBeingAnnotated() throws Exception {
- assertTrue(hasExampleAnnotation(ClassWithAnnotation.class, "testWithAnnotation"));
- assertTrue(hasExampleAnnotation(ClassWithoutAnnotation.class, "testWithAnnotation"));
- }
-
- public void testThatMethodWithOutAnnotationIsNotReportedAsBeingAnnotated() throws Exception {
- assertFalse(hasExampleAnnotation(ClassWithoutAnnotation.class, "testWithoutAnnotation"));
- }
-
- public void testThatClassAnnotatioCausesAllMethodsToBeReportedAsBeingAnnotated()
- throws Exception {
- assertTrue(hasExampleAnnotation(ClassWithAnnotation.class, "testWithoutAnnotation"));
- }
-
- private boolean hasExampleAnnotation(Class<? extends TestCase> aClass, String methodName)
- throws NoSuchMethodException {
- Method method = aClass.getMethod(methodName);
- TestMethod testMethod = new TestMethod(method, aClass);
- return new HasAnnotation(Example.class).apply(testMethod);
- }
-
- @Retention(RetentionPolicy.RUNTIME)
- @Target({ElementType.TYPE, ElementType.METHOD})
- public @interface Example {
- }
-
- @Example
- static class ClassWithAnnotation extends TestCase {
-
- @Example
- public void testWithAnnotation() {
- }
-
- public void testWithoutAnnotation() {
- }
- }
-
- static class ClassWithoutAnnotation extends TestCase {
-
- @Example
- public void testWithAnnotation() {
- }
-
- public void testWithoutAnnotation() {
- }
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/annotation/HasClassAnnotationTest.java b/tests/CoreTests/android/test/suitebuilder/annotation/HasClassAnnotationTest.java
deleted file mode 100644
index 051ea54..0000000
--- a/tests/CoreTests/android/test/suitebuilder/annotation/HasClassAnnotationTest.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder.annotation;
-
-import android.test.suitebuilder.TestMethod;
-import junit.framework.TestCase;
-
-import java.lang.reflect.Method;
-
-public class HasClassAnnotationTest extends TestCase {
-
- public void testShouldTellIfParentClassHasSpecifiedClassification()
- throws NoSuchMethodException {
- assertTrue(classHasAnnotation(SmokeTestExample.class, Smoke.class));
- }
-
- public void testShouldTellIfParentClassDoesNotHaveSpecifiedClassification()
- throws NoSuchMethodException {
- assertFalse(classHasAnnotation(NonSmokeTestExample.class, Smoke.class));
- }
-
- private boolean classHasAnnotation(
- Class<? extends TestCase> aClass,
- Class<Smoke> expectedClassification) throws NoSuchMethodException {
- Method method = aClass.getMethod("testSomeTest");
-
- TestMethod testMethod = new TestMethod(method, aClass);
- return new HasClassAnnotation(expectedClassification).apply(testMethod);
- }
-
- @Smoke
- static class SmokeTestExample extends TestCase {
-
- public void testSomeTest() {
- }
- }
-
- static class NonSmokeTestExample extends TestCase {
-
- public void testSomeTest() {
- }
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/annotation/HasMethodAnnotationTest.java b/tests/CoreTests/android/test/suitebuilder/annotation/HasMethodAnnotationTest.java
deleted file mode 100644
index c864e28..0000000
--- a/tests/CoreTests/android/test/suitebuilder/annotation/HasMethodAnnotationTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder.annotation;
-
-import android.test.suitebuilder.TestMethod;
-import junit.framework.TestCase;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
-
-
-public class HasMethodAnnotationTest extends TestCase {
-
- public void testMethodWithSpecifiedAttribute() throws Exception {
- assertTrue(methodHasAnnotation(AnnotatedMethodExample.class,
- "testThatIsAnnotated", Smoke.class));
- }
-
- public void testMethodWithoutSpecifiedAttribute() throws Exception {
- assertFalse(methodHasAnnotation(AnnotatedMethodExample.class,
- "testThatIsNotAnnotated", Smoke.class));
- }
-
- private boolean methodHasAnnotation(Class<? extends TestCase> aClass,
- String methodName,
- Class<? extends Annotation> expectedClassification
- ) throws NoSuchMethodException {
- Method method = aClass.getMethod(methodName);
- TestMethod testMethod = new TestMethod(method, aClass);
- return new HasMethodAnnotation(expectedClassification).apply(testMethod);
- }
-
- static class AnnotatedMethodExample extends TestCase {
-
- @Smoke
- public void testThatIsAnnotated() {
- }
-
- public void testThatIsNotAnnotated() {
- }
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/examples/OuterTest.java b/tests/CoreTests/android/test/suitebuilder/examples/OuterTest.java
deleted file mode 100644
index 4659bf9..0000000
--- a/tests/CoreTests/android/test/suitebuilder/examples/OuterTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder.examples;
-
-import android.test.suitebuilder.TestSuiteBuilder;
-
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-public class OuterTest extends TestCase {
-
- public void testOuter() {
- assertTrue(true);
- }
-
- public TestSuite buildTestsUnderHereRecursively() {
- return buildTestsUnderHereWith(new TestSuiteBuilder(getClass()));
- }
-
- public TestSuite buildTestsUnderHereWith(TestSuiteBuilder testSuiteBuilder) {
- return testSuiteBuilder.includeAllPackagesUnderHere().build();
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/examples/error/ErrorTest.java b/tests/CoreTests/android/test/suitebuilder/examples/error/ErrorTest.java
deleted file mode 100644
index f1f6113..0000000
--- a/tests/CoreTests/android/test/suitebuilder/examples/error/ErrorTest.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder.examples.error;
-
-import junit.framework.TestCase;
-
-public class ErrorTest extends TestCase {
-
- public void testErrorOne() throws Exception {
- throw new RuntimeException("Expected");
- }
-
- public void testErrorTwo() throws Exception {
- throw new RuntimeException("Expected");
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/examples/error/FailingTest.java b/tests/CoreTests/android/test/suitebuilder/examples/error/FailingTest.java
deleted file mode 100644
index 428fd23..0000000
--- a/tests/CoreTests/android/test/suitebuilder/examples/error/FailingTest.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder.examples.error;
-
-import junit.framework.TestCase;
-
-public class FailingTest extends TestCase {
-
- public void testFailOne() throws Exception {
- fail("Expected");
- }
-
- public void testFailTwo() throws Exception {
- fail("Expected");
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/examples/instrumentation/InstrumentationTest.java b/tests/CoreTests/android/test/suitebuilder/examples/instrumentation/InstrumentationTest.java
deleted file mode 100644
index 5158a90..0000000
--- a/tests/CoreTests/android/test/suitebuilder/examples/instrumentation/InstrumentationTest.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder.examples.instrumentation;
-
-import android.test.InstrumentationTestCase;
-
-public class InstrumentationTest extends InstrumentationTestCase {
-
- public void testInstrumentation() throws Exception {
- assertTrue(true);
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/examples/nested/Level1Test.java b/tests/CoreTests/android/test/suitebuilder/examples/nested/Level1Test.java
deleted file mode 100644
index 17d39d6..0000000
--- a/tests/CoreTests/android/test/suitebuilder/examples/nested/Level1Test.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder.examples.nested;
-
-import junit.framework.TestCase;
-
-public class Level1Test extends TestCase {
-
- public void testLevel1() throws Exception {
- assertTrue(true);
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/examples/nested/nested/Level2Test.java b/tests/CoreTests/android/test/suitebuilder/examples/nested/nested/Level2Test.java
deleted file mode 100644
index 6f0daca..0000000
--- a/tests/CoreTests/android/test/suitebuilder/examples/nested/nested/Level2Test.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder.examples.nested.nested;
-
-import junit.framework.TestCase;
-
-public class Level2Test extends TestCase {
-
- public void testLevel2() throws Exception {
- assertTrue(true);
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/examples/simple/AnotherSimpleTest.java b/tests/CoreTests/android/test/suitebuilder/examples/simple/AnotherSimpleTest.java
deleted file mode 100644
index 0dfeda8..0000000
--- a/tests/CoreTests/android/test/suitebuilder/examples/simple/AnotherSimpleTest.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder.examples.simple;
-
-import junit.framework.TestCase;
-
-public class AnotherSimpleTest extends TestCase {
-
- public void testAnotherOne() throws Exception {
- assertTrue(true);
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/examples/simple/SimpleTest.java b/tests/CoreTests/android/test/suitebuilder/examples/simple/SimpleTest.java
deleted file mode 100644
index 4dcac44..0000000
--- a/tests/CoreTests/android/test/suitebuilder/examples/simple/SimpleTest.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder.examples.simple;
-
-import junit.framework.TestCase;
-
-public class SimpleTest extends TestCase {
-
- public void testSimpleOne() throws Exception {
- assertTrue(true);
- }
-
- public void testSimpleTwo() throws Exception {
- assertTrue(true);
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/examples/smoke/NonSmokeTest.java b/tests/CoreTests/android/test/suitebuilder/examples/smoke/NonSmokeTest.java
deleted file mode 100644
index 1512ba7..0000000
--- a/tests/CoreTests/android/test/suitebuilder/examples/smoke/NonSmokeTest.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder.examples.smoke;
-
-import junit.framework.TestCase;
-
-public class NonSmokeTest extends TestCase {
-
- public void testNonSmoke() throws Exception {
- assertTrue(true);
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/examples/smoke/SmokeTest.java b/tests/CoreTests/android/test/suitebuilder/examples/smoke/SmokeTest.java
deleted file mode 100644
index c3515df..0000000
--- a/tests/CoreTests/android/test/suitebuilder/examples/smoke/SmokeTest.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder.examples.smoke;
-
-import android.test.suitebuilder.annotation.Smoke;
-import junit.framework.TestCase;
-
-@Smoke
-public class SmokeTest extends TestCase {
-
- public void testSmoke() throws Exception {
- assertTrue(true);
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/examples/subclass/SubclassTest.java b/tests/CoreTests/android/test/suitebuilder/examples/subclass/SubclassTest.java
deleted file mode 100644
index 0ab8c72..0000000
--- a/tests/CoreTests/android/test/suitebuilder/examples/subclass/SubclassTest.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder.examples.subclass;
-
-public class SubclassTest extends SuperclassTest {
-
- public void testSubclass() throws Exception {
- assertTrue(true);
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/examples/subclass/SuperclassTest.java b/tests/CoreTests/android/test/suitebuilder/examples/subclass/SuperclassTest.java
deleted file mode 100644
index 05513c5..0000000
--- a/tests/CoreTests/android/test/suitebuilder/examples/subclass/SuperclassTest.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder.examples.subclass;
-
-import junit.framework.TestCase;
-
-public abstract class SuperclassTest extends TestCase {
-
- public void testSuperclass() throws Exception {
- assertTrue(true);
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/examples/suppress/PartiallySuppressedTest.java b/tests/CoreTests/android/test/suitebuilder/examples/suppress/PartiallySuppressedTest.java
deleted file mode 100644
index 3ca0f70..0000000
--- a/tests/CoreTests/android/test/suitebuilder/examples/suppress/PartiallySuppressedTest.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder.examples.suppress;
-
-import android.test.suitebuilder.annotation.Suppress;
-
-import junit.framework.TestCase;
-
-public class PartiallySuppressedTest extends TestCase {
-
- @Suppress
- public void testSuppressedMethod() throws Exception {
- assertTrue(true);
- }
-
- public void testUnSuppressedMethod() throws Exception {
- assertTrue(true);
- }
-}
diff --git a/tests/CoreTests/android/test/suitebuilder/examples/suppress/SuppressedTest.java b/tests/CoreTests/android/test/suitebuilder/examples/suppress/SuppressedTest.java
deleted file mode 100644
index c4e0e07..0000000
--- a/tests/CoreTests/android/test/suitebuilder/examples/suppress/SuppressedTest.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test.suitebuilder.examples.suppress;
-
-import android.test.suitebuilder.annotation.Suppress;
-
-import junit.framework.TestCase;
-
-@Suppress
-public class SuppressedTest extends TestCase {
-
- public void testSuppressedClass() throws Exception {
- assertTrue(true);
- }
-}
diff --git a/tests/CoreTests/android/util/DayOfMonthCursorTest.java b/tests/CoreTests/android/util/DayOfMonthCursorTest.java
deleted file mode 100644
index 4c5ad76..0000000
--- a/tests/CoreTests/android/util/DayOfMonthCursorTest.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.util;
-
-import junit.framework.TestCase;
-
-import java.util.Calendar;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Unit tests for {@link DayOfMonthCursor}.
- */
-public class DayOfMonthCursorTest extends TestCase {
-
- @SmallTest
- public void testMonthRows() {
- DayOfMonthCursor mc = new DayOfMonthCursor(2007,
- Calendar.SEPTEMBER, 11, Calendar.SUNDAY);
-
- assertArraysEqual(new int[]{26, 27, 28, 29, 30, 31, 1},
- mc.getDigitsForRow(0));
- assertArraysEqual(new int[]{2, 3, 4, 5, 6, 7, 8},
- mc.getDigitsForRow(1));
- assertArraysEqual(new int[]{30, 1, 2, 3, 4, 5, 6},
- mc.getDigitsForRow(5));
- }
-
- @SmallTest
- public void testMoveLeft() {
- DayOfMonthCursor mc = new DayOfMonthCursor(2007,
- Calendar.SEPTEMBER, 3, Calendar.SUNDAY);
-
- assertEquals(Calendar.SEPTEMBER, mc.getMonth());
- assertEquals(3, mc.getSelectedDayOfMonth());
- assertEquals(1, mc.getSelectedRow());
- assertEquals(1, mc.getSelectedColumn());
-
- // move left, still same row
- assertFalse(mc.left());
- assertEquals(2, mc.getSelectedDayOfMonth());
- assertEquals(1, mc.getSelectedRow());
- assertEquals(0, mc.getSelectedColumn());
-
- // wrap over to previous column, same month
- assertFalse(mc.left());
- assertEquals(1, mc.getSelectedDayOfMonth());
- assertEquals(0, mc.getSelectedRow());
- assertEquals(6, mc.getSelectedColumn());
-
- // wrap to previous month
- assertTrue(mc.left());
- assertEquals(Calendar.AUGUST, mc.getMonth());
- assertEquals(31, mc.getSelectedDayOfMonth());
- assertEquals(4, mc.getSelectedRow());
- assertEquals(5, mc.getSelectedColumn());
- }
-
- @SmallTest
- public void testMoveRight() {
- DayOfMonthCursor mc = new DayOfMonthCursor(2007,
- Calendar.SEPTEMBER, 28, Calendar.SUNDAY);
-
- assertEquals(Calendar.SEPTEMBER, mc.getMonth());
- assertEquals(28, mc.getSelectedDayOfMonth());
- assertEquals(4, mc.getSelectedRow());
- assertEquals(5, mc.getSelectedColumn());
-
- // same row
- assertFalse(mc.right());
- assertEquals(29, mc.getSelectedDayOfMonth());
- assertEquals(4, mc.getSelectedRow());
- assertEquals(6, mc.getSelectedColumn());
-
- // wrap to next column, same month
- assertFalse(mc.right());
- assertEquals(30, mc.getSelectedDayOfMonth());
- assertEquals(5, mc.getSelectedRow());
- assertEquals(0, mc.getSelectedColumn());
-
- // next month
- assertTrue(mc.right());
- assertEquals(Calendar.OCTOBER, mc.getMonth());
- assertEquals(1, mc.getSelectedDayOfMonth());
- assertEquals(0, mc.getSelectedRow());
- assertEquals(1, mc.getSelectedColumn());
- }
-
- @SmallTest
- public void testMoveUp() {
- DayOfMonthCursor mc = new DayOfMonthCursor(2007,
- Calendar.SEPTEMBER, 13, Calendar.SUNDAY);
-
- assertEquals(Calendar.SEPTEMBER, mc.getMonth());
- assertEquals(13, mc.getSelectedDayOfMonth());
- assertEquals(2, mc.getSelectedRow());
- assertEquals(4, mc.getSelectedColumn());
-
- // up, same month
- assertFalse(mc.up());
- assertEquals(6, mc.getSelectedDayOfMonth());
- assertEquals(1, mc.getSelectedRow());
- assertEquals(4, mc.getSelectedColumn());
-
- // up, flips back
- assertTrue(mc.up());
- assertEquals(Calendar.AUGUST, mc.getMonth());
- assertEquals(30, mc.getSelectedDayOfMonth());
- assertEquals(4, mc.getSelectedRow());
- assertEquals(4, mc.getSelectedColumn());
- }
-
- @SmallTest
- public void testMoveDown() {
- DayOfMonthCursor mc = new DayOfMonthCursor(2007,
- Calendar.SEPTEMBER, 23, Calendar.SUNDAY);
-
- assertEquals(Calendar.SEPTEMBER, mc.getMonth());
- assertEquals(23, mc.getSelectedDayOfMonth());
- assertEquals(4, mc.getSelectedRow());
- assertEquals(0, mc.getSelectedColumn());
-
- // down, same month
- assertFalse(mc.down());
- assertEquals(30, mc.getSelectedDayOfMonth());
- assertEquals(5, mc.getSelectedRow());
- assertEquals(0, mc.getSelectedColumn());
-
- // down, next month
- assertTrue(mc.down());
- assertEquals(Calendar.OCTOBER, mc.getMonth());
- assertEquals(7, mc.getSelectedDayOfMonth());
- assertEquals(1, mc.getSelectedRow());
- assertEquals(0, mc.getSelectedColumn());
- }
-
- private void assertArraysEqual(int[] expected, int[] actual) {
- assertEquals("array length", expected.length, actual.length);
- for (int i = 0; i < expected.length; i++) {
- assertEquals("index " + i,
- expected[i], actual[i]);
- }
- }
-}
diff --git a/tests/CoreTests/android/util/FloatMathTest.java b/tests/CoreTests/android/util/FloatMathTest.java
deleted file mode 100644
index f479e2b..0000000
--- a/tests/CoreTests/android/util/FloatMathTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.util;
-
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class FloatMathTest extends TestCase {
-
- @SmallTest
- public void testSqrt() {
- assertEquals(7, FloatMath.sqrt(49), 0);
- assertEquals(10, FloatMath.sqrt(100), 0);
- assertEquals(0, FloatMath.sqrt(0), 0);
- assertEquals(1, FloatMath.sqrt(1), 0);
- }
-
- @SmallTest
- public void testFloor() {
- assertEquals(78, FloatMath.floor(78.89f), 0);
- assertEquals(-79, FloatMath.floor(-78.89f), 0);
- }
-
- @SmallTest
- public void testCeil() {
- assertEquals(79, FloatMath.ceil(78.89f), 0);
- assertEquals(-78, FloatMath.ceil(-78.89f), 0);
- }
-
- @SmallTest
- public void testSin() {
- assertEquals(0.0, FloatMath.sin(0), 0);
- assertEquals(0.8414709848078965f, FloatMath.sin(1), 0);
- }
-
- @SmallTest
- public void testCos() {
- assertEquals(1.0f, FloatMath.cos(0), 0);
- assertEquals(0.5403023058681398f, FloatMath.cos(1), 0);
- }
-}
diff --git a/tests/CoreTests/android/util/MonthDisplayHelperTest.java b/tests/CoreTests/android/util/MonthDisplayHelperTest.java
deleted file mode 100644
index 5207ad9..0000000
--- a/tests/CoreTests/android/util/MonthDisplayHelperTest.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.util;
-
-import junit.framework.TestCase;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import java.util.Calendar;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.test.suitebuilder.annotation.MediumTest;
-
-/**
- * Unit tests for {@link MonthDisplayHelper}.
- */
-public class MonthDisplayHelperTest extends TestCase {
-
-
- @SmallTest
- public void testFirstDayOfMonth() {
-
- assertEquals("august 2007",
- Calendar.WEDNESDAY,
- new MonthDisplayHelper(2007, Calendar.AUGUST).getFirstDayOfMonth());
-
- assertEquals("september, 2007",
- Calendar.SATURDAY,
- new MonthDisplayHelper(2007, Calendar.SEPTEMBER).getFirstDayOfMonth());
- }
-
- @MediumTest
- public void testNumberOfDaysInCurrentMonth() {
- assertEquals(30,
- new MonthDisplayHelper(2007, Calendar.SEPTEMBER).getNumberOfDaysInMonth());
- }
-
- @SmallTest
- public void testMonthRows() {
- MonthDisplayHelper helper = new MonthDisplayHelper(2007, Calendar.SEPTEMBER);
-
- assertArraysEqual(new int[]{26, 27, 28, 29, 30, 31, 1},
- helper.getDigitsForRow(0));
- assertArraysEqual(new int[]{2, 3, 4, 5, 6, 7, 8},
- helper.getDigitsForRow(1));
- assertArraysEqual(new int[]{30, 1, 2, 3, 4, 5, 6},
- helper.getDigitsForRow(5));
-
- }
-
- @SmallTest
- public void testMonthRowsWeekStartsMonday() {
- MonthDisplayHelper helper = new MonthDisplayHelper(2007,
- Calendar.SEPTEMBER, Calendar.MONDAY);
-
- assertArraysEqual(new int[]{27, 28, 29, 30, 31, 1, 2},
- helper.getDigitsForRow(0));
- assertArraysEqual(new int[]{3, 4, 5, 6, 7, 8, 9},
- helper.getDigitsForRow(1));
- assertArraysEqual(new int[]{24, 25, 26, 27, 28, 29, 30},
- helper.getDigitsForRow(4));
- assertArraysEqual(new int[]{1, 2, 3, 4, 5, 6, 7},
- helper.getDigitsForRow(5));
- }
-
- @SmallTest
- public void testMonthRowsWeekStartsSaturday() {
- MonthDisplayHelper helper = new MonthDisplayHelper(2007,
- Calendar.SEPTEMBER, Calendar.SATURDAY);
-
- assertArraysEqual(new int[]{1, 2, 3, 4, 5, 6, 7},
- helper.getDigitsForRow(0));
- assertArraysEqual(new int[]{8, 9, 10, 11, 12, 13, 14},
- helper.getDigitsForRow(1));
- assertArraysEqual(new int[]{29, 30, 1, 2, 3, 4, 5},
- helper.getDigitsForRow(4));
-
-
- helper = new MonthDisplayHelper(2007,
- Calendar.AUGUST, Calendar.SATURDAY);
-
- assertArraysEqual(new int[]{28, 29, 30, 31, 1, 2, 3},
- helper.getDigitsForRow(0));
- assertArraysEqual(new int[]{4, 5, 6, 7, 8, 9, 10},
- helper.getDigitsForRow(1));
- assertArraysEqual(new int[]{25, 26, 27, 28, 29, 30, 31},
- helper.getDigitsForRow(4));
- }
-
- @SmallTest
- public void testGetDayAt() {
- MonthDisplayHelper helper = new MonthDisplayHelper(2007,
- Calendar.SEPTEMBER, Calendar.SUNDAY);
-
- assertEquals(26, helper.getDayAt(0, 0));
- assertEquals(1, helper.getDayAt(0, 6));
- assertEquals(17, helper.getDayAt(3, 1));
- assertEquals(2, helper.getDayAt(5, 2));
- }
-
- @SmallTest
- public void testPrevMonth() {
- MonthDisplayHelper helper = new MonthDisplayHelper(2007,
- Calendar.SEPTEMBER, Calendar.SUNDAY);
-
- assertArraysEqual(new int[]{26, 27, 28, 29, 30, 31, 1},
- helper.getDigitsForRow(0));
-
- helper.previousMonth();
-
- assertEquals(Calendar.AUGUST, helper.getMonth());
- assertArraysEqual(new int[]{29, 30, 31, 1, 2, 3, 4},
- helper.getDigitsForRow(0));
- }
-
- @SmallTest
- public void testPrevMonthRollOver() {
- MonthDisplayHelper helper = new MonthDisplayHelper(2007,
- Calendar.JANUARY);
-
- helper.previousMonth();
-
- assertEquals(2006, helper.getYear());
- assertEquals(Calendar.DECEMBER, helper.getMonth());
- }
-
- @SmallTest
- public void testNextMonth() {
- MonthDisplayHelper helper = new MonthDisplayHelper(2007,
- Calendar.AUGUST, Calendar.SUNDAY);
-
- assertArraysEqual(new int[]{29, 30, 31, 1, 2, 3, 4},
- helper.getDigitsForRow(0));
-
- helper.nextMonth();
-
- assertEquals(Calendar.SEPTEMBER, helper.getMonth());
- assertArraysEqual(new int[]{26, 27, 28, 29, 30, 31, 1},
- helper.getDigitsForRow(0));
- }
-
- @SmallTest
- public void testGetRowOf() {
- MonthDisplayHelper helper = new MonthDisplayHelper(2007,
- Calendar.AUGUST, Calendar.SUNDAY);
-
- assertEquals(0, helper.getRowOf(2));
- assertEquals(0, helper.getRowOf(4));
- assertEquals(2, helper.getRowOf(12));
- assertEquals(2, helper.getRowOf(18));
- assertEquals(3, helper.getRowOf(19));
- }
-
- @SmallTest
- public void testGetColumnOf() {
- MonthDisplayHelper helper = new MonthDisplayHelper(2007,
- Calendar.AUGUST, Calendar.SUNDAY);
-
- assertEquals(3, helper.getColumnOf(1));
- assertEquals(4, helper.getColumnOf(9));
- assertEquals(5, helper.getColumnOf(17));
- assertEquals(6, helper.getColumnOf(25));
- assertEquals(0, helper.getColumnOf(26));
- }
-
- @SmallTest
- public void testWithinCurrentMonth() {
- MonthDisplayHelper helper = new MonthDisplayHelper(2007,
- Calendar.SEPTEMBER, Calendar.SUNDAY);
-
- // out of bounds
- assertFalse(helper.isWithinCurrentMonth(-1, 3));
- assertFalse(helper.isWithinCurrentMonth(6, 3));
- assertFalse(helper.isWithinCurrentMonth(2, -1));
- assertFalse(helper.isWithinCurrentMonth(2, 7));
-
- // last day of previous month
- assertFalse(helper.isWithinCurrentMonth(0, 5));
-
- // first day of next month
- assertFalse(helper.isWithinCurrentMonth(5, 1));
-
- // first day in month
- assertTrue(helper.isWithinCurrentMonth(0, 6));
-
- // last day in month
- assertTrue(helper.isWithinCurrentMonth(5, 0));
- }
-
- private void assertArraysEqual(int[] expected, int[] actual) {
- assertEquals("array length", expected.length, actual.length);
- for (int i = 0; i < expected.length; i++) {
- assertEquals("index " + i,
- expected[i], actual[i]);
- }
- }
-
-}
diff --git a/tests/CoreTests/android/util/StateSetTest.java b/tests/CoreTests/android/util/StateSetTest.java
deleted file mode 100644
index e481ce04..0000000
--- a/tests/CoreTests/android/util/StateSetTest.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.util;
-
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * Tests for {@link StateSet}
- */
-
-public class StateSetTest extends TestCase {
-
- @SmallTest
- public void testStateSetPositiveMatches() throws Exception {
- int[] stateSpec = new int[2];
- int[] stateSet = new int[3];
- // Single states in both sets - match
- stateSpec[0] = 1;
- stateSet[0] = 1;
- assertTrue(StateSet.stateSetMatches(stateSpec, stateSet));
- // Single states in both sets - non-match
- stateSet[0] = 2;
- assertFalse(StateSet.stateSetMatches(stateSpec, stateSet));
- // Add another state to the spec which the stateSet doesn't match
- stateSpec[1] = 2;
- assertFalse(StateSet.stateSetMatches(stateSpec, stateSet));
- // Add the missing matching element to the stateSet
- stateSet[1] = 1;
- assertTrue(StateSet.stateSetMatches(stateSpec, stateSet));
- // Add an irrelevent state to the stateSpec
- stateSet[2] = 12345;
- assertTrue(StateSet.stateSetMatches(stateSpec, stateSet));
- }
-
- @SmallTest
- public void testStatesSetMatchMixEmUp() throws Exception {
- int[] stateSpec = new int[2];
- int[] stateSet = new int[2];
- // One element in stateSpec which we must match and one which we must
- // not match. stateSet only contains the match.
- stateSpec[0] = 1;
- stateSpec[1] = -2;
- stateSet[0] = 1;
- assertTrue(StateSet.stateSetMatches(stateSpec, stateSet));
- // stateSet now contains just the element we must not match
- stateSet[0] = 2;
- assertFalse(StateSet.stateSetMatches(stateSpec, stateSet));
- // Add another matching state to the the stateSet. We still fail
- // because stateSet contains a must-not-match element
- stateSet[1] = 1;
- assertFalse(StateSet.stateSetMatches(stateSpec, stateSet));
- // Switch the must-not-match element in stateSet with a don't care
- stateSet[0] = 12345;
- assertTrue(StateSet.stateSetMatches(stateSpec, stateSet));
- }
-
- @SmallTest
- public void testStateSetNegativeMatches() throws Exception {
- int[] stateSpec = new int[2];
- int[] stateSet = new int[3];
- // Single states in both sets - match
- stateSpec[0] = -1;
- stateSet[0] = 2;
- assertTrue(StateSet.stateSetMatches(stateSpec, stateSet));
- // Add another arrelevent state to the stateSet
- stateSet[1] = 12345;
- assertTrue(StateSet.stateSetMatches(stateSpec, stateSet));
- // Single states in both sets - non-match
- stateSet[0] = 1;
- assertFalse(StateSet.stateSetMatches(stateSpec, stateSet));
- // Add another state to the spec which the stateSet doesn't match
- stateSpec[1] = -2;
- assertFalse(StateSet.stateSetMatches(stateSpec, stateSet));
- // Add an irrelevent state to the stateSet
- stateSet[2] = 12345;
- assertFalse(StateSet.stateSetMatches(stateSpec, stateSet));
- }
-
- @SmallTest
- public void testEmptySetMatchesNegtives() throws Exception {
- int[] stateSpec = {-12345, -6789};
- int[] stateSet = new int[0];
- assertTrue(StateSet.stateSetMatches(stateSpec, stateSet));
- int[] stateSet2 = {0};
- assertTrue(StateSet.stateSetMatches(stateSpec, stateSet2));
- }
-
- @SmallTest
- public void testEmptySetFailsPositives() throws Exception {
- int[] stateSpec = {12345};
- int[] stateSet = new int[0];
- assertFalse(StateSet.stateSetMatches(stateSpec, stateSet));
- int[] stateSet2 = {0};
- assertFalse(StateSet.stateSetMatches(stateSpec, stateSet2));
- }
-
- @SmallTest
- public void testEmptySetMatchesWildcard() throws Exception {
- int[] stateSpec = StateSet.WILD_CARD;
- int[] stateSet = new int[0];
- assertTrue(StateSet.stateSetMatches(stateSpec, stateSet));
- int[] stateSet2 = {0};
- assertTrue(StateSet.stateSetMatches(stateSpec, stateSet2));
- }
-
- @SmallTest
- public void testSingleStatePositiveMatches() throws Exception {
- int[] stateSpec = new int[2];
- int state;
- // match
- stateSpec[0] = 1;
- state = 1;
- assertTrue(StateSet.stateSetMatches(stateSpec, state));
- // non-match
- state = 2;
- assertFalse(StateSet.stateSetMatches(stateSpec, state));
- // add irrelevant must-not-match
- stateSpec[1] = -12345;
- assertFalse(StateSet.stateSetMatches(stateSpec, state));
- }
-
- @SmallTest
- public void testSingleStateNegativeMatches() throws Exception {
- int[] stateSpec = new int[2];
- int state;
- // match
- stateSpec[0] = -1;
- state = 1;
- assertFalse(StateSet.stateSetMatches(stateSpec, state));
- // non-match
- state = 2;
- assertTrue(StateSet.stateSetMatches(stateSpec, state));
- // add irrelevant must-not-match
- stateSpec[1] = -12345;
- assertTrue(StateSet.stateSetMatches(stateSpec, state));
- }
-
- @SmallTest
- public void testZeroStateOnlyMatchesDefault() throws Exception {
- int[] stateSpec = new int[3];
- int state = 0;
- // non-match
- stateSpec[0] = 1;
- assertFalse(StateSet.stateSetMatches(stateSpec, state));
- // non-match
- stateSpec[1] = -1;
- assertFalse(StateSet.stateSetMatches(stateSpec, state));
- // match
- stateSpec = StateSet.WILD_CARD;
- assertTrue(StateSet.stateSetMatches(stateSpec, state));
- }
-
- @SmallTest
- public void testNullStateOnlyMatchesDefault() throws Exception {
- int[] stateSpec = new int[3];
- int[] stateSet = null;
- // non-match
- stateSpec[0] = 1;
- assertFalse(StateSet.stateSetMatches(stateSpec, stateSet));
- // non-match
- stateSpec[1] = -1;
- assertFalse(StateSet.stateSetMatches(stateSpec, stateSet));
- // match
- stateSpec = StateSet.WILD_CARD;
- assertTrue(StateSet.stateSetMatches(stateSpec, stateSet));
- }
-}
diff --git a/tests/CoreTests/android/view/FocusFinderTest.java b/tests/CoreTests/android/view/FocusFinderTest.java
deleted file mode 100644
index 7ac8dfc..0000000
--- a/tests/CoreTests/android/view/FocusFinderTest.java
+++ /dev/null
@@ -1,576 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.view;
-
-import android.graphics.Rect;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class FocusFinderTest extends AndroidTestCase {
-
- private FocusFinderHelper mFocusFinder;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mFocusFinder = new FocusFinderHelper(FocusFinder.getInstance());
- }
-
- @SmallTest
- public void testPreconditions() {
- assertNotNull("focus finder instance", mFocusFinder);
- }
-
- @SmallTest
- public void testBelowNotCandidateForDirectionUp() {
- assertIsNotCandidate(View.FOCUS_UP,
- new Rect(0, 30, 10, 40), // src (left, top, right, bottom)
- new Rect(0, 50, 10, 60)); // dest (left, top, right, bottom)
- }
-
- @SmallTest
- public void testAboveShareEdgeEdgeOkForDirectionUp() {
- final Rect src = new Rect(0, 30, 10, 40);
-
- final Rect dest = new Rect(src);
- dest.offset(0, -src.height());
- assertEquals(src.top, dest.bottom);
-
- assertDirectionIsCandidate(View.FOCUS_UP, src, dest);
- }
-
- @SmallTest
- public void testCompletelyContainedNotCandidate() {
- assertIsNotCandidate(
- View.FOCUS_DOWN,
- // L T R B
- new Rect(0, 0, 50, 50),
- new Rect(0, 1, 50, 49));
- }
-
- @SmallTest
- public void testContinaedWithCommonBottomNotCandidate() {
- assertIsNotCandidate(
- View.FOCUS_DOWN,
- // L T R B
- new Rect(0, 0, 50, 50),
- new Rect(0, 1, 50, 50));
- }
-
- @SmallTest
- public void testOverlappingIsCandidateWhenBothEdgesAreInDirection() {
- assertDirectionIsCandidate(
- View.FOCUS_DOWN,
- // L T R B
- new Rect(0, 0, 50, 50),
- new Rect(0, 1, 50, 51));
- }
-
- @SmallTest
- public void testTopEdgeOfDestAtOrAboveTopOfSrcNotCandidateForDown() {
- assertIsNotCandidate(
- View.FOCUS_DOWN,
- // L T R B
- new Rect(0, 0, 50, 50),
- new Rect(0, 0, 50, 51));
- assertIsNotCandidate(
- View.FOCUS_DOWN,
- // L T R B
- new Rect(0, 0, 50, 50),
- new Rect(0, -1, 50, 51));
- }
-
- @SmallTest
- public void testSameRectBeamsOverlap() {
- final Rect rect = new Rect(0, 0, 20, 20);
-
- assertBeamsOverlap(View.FOCUS_LEFT, rect, rect);
- assertBeamsOverlap(View.FOCUS_RIGHT, rect, rect);
- assertBeamsOverlap(View.FOCUS_UP, rect, rect);
- assertBeamsOverlap(View.FOCUS_DOWN, rect, rect);
- }
-
- @SmallTest
- public void testOverlapBeamsRightLeftUpToEdge() {
- final Rect rect1 = new Rect(0, 0, 20, 20);
- final Rect rect2 = new Rect(rect1);
-
- // just below bottom edge
- rect2.offset(0, rect1.height() - 1);
- assertBeamsOverlap(View.FOCUS_LEFT, rect1, rect2);
- assertBeamsOverlap(View.FOCUS_RIGHT, rect1, rect2);
-
- // at edge
- rect2.offset(0, 1);
- assertBeamsOverlap(View.FOCUS_LEFT, rect1, rect2);
- assertBeamsOverlap(View.FOCUS_RIGHT, rect1, rect2);
-
- // just beyond
- rect2.offset(0, 1);
- assertBeamsDontOverlap(View.FOCUS_LEFT, rect1, rect2);
- assertBeamsDontOverlap(View.FOCUS_RIGHT, rect1, rect2);
-
- // just below top edge
- rect2.set(rect1);
- rect2.offset(0, -(rect1.height() - 1));
- assertBeamsOverlap(View.FOCUS_LEFT, rect1, rect2);
- assertBeamsOverlap(View.FOCUS_RIGHT, rect1, rect2);
-
- // at top edge
- rect2.offset(0, -1);
- assertBeamsOverlap(View.FOCUS_LEFT, rect1, rect2);
- assertBeamsOverlap(View.FOCUS_RIGHT, rect1, rect2);
-
- // just beyond top edge
- rect2.offset(0, -1);
- assertBeamsDontOverlap(View.FOCUS_LEFT, rect1, rect2);
- assertBeamsDontOverlap(View.FOCUS_RIGHT, rect1, rect2);
- }
-
- @SmallTest
- public void testOverlapBeamsUpDownUpToEdge() {
- final Rect rect1 = new Rect(0, 0, 20, 20);
- final Rect rect2 = new Rect(rect1);
-
- // just short of right edge
- rect2.offset(rect1.width() - 1, 0);
- assertBeamsOverlap(View.FOCUS_UP, rect1, rect2);
- assertBeamsOverlap(View.FOCUS_DOWN, rect1, rect2);
-
- // at edge
- rect2.offset(1, 0);
- assertBeamsOverlap(View.FOCUS_UP, rect1, rect2);
- assertBeamsOverlap(View.FOCUS_DOWN, rect1, rect2);
-
- // just beyond
- rect2.offset(1, 0);
- assertBeamsDontOverlap(View.FOCUS_UP, rect1, rect2);
- assertBeamsDontOverlap(View.FOCUS_DOWN, rect1, rect2);
-
- // just short of left edge
- rect2.set(rect1);
- rect2.offset(-(rect1.width() - 1), 0);
- assertBeamsOverlap(View.FOCUS_UP, rect1, rect2);
- assertBeamsOverlap(View.FOCUS_DOWN, rect1, rect2);
-
- // at edge
- rect2.offset(-1, 0);
- assertBeamsOverlap(View.FOCUS_UP, rect1, rect2);
- assertBeamsOverlap(View.FOCUS_DOWN, rect1, rect2);
-
- // just beyond edge
- rect2.offset(-1, 0);
- assertBeamsDontOverlap(View.FOCUS_UP, rect1, rect2);
- assertBeamsDontOverlap(View.FOCUS_DOWN, rect1, rect2);
- }
-
- @SmallTest
- public void testDirectlyAboveTrumpsAboveLeft() {
- Rect src = new Rect(0, 50, 20, 70); // src (left, top, right, bottom)
-
- Rect directlyAbove = new Rect(src);
- directlyAbove.offset(0, -(1 + src.height()));
-
- Rect aboveLeft = new Rect(src);
- aboveLeft.offset(-(1 + src.width()), -(1 + src.height()));
-
- assertBetterCandidate(View.FOCUS_UP, src, directlyAbove, aboveLeft);
- }
-
- @SmallTest
- public void testAboveInBeamTrumpsSlightlyCloserOutOfBeam() {
- Rect src = new Rect(0, 50, 20, 70); // src (left, top, right, bottom)
-
- Rect directlyAbove = new Rect(src);
- directlyAbove.offset(0, -(1 + src.height()));
-
- Rect aboveLeft = new Rect(src);
- aboveLeft.offset(-(1 + src.width()), -(1 + src.height()));
-
- // offset directly above a little further up
- directlyAbove.offset(0, -5);
- assertBetterCandidate(View.FOCUS_UP, src, directlyAbove, aboveLeft);
- }
-
- @SmallTest
- public void testOutOfBeamBeatsInBeamUp() {
-
- Rect src = new Rect(0, 0, 50, 50); // (left, top, right, bottom)
-
- Rect aboveLeftOfBeam = new Rect(src);
- aboveLeftOfBeam.offset(-(src.width() + 1), -src.height());
- assertBeamsDontOverlap(View.FOCUS_UP, src, aboveLeftOfBeam);
-
- Rect aboveInBeam = new Rect(src);
- aboveInBeam.offset(0, -src.height());
- assertBeamsOverlap(View.FOCUS_UP, src, aboveInBeam);
-
- // in beam wins
- assertBetterCandidate(View.FOCUS_UP, src, aboveInBeam, aboveLeftOfBeam);
-
- // still wins while aboveInBeam's bottom edge is < out of beams' top
- aboveInBeam.offset(0, -(aboveLeftOfBeam.height() - 1));
- assertTrue("aboveInBeam.bottom > aboveLeftOfBeam.top", aboveInBeam.bottom > aboveLeftOfBeam.top);
- assertBetterCandidate(View.FOCUS_UP, src, aboveInBeam, aboveLeftOfBeam);
-
- // cross the threshold: the out of beam prevails
- aboveInBeam.offset(0, -1);
- assertEquals(aboveInBeam.bottom, aboveLeftOfBeam.top);
- assertBetterCandidate(View.FOCUS_UP, src, aboveLeftOfBeam, aboveInBeam);
- }
-
- /**
- * A non-candidate (even a much closer one) is always a worse choice
- * than a real candidate.
- */
- @MediumTest
- public void testSomeCandidateBetterThanNonCandidate() {
- Rect src = new Rect(0, 0, 50, 50); // (left, top, right, bottom)
-
- Rect nonCandidate = new Rect(src);
- nonCandidate.offset(src.width() + 1, 0);
-
- assertIsNotCandidate(View.FOCUS_LEFT, src, nonCandidate);
-
- Rect candidate = new Rect(src);
- candidate.offset(-(4 * src.width()), 0);
- assertDirectionIsCandidate(View.FOCUS_LEFT, src, candidate);
-
- assertBetterCandidate(View.FOCUS_LEFT, src, candidate, nonCandidate);
- }
-
- /**
- * Grabbed from {@link com.android.frameworktest.focus.VerticalFocusSearchTest#testSearchFromMidLeft()}
- */
- @SmallTest
- public void testVerticalFocusSearchScenario() {
- assertBetterCandidate(View.FOCUS_DOWN,
- // L T R B
- new Rect(0, 109, 153, 169), // src
- new Rect(166, 169, 319, 229), // expectedbetter
- new Rect(0, 229, 320, 289)); // expectedworse
-
- // failing test 4/10/2008, the values were tweaked somehow in functional
- // test...
- assertBetterCandidate(View.FOCUS_DOWN,
- // L T R B
- new Rect(0, 91, 153, 133), // src
- new Rect(166, 133, 319, 175), // expectedbetter
- new Rect(0, 175, 320, 217)); // expectedworse
-
- }
-
- /**
- * Example: going down from a thin button all the way to the left of a
- * screen where, just below, is a very wide button, and just below that,
- * is an equally skinny button all the way to the left. want to make
- * sure any minor axis factor doesn't override the fact that the one below
- * in vertical beam should be next focus
- */
- @SmallTest
- public void testBeamsOverlapMajorAxisCloserMinorAxisFurther() {
- assertBetterCandidate(View.FOCUS_DOWN,
- // L T R B
- new Rect(0, 0, 100, 100), // src
- new Rect(0, 100, 480, 200), // expectedbetter
- new Rect(0, 200, 100, 300)); // expectedworse
- }
-
- /**
- * Real scenario grabbed from song playback screen.
- */
- @SmallTest
- public void testMusicPlaybackScenario() {
- assertBetterCandidate(View.FOCUS_LEFT,
- // L T R B
- new Rect(227, 185, 312, 231), // src
- new Rect(195, 386, 266, 438), // expectedbetter
- new Rect(124, 386, 195, 438)); // expectedworse
- }
-
- /**
- * more generalized version of {@link #testMusicPlaybackScenario()}
- */
- @SmallTest
- public void testOutOfBeamOverlapBeatsOutOfBeamFurtherOnMajorAxis() {
- assertBetterCandidate(View.FOCUS_DOWN,
- // L T R B
- new Rect(0, 0, 50, 50), // src
- new Rect(60, 40, 110, 90), // expectedbetter
- new Rect(60, 70, 110, 120)); // expectedworse
- }
-
- /**
- * Make sure that going down prefers views that are actually
- * down (and not those next to but still a candidate because
- * they are overlapping on the major axis)
- */
- @SmallTest
- public void testInBeamTrumpsOutOfBeamOverlapping() {
- assertBetterCandidate(View.FOCUS_DOWN,
- // L T R B
- new Rect(0, 0, 50, 50), // src
- new Rect(0, 60, 50, 110), // expectedbetter
- new Rect(51, 1, 101, 51)); // expectedworse
- }
-
- @SmallTest
- public void testOverlappingBeatsNonOverlapping() {
- assertBetterCandidate(View.FOCUS_DOWN,
- // L T R B
- new Rect(0, 0, 50, 50), // src
- new Rect(0, 40, 50, 90), // expectedbetter
- new Rect(0, 75, 50, 125)); // expectedworse
- }
-
- @SmallTest
- public void testEditContactScenarioLeftFromDiscardChangesGoesToSaveContactInLandscape() {
- assertBetterCandidate(View.FOCUS_LEFT,
- // L T R B
- new Rect(357, 258, 478, 318), // src
- new Rect(2, 258, 100, 318), // better
- new Rect(106, 120, 424, 184)); // worse
- }
-
- /**
- * A dial pad with 9 squares arranged in a grid. no padding, so
- * the edges are equal. see {@link com.android.frameworktest.focus.LinearLayoutGrid}
- */
- @SmallTest
- public void testGridWithTouchingEdges() {
- assertBetterCandidate(View.FOCUS_DOWN,
- // L T R B
- new Rect(106, 49, 212, 192), // src
- new Rect(106, 192, 212, 335), // better
- new Rect(0, 192, 106, 335)); // worse
-
- assertBetterCandidate(View.FOCUS_DOWN,
- // L T R B
- new Rect(106, 49, 212, 192), // src
- new Rect(106, 192, 212, 335), // better
- new Rect(212, 192, 318, 335)); // worse
- }
-
- @SmallTest
- public void testSearchFromEmptyRect() {
- assertBetterCandidate(View.FOCUS_DOWN,
- // L T R B
- new Rect(0, 0, 0, 0), // src
- new Rect(0, 0, 320, 45), // better
- new Rect(0, 45, 320, 545)); // worse
- }
-
- /**
- * Reproduce bug 1124559, drilling down to actual bug
- * (majorAxisDistance was wrong for direction left)
- */
- @SmallTest
- public void testGmailReplyButtonsScenario() {
- assertBetterCandidate(View.FOCUS_LEFT,
- // L T R B
- new Rect(223, 380, 312, 417), // src
- new Rect(102, 380, 210, 417), // better
- new Rect(111, 443, 206, 480)); // worse
-
- assertBeamBeats(View.FOCUS_LEFT,
- // L T R B
- new Rect(223, 380, 312, 417), // src
- new Rect(102, 380, 210, 417), // better
- new Rect(111, 443, 206, 480)); // worse
-
- assertBeamsOverlap(View.FOCUS_LEFT,
- // L T R B
- new Rect(223, 380, 312, 417),
- new Rect(102, 380, 210, 417));
-
- assertBeamsDontOverlap(View.FOCUS_LEFT,
- // L T R B
- new Rect(223, 380, 312, 417),
- new Rect(111, 443, 206, 480));
-
- assertTrue(
- "major axis distance less than major axis distance to "
- + "far edge",
- FocusFinderHelper.majorAxisDistance(View.FOCUS_LEFT,
- // L T R B
- new Rect(223, 380, 312, 417),
- new Rect(102, 380, 210, 417)) <
- FocusFinderHelper.majorAxisDistanceToFarEdge(View.FOCUS_LEFT,
- // L T R B
- new Rect(223, 380, 312, 417),
- new Rect(111, 443, 206, 480)));
- }
-
- @SmallTest
- public void testGmailScenarioBug1203288() {
- assertBetterCandidate(View.FOCUS_DOWN,
- // L T R B
- new Rect(0, 2, 480, 82), // src
- new Rect(344, 87, 475, 124), // better
- new Rect(0, 130, 480, 203)); // worse
- }
-
- @SmallTest
- public void testHomeShortcutScenarioBug1295354() {
- assertBetterCandidate(View.FOCUS_RIGHT,
- // L T R B
- new Rect(3, 338, 77, 413), // src
- new Rect(163, 338, 237, 413), // better
- new Rect(83, 38, 157, 113)); // worse
- }
-
- @SmallTest
- public void testBeamAlwaysBeatsHoriz() {
- assertBetterCandidate(View.FOCUS_RIGHT,
- // L T R B
- new Rect(0, 0, 50, 50), // src
- new Rect(150, 0, 200, 50), // better, (way further, but in beam)
- new Rect(60, 51, 110, 101)); // worse, even though it is closer
-
- assertBetterCandidate(View.FOCUS_LEFT,
- // L T R B
- new Rect(150, 0, 200, 50), // src
- new Rect(0, 50, 50, 50), // better, (way further, but in beam)
- new Rect(49, 99, 149, 101)); // worse, even though it is closer
- }
-
- @SmallTest
- public void testIsCandidateOverlappingEdgeFromEmptyRect() {
- assertDirectionIsCandidate(View.FOCUS_DOWN,
- // L T R B
- new Rect(0, 0, 0, 0), // src
- new Rect(0, 0, 20, 1)); // candidate
-
- assertDirectionIsCandidate(View.FOCUS_UP,
- // L T R B
- new Rect(0, 0, 0, 0), // src
- new Rect(0, -1, 20, 0)); // candidate
-
- assertDirectionIsCandidate(View.FOCUS_LEFT,
- // L T R B
- new Rect(0, 0, 0, 0), // src
- new Rect(-1, 0, 0, 20)); // candidate
-
- assertDirectionIsCandidate(View.FOCUS_RIGHT,
- // L T R B
- new Rect(0, 0, 0, 0), // src
- new Rect(0, 0, 1, 20)); // candidate
- }
-
- private void assertBeamsOverlap(int direction, Rect rect1, Rect rect2) {
- String directionStr = validateAndGetStringFor(direction);
- String assertMsg = String.format("Expected beams to overlap in direction %s "
- + "for rectangles %s and %s", directionStr, rect1, rect2);
- assertTrue(assertMsg, mFocusFinder.beamsOverlap(direction, rect1, rect2));
- }
-
- private void assertBeamsDontOverlap(int direction, Rect rect1, Rect rect2) {
- String directionStr = validateAndGetStringFor(direction);
- String assertMsg = String.format("Expected beams not to overlap in direction %s "
- + "for rectangles %s and %s", directionStr, rect1, rect2);
- assertFalse(assertMsg, mFocusFinder.beamsOverlap(direction, rect1, rect2));
- }
-
- /**
- * Assert that particular rect is a better focus search candidate from a
- * source rect than another.
- * @param direction The direction of focus search.
- * @param srcRect The src rectangle.
- * @param expectedBetter The candidate that should be better.
- * @param expectedWorse The candidate that should be worse.
- */
- private void assertBetterCandidate(int direction, Rect srcRect,
- Rect expectedBetter, Rect expectedWorse) {
-
- String directionStr = validateAndGetStringFor(direction);
- String assertMsg = String.format(
- "expected %s to be a better focus search candidate than "
- + "%s when searching "
- + "from %s in direction %s",
- expectedBetter, expectedWorse, srcRect, directionStr);
-
- assertTrue(assertMsg,
- mFocusFinder.isBetterCandidate(direction, srcRect,
- expectedBetter, expectedWorse));
-
- assertMsg = String.format(
- "expected %s to not be a better focus search candidate than "
- + "%s when searching "
- + "from %s in direction %s",
- expectedWorse, expectedBetter, srcRect, directionStr);
-
- assertFalse(assertMsg,
- mFocusFinder.isBetterCandidate(direction, srcRect,
- expectedWorse, expectedBetter));
- }
-
- private void assertIsNotCandidate(int direction, Rect src, Rect dest) {
- String directionStr = validateAndGetStringFor(direction);
-
- final String assertMsg = String.format(
- "expected going from %s to %s in direction %s to be an invalid "
- + "focus search candidate",
- src, dest, directionStr);
- assertFalse(assertMsg, mFocusFinder.isCandidate(src, dest, direction));
- }
-
- private void assertBeamBeats(int direction, Rect srcRect,
- Rect rect1, Rect rect2) {
-
- String directionStr = validateAndGetStringFor(direction);
- String assertMsg = String.format(
- "expecting %s to beam beat %s w.r.t %s in direction %s",
- rect1, rect2, srcRect, directionStr);
- assertTrue(assertMsg, mFocusFinder.beamBeats(direction, srcRect, rect1, rect2));
- }
-
-
- private void assertDirectionIsCandidate(int direction, Rect src, Rect dest) {
- String directionStr = validateAndGetStringFor(direction);
-
- final String assertMsg = String.format(
- "expected going from %s to %s in direction %s to be a valid "
- + "focus search candidate",
- src, dest, directionStr);
- assertTrue(assertMsg, mFocusFinder.isCandidate(src, dest, direction));
- }
-
- private String validateAndGetStringFor(int direction) {
- String directionStr = "??";
- switch(direction) {
- case View.FOCUS_UP:
- directionStr = "FOCUS_UP";
- break;
- case View.FOCUS_DOWN:
- directionStr = "FOCUS_DOWN";
- break;
- case View.FOCUS_LEFT:
- directionStr = "FOCUS_LEFT";
- break;
- case View.FOCUS_RIGHT:
- directionStr = "FOCUS_RIGHT";
- break;
- default:
- fail("passed in unknown direction, ya blewit!");
- }
- return directionStr;
- }
-
-
-}
diff --git a/tests/CoreTests/android/view/MockView.java b/tests/CoreTests/android/view/MockView.java
deleted file mode 100644
index 1d416bd..0000000
--- a/tests/CoreTests/android/view/MockView.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.view;
-
-/**
- * Mock View class for testing
- */
-
-public class MockView extends View{
-
-}
diff --git a/tests/CoreTests/android/view/ViewGroupAttributesTest.java b/tests/CoreTests/android/view/ViewGroupAttributesTest.java
deleted file mode 100644
index b4ef0e7..0000000
--- a/tests/CoreTests/android/view/ViewGroupAttributesTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.view;
-
-import android.content.Context;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class ViewGroupAttributesTest extends AndroidTestCase {
-
- private MyViewGroup mViewGroup;
-
- private static final class MyViewGroup extends ViewGroup {
-
- public MyViewGroup(Context context) {
- super(context);
- }
-
- @Override
- protected void onLayout(boolean changed, int l, int t, int r, int b) {
- }
-
- @Override
- public boolean isChildrenDrawnWithCacheEnabled() {
- return super.isChildrenDrawnWithCacheEnabled();
- }
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mViewGroup = new MyViewGroup(getContext());
- }
-
- @SmallTest
- public void testDescendantFocusabilityEnum() {
- assertEquals("expected ViewGroup.FOCUS_BEFORE_DESCENDANTS to be default",
- ViewGroup.FOCUS_BEFORE_DESCENDANTS, mViewGroup.getDescendantFocusability());
-
- // remember some state before we muck with flags
- final boolean isAnimationCachEnabled = mViewGroup.isAnimationCacheEnabled();
- final boolean isAlwaysDrawnWithCacheEnabled = mViewGroup.isAlwaysDrawnWithCacheEnabled();
- final boolean isChildrenDrawnWithCacheEnabled = mViewGroup.isChildrenDrawnWithCacheEnabled();
-
- mViewGroup.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
- assertEquals(ViewGroup.FOCUS_AFTER_DESCENDANTS, mViewGroup.getDescendantFocusability());
-
- mViewGroup.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
- assertEquals(ViewGroup.FOCUS_BLOCK_DESCENDANTS, mViewGroup.getDescendantFocusability());
-
- mViewGroup.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
- assertEquals(ViewGroup.FOCUS_BEFORE_DESCENDANTS, mViewGroup.getDescendantFocusability());
-
- // verify we didn't change something unrelated
- final String msg = "setDescendantFocusability messed with an unrelated flag";
- assertEquals(msg, isAnimationCachEnabled, mViewGroup.isAnimationCacheEnabled());
- assertEquals(msg, isAlwaysDrawnWithCacheEnabled, mViewGroup.isAlwaysDrawnWithCacheEnabled());
- assertEquals(msg, isChildrenDrawnWithCacheEnabled, mViewGroup.isChildrenDrawnWithCacheEnabled());
- }
-
- @SmallTest
- public void testWrongIntSetForDescendantFocusabilityEnum() {
- try {
- mViewGroup.setDescendantFocusability(0);
- fail("expected setting wrong flag to throw an exception");
- } catch (IllegalArgumentException expected) {
- }
- }
-}
diff --git a/tests/CoreTests/android/webkit/CookieTest.java b/tests/CoreTests/android/webkit/CookieTest.java
deleted file mode 100644
index 1c3d671..0000000
--- a/tests/CoreTests/android/webkit/CookieTest.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.webkit;
-
-import android.content.Context;
-import android.test.AndroidTestCase;
-import android.util.Log;
-import android.webkit.CookieManager;
-import android.webkit.CookieSyncManager;
-
-public class CookieTest extends AndroidTestCase {
-
- /**
- * To run these tests: $ mmm frameworks/base/tests/CoreTests/android && adb
- * remount && adb sync $ adb shell am instrument -w \ -e class
- * android.webkit.CookieTest \
- * android.core/android.test.InstrumentationTestRunner
- */
-
- private CookieManager mCookieManager;
-
- @Override
- public void setContext(Context context) {
- assertTrue(mContext == null);
- super.setContext(context);
- CookieSyncManager.createInstance(context);
- mCookieManager = CookieManager.getInstance();
- mCookieManager.removeAllCookie();
- }
-
- public void testParse() {
- mCookieManager.removeAllCookie();
- String url = "http://www.foo.com";
-
- // basic
- mCookieManager.setCookie(url, "a=b");
- String cookie = mCookieManager.getCookie(url);
- assertTrue(cookie.equals("a=b"));
-
- // quoted
- mCookieManager.setCookie(url, "c=\"d;\"");
- cookie = mCookieManager.getCookie(url);
- assertTrue(cookie.equals("a=b; c=\"d;\""));
- }
-
- public void testDomain() {
- mCookieManager.removeAllCookie();
- String url = "http://www.foo.com";
-
- // basic
- mCookieManager.setCookie(url, "a=b");
- String cookie = mCookieManager.getCookie(url);
- assertTrue(cookie.equals("a=b"));
-
- // no cross domain cookie
- cookie = mCookieManager.getCookie("http://bar.com");
- assertTrue(cookie == null);
-
- // more than one cookie
- mCookieManager.setCookie(url, "c=d; domain=.foo.com");
- cookie = mCookieManager.getCookie(url);
- assertTrue(cookie.equals("a=b; c=d"));
-
- // host cookie should not be accessible from a sub-domain.
- cookie = mCookieManager.getCookie("http://bar.www.foo.com");
- assertTrue(cookie.equals("c=d"));
-
- // test setting a domain= that doesn't start w/ a dot, should
- // treat it as a domain cookie, as if there was a pre-pended dot.
- mCookieManager.setCookie(url, "e=f; domain=www.foo.com");
- cookie = mCookieManager.getCookie(url);
- assertTrue(cookie.equals("a=b; c=d; e=f"));
- cookie = mCookieManager.getCookie("http://sub.www.foo.com");
- assertTrue(cookie.equals("c=d; e=f"));
- cookie = mCookieManager.getCookie("http://foo.com");
- assertTrue(cookie.equals("c=d"));
- }
-
- public void testSubDomain() {
- mCookieManager.removeAllCookie();
- String url_abcd = "http://a.b.c.d.com";
- String url_bcd = "http://b.c.d.com";
- String url_cd = "http://c.d.com";
- String url_d = "http://d.com";
-
- mCookieManager.setCookie(url_abcd, "a=1; domain=.a.b.c.d.com");
- mCookieManager.setCookie(url_abcd, "b=2; domain=.b.c.d.com");
- mCookieManager.setCookie(url_abcd, "c=3; domain=.c.d.com");
- mCookieManager.setCookie(url_abcd, "d=4; domain=.d.com");
-
- String cookie = mCookieManager.getCookie(url_abcd);
- assertTrue(cookie.equals("a=1; b=2; c=3; d=4"));
- cookie = mCookieManager.getCookie(url_bcd);
- assertTrue(cookie.equals("b=2; c=3; d=4"));
- cookie = mCookieManager.getCookie(url_cd);
- assertTrue(cookie.equals("c=3; d=4"));
- cookie = mCookieManager.getCookie(url_d);
- assertTrue(cookie.equals("d=4"));
-
- // check that the same cookie can exist on different sub-domains.
- mCookieManager.setCookie(url_bcd, "x=bcd; domain=.b.c.d.com");
- mCookieManager.setCookie(url_bcd, "x=cd; domain=.c.d.com");
- cookie = mCookieManager.getCookie(url_bcd);
- assertTrue(cookie.equals("b=2; c=3; d=4; x=bcd; x=cd"));
- cookie = mCookieManager.getCookie(url_cd);
- assertTrue(cookie.equals("c=3; d=4; x=cd"));
- }
-
- public void testInvalidDomain() {
- mCookieManager.removeAllCookie();
- String url = "http://foo.bar.com";
-
- mCookieManager.setCookie(url, "a=1; domain=.yo.foo.bar.com");
- String cookie = mCookieManager.getCookie(url);
- assertTrue(cookie == null);
-
- mCookieManager.setCookie(url, "b=2; domain=.foo.com");
- cookie = mCookieManager.getCookie(url);
- assertTrue(cookie == null);
-
- mCookieManager.setCookie(url, "c=3; domain=.bar.foo.com");
- cookie = mCookieManager.getCookie(url);
- assertTrue(cookie == null);
-
- mCookieManager.setCookie(url, "d=4; domain=.foo.bar.com.net");
- cookie = mCookieManager.getCookie(url);
- assertTrue(cookie == null);
-
- mCookieManager.setCookie(url, "e=5; domain=.ar.com");
- cookie = mCookieManager.getCookie(url);
- assertTrue(cookie == null);
-
- mCookieManager.setCookie(url, "f=6; domain=.com");
- cookie = mCookieManager.getCookie(url);
- assertTrue(cookie == null);
-
- mCookieManager.setCookie(url, "g=7; domain=.co.uk");
- cookie = mCookieManager.getCookie(url);
- assertTrue(cookie == null);
-
- mCookieManager.setCookie(url, "h=8; domain=.foo.bar.com.com");
- cookie = mCookieManager.getCookie(url);
- assertTrue(cookie == null);
- }
-
- public void testPath() {
- mCookieManager.removeAllCookie();
- String url = "http://www.foo.com";
-
- mCookieManager.setCookie(url, "a=b; path=/wee");
- String cookie = mCookieManager.getCookie(url + "/wee");
- assertTrue(cookie.equals("a=b"));
- cookie = mCookieManager.getCookie(url + "/wee/");
- assertTrue(cookie.equals("a=b"));
- cookie = mCookieManager.getCookie(url + "/wee/hee");
- assertTrue(cookie.equals("a=b"));
- cookie = mCookieManager.getCookie(url + "/wee/hee/more");
- assertTrue(cookie.equals("a=b"));
- cookie = mCookieManager.getCookie(url + "/weehee");
- assertTrue(cookie == null);
- cookie = mCookieManager.getCookie(url);
- assertTrue(cookie == null);
-
- mCookieManager.setCookie(url, "a=c; path=");
- cookie = mCookieManager.getCookie(url + "/wee");
- assertTrue(cookie.equals("a=b; a=c"));
- cookie = mCookieManager.getCookie(url);
- assertTrue(cookie.equals("a=c"));
-
- mCookieManager.setCookie(url, "a=d");
- cookie = mCookieManager.getCookie(url + "/wee");
- assertTrue(cookie.equals("a=b; a=c; a=d"));
- }
-}
diff --git a/tests/CoreTests/com/android/internal/telephony/ATResponseParserTest.java b/tests/CoreTests/com/android/internal/telephony/ATResponseParserTest.java
deleted file mode 100644
index 81727e4..0000000
--- a/tests/CoreTests/com/android/internal/telephony/ATResponseParserTest.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.telephony;
-
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-public class ATResponseParserTest extends TestCase {
- @SmallTest
- public void testBasic() throws Exception {
- ATResponseParser p = new ATResponseParser("+CREG: 0");
-
- assertEquals(0, p.nextInt());
-
- assertFalse(p.hasMore());
-
- try {
- p.nextInt();
- fail("exception expected");
- } catch (ATParseEx ex) {
- //test pass
- }
-
- p = new ATResponseParser("+CREG: 0,1");
- assertEquals(0, p.nextInt());
- assertEquals(1, p.nextInt());
- assertFalse(p.hasMore());
-
- p = new ATResponseParser("+CREG: 0, 1");
- assertEquals(0, p.nextInt());
- assertEquals(1, p.nextInt());
- assertFalse(p.hasMore());
-
- p = new ATResponseParser("+CREG: 0, 1,");
- assertEquals(0, p.nextInt());
- assertEquals(1, p.nextInt());
- // this seems odd but is probably OK
- assertFalse(p.hasMore());
- try {
- p.nextInt();
- fail("exception expected");
- } catch (ATParseEx ex) {
- //test pass
- }
-
- p = new ATResponseParser("+CREG: 0, 1 ");
- assertEquals(0, p.nextInt());
- assertEquals(1, p.nextInt());
- assertFalse(p.hasMore());
-
- p = new ATResponseParser("0, 1 ");
- // no prefix -> exception
- try {
- p.nextInt();
- fail("exception expected");
- } catch (ATParseEx ex) {
- //test pass
- }
-
- p = new ATResponseParser("+CREG: 0, 1, 5");
- assertFalse(p.nextBoolean());
- assertTrue(p.nextBoolean());
- try {
- // is this over-constraining?
- p.nextBoolean();
- fail("exception expected");
- } catch (ATParseEx ex) {
- //test pass
- }
-
- p = new ATResponseParser("+CLCC: 1,0,2,0,0,\"+18005551212\",145");
-
- assertEquals(1, p.nextInt());
- assertFalse(p.nextBoolean());
- assertEquals(2, p.nextInt());
- assertEquals(0, p.nextInt());
- assertEquals(0, p.nextInt());
- assertEquals("+18005551212", p.nextString());
- assertEquals(145, p.nextInt());
- assertFalse(p.hasMore());
-
- p = new ATResponseParser("+CLCC: 1,0,2,0,0,\"+18005551212,145");
-
- assertEquals(1, p.nextInt());
- assertFalse(p.nextBoolean());
- assertEquals(2, p.nextInt());
- assertEquals(0, p.nextInt());
- assertEquals(0, p.nextInt());
- try {
- p.nextString();
- fail("expected ex");
- } catch (ATParseEx ex) {
- //test pass
- }
-
- p = new ATResponseParser("+FOO: \"\"");
- assertEquals("", p.nextString());
- }
-}
diff --git a/tests/CoreTests/com/android/internal/telephony/PhoneNumberUtilsTest.java b/tests/CoreTests/com/android/internal/telephony/PhoneNumberUtilsTest.java
deleted file mode 100644
index e8bd239..0000000
--- a/tests/CoreTests/com/android/internal/telephony/PhoneNumberUtilsTest.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.telephony;
-
-import android.test.suitebuilder.annotation.SmallTest;
-import android.text.SpannableStringBuilder;
-import android.telephony.PhoneNumberUtils;
-
-import junit.framework.TestCase;
-
-public class PhoneNumberUtilsTest extends TestCase {
-
- @SmallTest
- public void testA() throws Exception {
- assertEquals(
- "+17005554141",
- PhoneNumberUtils.extractNetworkPortion("+17005554141")
- );
-
- assertEquals(
- "+17005554141",
- PhoneNumberUtils.extractNetworkPortion("+1 (700).555-4141")
- );
-
- assertEquals(
- "17005554141",
- PhoneNumberUtils.extractNetworkPortion("1 (700).555-4141")
- );
-
- // This may seem wrong, but it's probably ok
- assertEquals(
- "17005554141*#",
- PhoneNumberUtils.extractNetworkPortion("1 (700).555-4141*#")
- );
-
- assertEquals(
- "170055541NN",
- PhoneNumberUtils.extractNetworkPortion("1 (700).555-41NN")
- );
-
- assertEquals(
- "170055541NN",
- PhoneNumberUtils.extractNetworkPortion("1 (700).555-41NN,1234")
- );
-
- assertEquals(
- "170055541NN",
- PhoneNumberUtils.extractNetworkPortion("1 (700).555-41NN;1234")
- );
-
- // An MMI string is unperterbed, even though it contains a
- // (valid in this case) embedded +
- assertEquals(
- "**21**17005554141#",
- PhoneNumberUtils.extractNetworkPortion("**21**+17005554141#")
- //TODO this is the correct result, although the above
- //result has been returned since change 31776
- //"**21**+17005554141#"
- );
-
- assertEquals("", PhoneNumberUtils.extractNetworkPortion(""));
-
- assertEquals("", PhoneNumberUtils.extractNetworkPortion(",1234"));
-
- byte [] b = new byte[20];
- b[0] = (byte) 0x81; b[1] = (byte) 0x71; b[2] = (byte) 0x00; b[3] = (byte) 0x55;
- b[4] = (byte) 0x05; b[5] = (byte) 0x20; b[6] = (byte) 0xF0;
- assertEquals("17005550020",
- PhoneNumberUtils.calledPartyBCDToString(b, 0, 7));
-
- b[0] = (byte) 0x91; b[1] = (byte) 0x71; b[2] = (byte) 0x00; b[3] = (byte) 0x55;
- b[4] = (byte) 0x05; b[5] = (byte) 0x20; b[6] = (byte) 0xF0;
- assertEquals("+17005550020",
- PhoneNumberUtils.calledPartyBCDToString(b, 0, 7));
-
- byte[] bRet = PhoneNumberUtils.networkPortionToCalledPartyBCD("+17005550020");
- assertEquals(7, bRet.length);
- for (int i = 0; i < 7; i++) {
- assertEquals(b[i], bRet[i]);
- }
-
- bRet = PhoneNumberUtils.networkPortionToCalledPartyBCD("7005550020");
- assertEquals("7005550020",
- PhoneNumberUtils.calledPartyBCDToString(bRet, 0, bRet.length));
-
- b[0] = (byte) 0x81; b[1] = (byte) 0x71; b[2] = (byte) 0x00; b[3] = (byte) 0x55;
- b[4] = (byte) 0x05; b[5] = (byte) 0x20; b[6] = (byte) 0xB0;
- assertEquals("17005550020#",
- PhoneNumberUtils.calledPartyBCDToString(b, 0, 7));
-
- b[0] = (byte) 0x91; b[1] = (byte) 0x71; b[2] = (byte) 0x00; b[3] = (byte) 0x55;
- b[4] = (byte) 0x05; b[5] = (byte) 0x20; b[6] = (byte) 0xB0;
- assertEquals("+17005550020#",
- PhoneNumberUtils.calledPartyBCDToString(b, 0, 7));
-
- b[0] = (byte) 0x81; b[1] = (byte) 0x2A; b[2] = (byte) 0xB1;
- assertEquals("*21#",
- PhoneNumberUtils.calledPartyBCDToString(b, 0, 3));
-
- b[0] = (byte) 0x81; b[1] = (byte) 0x2B; b[2] = (byte) 0xB1;
- assertEquals("#21#",
- PhoneNumberUtils.calledPartyBCDToString(b, 0, 3));
-
- b[0] = (byte) 0x91; b[1] = (byte) 0x2A; b[2] = (byte) 0xB1;
- assertEquals("*21#+",
- PhoneNumberUtils.calledPartyBCDToString(b, 0, 3));
-
- b[0] = (byte) 0x81; b[1] = (byte) 0xAA; b[2] = (byte) 0x12; b[3] = (byte) 0xFB;
- assertEquals("**21#",
- PhoneNumberUtils.calledPartyBCDToString(b, 0, 4));
-
- b[0] = (byte) 0x91; b[1] = (byte) 0xAA; b[2] = (byte) 0x12; b[3] = (byte) 0xFB;
- assertEquals("**21#+",
- PhoneNumberUtils.calledPartyBCDToString(b, 0, 4));
-
- b[0] = (byte) 0x81; b[1] = (byte) 0x9A; b[2] = (byte) 0xA9; b[3] = (byte) 0x71;
- b[4] = (byte) 0x00; b[5] = (byte) 0x55; b[6] = (byte) 0x05; b[7] = (byte) 0x20;
- b[8] = (byte) 0xB0;
- assertEquals("*99*17005550020#",
- PhoneNumberUtils.calledPartyBCDToString(b, 0, 9));
-
- b[0] = (byte) 0x91; b[1] = (byte) 0x9A; b[2] = (byte) 0xA9; b[3] = (byte) 0x71;
- b[4] = (byte) 0x00; b[5] = (byte) 0x55; b[6] = (byte) 0x05; b[7] = (byte) 0x20;
- b[8] = (byte) 0xB0;
- assertEquals("*99*+17005550020#",
- PhoneNumberUtils.calledPartyBCDToString(b, 0, 9));
-
- b[0] = (byte) 0x81; b[1] = (byte) 0xAA; b[2] = (byte) 0x12; b[3] = (byte) 0x1A;
- b[4] = (byte) 0x07; b[5] = (byte) 0x50; b[6] = (byte) 0x55; b[7] = (byte) 0x00;
- b[8] = (byte) 0x02; b[9] = (byte) 0xFB;
- assertEquals("**21*17005550020#",
- PhoneNumberUtils.calledPartyBCDToString(b, 0, 10));
-
- b[0] = (byte) 0x91; b[1] = (byte) 0xAA; b[2] = (byte) 0x12; b[3] = (byte) 0x1A;
- b[4] = (byte) 0x07; b[5] = (byte) 0x50; b[6] = (byte) 0x55; b[7] = (byte) 0x00;
- b[8] = (byte) 0x02; b[9] = (byte) 0xFB;
- assertEquals("**21*+17005550020#",
- PhoneNumberUtils.calledPartyBCDToString(b, 0, 10));
-
- b[0] = (byte) 0x81; b[1] = (byte) 0x2A; b[2] = (byte) 0xA1; b[3] = (byte) 0x71;
- b[4] = (byte) 0x00; b[5] = (byte) 0x55; b[6] = (byte) 0x05; b[7] = (byte) 0x20;
- b[8] = (byte) 0xF0;
- assertEquals("*21*17005550020",
- PhoneNumberUtils.calledPartyBCDToString(b, 0, 9));
-
- b[0] = (byte) 0x91; b[1] = (byte) 0x2A; b[2] = (byte) 0xB1; b[3] = (byte) 0x71;
- b[4] = (byte) 0x00; b[5] = (byte) 0x55; b[6] = (byte) 0x05; b[7] = (byte) 0x20;
- b[8] = (byte) 0xF0;
- assertEquals("*21#+17005550020",
- PhoneNumberUtils.calledPartyBCDToString(b, 0, 9));
-
- assertNull(PhoneNumberUtils.extractNetworkPortion(null));
- assertNull(PhoneNumberUtils.extractPostDialPortion(null));
- assertTrue(PhoneNumberUtils.compare(null, null));
- assertFalse(PhoneNumberUtils.compare(null, "123"));
- assertFalse(PhoneNumberUtils.compare("123", null));
- assertNull(PhoneNumberUtils.toCallerIDMinMatch(null));
- assertNull(PhoneNumberUtils.getStrippedReversed(null));
- assertNull(PhoneNumberUtils.stringFromStringAndTOA(null, 1));
- }
-
- @SmallTest
- public void testB() throws Exception {
- assertEquals("", PhoneNumberUtils.extractPostDialPortion("+17005554141"));
- assertEquals("", PhoneNumberUtils.extractPostDialPortion("+1 (700).555-4141"));
- assertEquals("", PhoneNumberUtils.extractPostDialPortion("+1 (700).555-41NN"));
- assertEquals(",1234", PhoneNumberUtils.extractPostDialPortion("+1 (700).555-41NN,1234"));
- assertEquals(";1234", PhoneNumberUtils.extractPostDialPortion("+1 (700).555-41NN;1234"));
- assertEquals(";1234,;N",
- PhoneNumberUtils.extractPostDialPortion("+1 (700).555-41NN;1-2.34 ,;N"));
- }
-
- @SmallTest
- public void testCompare() throws Exception {
- // this is odd
- assertFalse(PhoneNumberUtils.compare("", ""));
-
- assertTrue(PhoneNumberUtils.compare("911", "911"));
- assertFalse(PhoneNumberUtils.compare("911", "18005550911"));
- assertTrue(PhoneNumberUtils.compare("5555", "5555"));
- assertFalse(PhoneNumberUtils.compare("5555", "180055555555"));
-
- assertTrue(PhoneNumberUtils.compare("+17005554141", "+17005554141"));
- assertTrue(PhoneNumberUtils.compare("+17005554141", "+1 (700).555-4141"));
- assertTrue(PhoneNumberUtils.compare("+17005554141", "+1 (700).555-4141,1234"));
- assertTrue(PhoneNumberUtils.compare("+17005554141", "17005554141"));
- assertTrue(PhoneNumberUtils.compare("+17005554141", "7005554141"));
- assertTrue(PhoneNumberUtils.compare("+17005554141", "5554141"));
- assertTrue(PhoneNumberUtils.compare("17005554141", "5554141"));
- assertTrue(PhoneNumberUtils.compare("+17005554141", "01117005554141"));
- assertTrue(PhoneNumberUtils.compare("+17005554141", "0017005554141"));
- assertTrue(PhoneNumberUtils.compare("17005554141", "0017005554141"));
-
-
- assertTrue(PhoneNumberUtils.compare("+17005554141", "**31#+17005554141"));
-
- assertFalse(PhoneNumberUtils.compare("+1 999 7005554141", "+1 7005554141"));
- assertTrue(PhoneNumberUtils.compare("011 1 7005554141", "7005554141"));
-
- assertFalse(PhoneNumberUtils.compare("011 11 7005554141", "+17005554141"));
-
- assertFalse(PhoneNumberUtils.compare("+17005554141", "7085882300"));
-
- assertTrue(PhoneNumberUtils.compare("+44 207 792 3490", "0 207 792 3490"));
-
- assertFalse(PhoneNumberUtils.compare("+44 207 792 3490", "00 207 792 3490"));
- assertFalse(PhoneNumberUtils.compare("+44 207 792 3490", "011 207 792 3490"));
-
- /***** FIXME's ******/
- //
- // MMI header should be ignored
- assertFalse(PhoneNumberUtils.compare("+17005554141", "**31#17005554141"));
-
- // It's too bad this is false
- // +44 (0) 207 792 3490 is not a dialable number
- // but it is commonly how European phone numbers are written
- assertFalse(PhoneNumberUtils.compare("+44 207 792 3490", "+44 (0) 207 792 3490"));
-
- // The japanese international prefix, for example, messes us up
- // But who uses a GSM phone in Japan?
- assertFalse(PhoneNumberUtils.compare("+44 207 792 3490", "010 44 207 792 3490"));
-
- // The Australian one messes us up too
- assertFalse(PhoneNumberUtils.compare("+44 207 792 3490", "0011 44 207 792 3490"));
-
- // The Russian trunk prefix messes us up, as does current
- // Russian area codes (which bein with 0)
-
- assertFalse(PhoneNumberUtils.compare("+7(095)9100766", "8(095)9100766"));
-
- // 444 is not a valid country code, but
- // matchIntlPrefixAndCC doesnt know this
- assertTrue(PhoneNumberUtils.compare("+444 207 792 3490", "0 207 792 3490"));
- }
-
-
- @SmallTest
- public void testToCallerIDIndexable() throws Exception {
- assertEquals("14145", PhoneNumberUtils.toCallerIDMinMatch("17005554141"));
- assertEquals("14145", PhoneNumberUtils.toCallerIDMinMatch("1-700-555-4141"));
- assertEquals("14145", PhoneNumberUtils.toCallerIDMinMatch("1-700-555-4141,1234"));
- assertEquals("14145", PhoneNumberUtils.toCallerIDMinMatch("1-700-555-4141;1234"));
-
- //this seems wrong, or at least useless
- assertEquals("NN145", PhoneNumberUtils.toCallerIDMinMatch("1-700-555-41NN"));
-
- //<shrug> -- these are all not useful, but not terribly wrong
- assertEquals("", PhoneNumberUtils.toCallerIDMinMatch(""));
- assertEquals("0032", PhoneNumberUtils.toCallerIDMinMatch("2300"));
- assertEquals("0032+", PhoneNumberUtils.toCallerIDMinMatch("+2300"));
- assertEquals("#130#", PhoneNumberUtils.toCallerIDMinMatch("*#031#"));
- }
-
- @SmallTest
- public void testGetIndexable() throws Exception {
- assertEquals("14145550071", PhoneNumberUtils.getStrippedReversed("1-700-555-4141"));
- assertEquals("14145550071", PhoneNumberUtils.getStrippedReversed("1-700-555-4141,1234"));
- assertEquals("14145550071", PhoneNumberUtils.getStrippedReversed("1-700-555-4141;1234"));
-
- //this seems wrong, or at least useless
- assertEquals("NN145550071", PhoneNumberUtils.getStrippedReversed("1-700-555-41NN"));
-
- //<shrug> -- these are all not useful, but not terribly wrong
- assertEquals("", PhoneNumberUtils.getStrippedReversed(""));
- assertEquals("0032", PhoneNumberUtils.getStrippedReversed("2300"));
- assertEquals("0032+", PhoneNumberUtils.getStrippedReversed("+2300"));
- assertEquals("#130#*", PhoneNumberUtils.getStrippedReversed("*#031#"));
- }
-
- @SmallTest
- public void testNanpFormatting() {
- SpannableStringBuilder number = new SpannableStringBuilder();
- number.append("8005551212");
- PhoneNumberUtils.formatNanpNumber(number);
- assertEquals("800-555-1212", number.toString());
-
- number.clear();
- number.append("800555121");
- PhoneNumberUtils.formatNanpNumber(number);
- assertEquals("800-555-121", number.toString());
-
- number.clear();
- number.append("555-1212");
- PhoneNumberUtils.formatNanpNumber(number);
- assertEquals("555-1212", number.toString());
-
- number.clear();
- number.append("800-55512");
- PhoneNumberUtils.formatNanpNumber(number);
- assertEquals("800-555-12", number.toString());
- }
-
- @SmallTest
- public void testConvertKeypadLettersToDigits() {
- assertEquals("1-800-4664-411",
- PhoneNumberUtils.convertKeypadLettersToDigits("1-800-GOOG-411"));
- assertEquals("18004664411",
- PhoneNumberUtils.convertKeypadLettersToDigits("1800GOOG411"));
- assertEquals("1-800-466-4411",
- PhoneNumberUtils.convertKeypadLettersToDigits("1-800-466-4411"));
- assertEquals("18004664411",
- PhoneNumberUtils.convertKeypadLettersToDigits("18004664411"));
- assertEquals("222-333-444-555-666-7777-888-9999",
- PhoneNumberUtils.convertKeypadLettersToDigits(
- "ABC-DEF-GHI-JKL-MNO-PQRS-TUV-WXYZ"));
- assertEquals("222-333-444-555-666-7777-888-9999",
- PhoneNumberUtils.convertKeypadLettersToDigits(
- "abc-def-ghi-jkl-mno-pqrs-tuv-wxyz"));
- assertEquals("(800) 222-3334",
- PhoneNumberUtils.convertKeypadLettersToDigits("(800) ABC-DEFG"));
- }
-}
diff --git a/tests/CoreTests/com/android/internal/telephony/PhoneNumberWatcherTest.java b/tests/CoreTests/com/android/internal/telephony/PhoneNumberWatcherTest.java
deleted file mode 100644
index 88eaecd..0000000
--- a/tests/CoreTests/com/android/internal/telephony/PhoneNumberWatcherTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.telephony;
-
-import android.telephony.PhoneNumberFormattingTextWatcher;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.text.Selection;
-import android.text.SpannableStringBuilder;
-import android.text.TextWatcher;
-
-import junit.framework.TestCase;
-
-public class PhoneNumberWatcherTest extends TestCase {
- @SmallTest
- public void testHyphenation() throws Exception {
- SpannableStringBuilder number = new SpannableStringBuilder();
- TextWatcher tw = new PhoneNumberFormattingTextWatcher();
- number.append("555-1212");
- // Move the cursor to the left edge
- Selection.setSelection(number, 0);
- tw.beforeTextChanged(number, 0, 0, 1);
- // Insert an 8 at the beginning
- number.insert(0, "8");
- tw.afterTextChanged(number);
- assertEquals("855-512-12", number.toString());
- }
-
- @SmallTest
- public void testHyphenDeletion() throws Exception {
- SpannableStringBuilder number = new SpannableStringBuilder();
- TextWatcher tw = new PhoneNumberFormattingTextWatcher();
- number.append("555-1212");
- // Move the cursor to after the hyphen
- Selection.setSelection(number, 4);
- // Delete the hyphen
- tw.beforeTextChanged(number, 3, 1, 0);
- number.delete(3, 4);
- tw.afterTextChanged(number);
- // Make sure that it deleted the character before the hyphen
- assertEquals("551-212", number.toString());
-
- // Make sure it deals with left edge boundary case
- number.insert(0, "-");
- Selection.setSelection(number, 1);
- tw.beforeTextChanged(number, 0, 1, 0);
- number.delete(0, 1);
- tw.afterTextChanged(number);
- // Make sure that it deleted the character before the hyphen
- assertEquals("551-212", number.toString());
- }
-}
diff --git a/tests/CoreTests/com/android/internal/telephony/TelephonyTests.java b/tests/CoreTests/com/android/internal/telephony/TelephonyTests.java
deleted file mode 100644
index eb2bd23..0000000
--- a/tests/CoreTests/com/android/internal/telephony/TelephonyTests.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.telephony;
-
-import com.android.internal.telephony.gsm.AdnRecordTest;
-import com.android.internal.telephony.gsm.GSMPhoneTest;
-import com.android.internal.telephony.gsm.GsmAlphabetTest;
-import com.android.internal.telephony.gsm.SMSDispatcherTest;
-import com.android.internal.telephony.gsm.SimPhoneBookTest;
-import com.android.internal.telephony.gsm.SimSmsTest;
-import com.android.internal.telephony.gsm.SimUtilsTest;
-
-import junit.framework.TestSuite;
-
-/**
- * To run these tests:
- * $ mmm java/tests && adb sync
- * $ adb shell am instrument -w \
- * -e class com.android.internal.telephony.TelephonyTests \
- * android.core/android.test.InstrumentationTestRunner
- */
-public class TelephonyTests {
- public static TestSuite suite() {
- TestSuite suite = new TestSuite(TelephonyTests.class.getName());
-
- suite.addTestSuite(PhoneNumberWatcherTest.class);
- suite.addTestSuite(ATResponseParserTest.class);
- suite.addTestSuite(PhoneNumberUtilsTest.class);
- suite.addTestSuite(SMSDispatcherTest.class);
- //suite.addTestSuite(GSMPhoneTest.class);
- suite.addTestSuite(AdnRecordTest.class);
- suite.addTestSuite(GsmAlphabetTest.class);
- suite.addTestSuite(SimUtilsTest.class);
- suite.addTestSuite(SimPhoneBookTest.class);
- suite.addTestSuite(SimSmsTest.class);
-
- return suite;
- }
-}
diff --git a/tests/CoreTests/com/android/internal/telephony/TestPhoneNotifier.java b/tests/CoreTests/com/android/internal/telephony/TestPhoneNotifier.java
deleted file mode 100644
index 427795b..0000000
--- a/tests/CoreTests/com/android/internal/telephony/TestPhoneNotifier.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.telephony;
-
-/**
- * Stub class used for unit tests
- */
-
-public class TestPhoneNotifier implements PhoneNotifier {
- public TestPhoneNotifier() {
- }
-
- public void notifyPhoneState(Phone sender) {
- }
-
- public void notifyServiceState(Phone sender) {
- }
-
- public void notifyCellLocation(Phone sender) {
- }
-
- public void notifySignalStrength(Phone sender) {
- }
-
- public void notifyMessageWaitingChanged(Phone sender) {
- }
-
- public void notifyCallForwardingChanged(Phone sender) {
- }
-
- public void notifyDataConnection(Phone sender, String reason) {
- }
-
- public void notifyDataConnectionFailed(Phone sender, String reason) {
- }
-
- public void notifyDataActivity(Phone sender) {
- }
-}
diff --git a/tests/CoreTests/com/android/internal/telephony/gsm/AdnRecordTest.java b/tests/CoreTests/com/android/internal/telephony/gsm/AdnRecordTest.java
deleted file mode 100644
index 6cafdf0..0000000
--- a/tests/CoreTests/com/android/internal/telephony/gsm/AdnRecordTest.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.telephony.gsm;
-
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-/**
- * {@hide}
- */
-public class AdnRecordTest extends TestCase {
-
- @SmallTest
- public void testBasic() throws Exception {
- AdnRecord adn;
-
- //
- // Typical record
- //
- adn = new AdnRecord(
- SimUtils.hexStringToBytes("566F696365204D61696C07918150367742F3FFFFFFFFFFFF"));
-
- assertEquals("Voice Mail", adn.getAlphaTag());
- assertEquals("+18056377243", adn.getNumber());
- assertFalse(adn.isEmpty());
-
- //
- // Empty records, empty strings
- //
- adn = new AdnRecord(
- SimUtils.hexStringToBytes("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"));
-
- assertEquals("", adn.getAlphaTag());
- assertEquals("", adn.getNumber());
- assertTrue(adn.isEmpty());
-
- //
- // Record too short
- //
- adn = new AdnRecord(SimUtils.hexStringToBytes( "FF"));
-
- assertEquals("", adn.getAlphaTag());
- assertEquals("", adn.getNumber());
- assertTrue(adn.isEmpty());
-
- //
- // TOA = 0xff ("control string")
- //
- adn = new AdnRecord(
- SimUtils.hexStringToBytes("566F696365204D61696C07FF8150367742F3FFFFFFFFFFFF"));
-
- assertEquals("Voice Mail", adn.getAlphaTag());
- assertEquals("18056377243", adn.getNumber());
- assertFalse(adn.isEmpty());
-
- //
- // TOA = 0x81 (unknown)
- //
- adn = new AdnRecord(
- SimUtils.hexStringToBytes("566F696365204D61696C07818150367742F3FFFFFFFFFFFF"));
-
- assertEquals("Voice Mail", adn.getAlphaTag());
- assertEquals("18056377243", adn.getNumber());
- assertFalse(adn.isEmpty());
-
- //
- // Number Length is too long
- //
- adn = new AdnRecord(
- SimUtils.hexStringToBytes("566F696365204D61696C0F918150367742F3FFFFFFFFFFFF"));
-
- assertEquals("Voice Mail", adn.getAlphaTag());
- assertEquals("", adn.getNumber());
- assertFalse(adn.isEmpty());
-
- //
- // Number Length is zero (invalid)
- //
- adn = new AdnRecord(
- SimUtils.hexStringToBytes("566F696365204D61696C00918150367742F3FFFFFFFFFFFF"));
-
- assertEquals("Voice Mail", adn.getAlphaTag());
- assertEquals("", adn.getNumber());
- assertFalse(adn.isEmpty());
-
- //
- // Number Length is 2, first number byte is FF, TOA is international
- //
- adn = new AdnRecord(
- SimUtils.hexStringToBytes("566F696365204D61696C0291FF50367742F3FFFFFFFFFFFF"));
-
- assertEquals("Voice Mail", adn.getAlphaTag());
- assertEquals("", adn.getNumber());
- assertFalse(adn.isEmpty());
-
- //
- // Number Length is 2, first number digit is valid, TOA is international
- //
- adn = new AdnRecord(
- SimUtils.hexStringToBytes("566F696365204D61696C0291F150367742F3FFFFFFFFFFFF"));
-
- assertEquals("Voice Mail", adn.getAlphaTag());
- assertEquals("+1", adn.getNumber());
- assertFalse(adn.isEmpty());
-
- //
- // An extended record
- //
- adn = new AdnRecord(
- SimUtils.hexStringToBytes(
- "4164676A6DFFFFFFFFFFFFFFFFFFFFFF0B918188551512C221436587FF01"));
-
- assertEquals("Adgjm", adn.getAlphaTag());
- assertEquals("+18885551212,12345678", adn.getNumber());
- assertFalse(adn.isEmpty());
- assertTrue(adn.hasExtendedRecord());
-
- adn.appendExtRecord(SimUtils.hexStringToBytes("0206092143658709ffffffffff"));
-
- assertEquals("Adgjm", adn.getAlphaTag());
- assertEquals("+18885551212,12345678901234567890", adn.getNumber());
- assertFalse(adn.isEmpty());
-
- //
- // An extended record with an invalid extension
- //
- adn = new AdnRecord(
- SimUtils.hexStringToBytes(
- "4164676A6DFFFFFFFFFFFFFFFFFFFFFF0B918188551512C221436587FF01"));
-
- assertEquals("Adgjm", adn.getAlphaTag());
- assertEquals("+18885551212,12345678", adn.getNumber());
- assertFalse(adn.isEmpty());
- assertTrue(adn.hasExtendedRecord());
-
- adn.appendExtRecord(SimUtils.hexStringToBytes("0106092143658709ffffffffff"));
-
- assertEquals("Adgjm", adn.getAlphaTag());
- assertEquals("+18885551212,12345678", adn.getNumber());
- assertFalse(adn.isEmpty());
-
- //
- // An extended record with an invalid extension
- //
- adn = new AdnRecord(
- SimUtils.hexStringToBytes(
- "4164676A6DFFFFFFFFFFFFFFFFFFFFFF0B918188551512C221436587FF01"));
-
- assertEquals("Adgjm", adn.getAlphaTag());
- assertEquals("+18885551212,12345678", adn.getNumber());
- assertFalse(adn.isEmpty());
- assertTrue(adn.hasExtendedRecord());
-
- adn.appendExtRecord(SimUtils.hexStringToBytes("020B092143658709ffffffffff"));
-
- assertEquals("Adgjm", adn.getAlphaTag());
- assertEquals("+18885551212,12345678", adn.getNumber());
- assertFalse(adn.isEmpty());
- }
-}
-
-
diff --git a/tests/CoreTests/com/android/internal/telephony/gsm/GSMPhoneTest.java b/tests/CoreTests/com/android/internal/telephony/gsm/GSMPhoneTest.java
deleted file mode 100644
index 7107412..0000000
--- a/tests/CoreTests/com/android/internal/telephony/gsm/GSMPhoneTest.java
+++ /dev/null
@@ -1,1938 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF GSMTestHandler.ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.telephony.gsm;
-
-import android.os.AsyncResult;
-import android.os.Handler;
-import android.os.HandlerThread;
-import android.os.Looper;
-import android.os.Message;
-import android.os.Process;
-import android.telephony.ServiceState;
-import android.test.AndroidTestCase;
-import android.test.PerformanceTestCase;
-import android.util.Log;
-
-import com.android.internal.telephony.Call;
-import com.android.internal.telephony.CallStateException;
-import com.android.internal.telephony.Connection;
-import com.android.internal.telephony.MmiCode;
-import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.TestPhoneNotifier;
-import com.android.internal.telephony.gsm.CallFailCause;
-import com.android.internal.telephony.gsm.GSMPhone;
-import com.android.internal.telephony.gsm.GSMTestHandler;
-import com.android.internal.telephony.gsm.GsmMmiCode;
-import com.android.internal.telephony.gsm.SuppServiceNotification;
-import com.android.internal.telephony.test.SimulatedCommands;
-import com.android.internal.telephony.test.SimulatedRadioControl;
-
-import java.util.List;
-
-
-public class GSMPhoneTest extends AndroidTestCase implements PerformanceTestCase {
- private SimulatedRadioControl mRadioControl;
- private GSMPhone mGSMPhone;
- private GSMTestHandler mGSMTestHandler;
- private Handler mHandler;
-
- private static final int EVENT_PHONE_STATE_CHANGED = 1;
- private static final int EVENT_DISCONNECT = 2;
- private static final int EVENT_RINGING = 3;
- private static final int EVENT_CHANNEL_OPENED = 4;
- private static final int EVENT_POST_DIAL = 5;
- private static final int EVENT_DONE = 6;
- private static final int EVENT_SSN = 7;
- private static final int EVENT_MMI_INITIATE = 8;
- private static final int EVENT_MMI_COMPLETE = 9;
- private static final int EVENT_IN_SERVICE = 10;
- private static final int SUPP_SERVICE_FAILED = 11;
- private static final int SERVICE_STATE_CHANGED = 12;
- private static final int EVENT_OEM_RIL_MESSAGE = 13;
- public static final int ANY_MESSAGE = -1;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mGSMTestHandler = new GSMTestHandler(mContext);
-
- mGSMTestHandler.start();
- synchronized (mGSMTestHandler) {
- do {
- mGSMTestHandler.wait();
- } while (mGSMTestHandler.getGSMPhone() == null);
- }
-
- mGSMPhone = mGSMTestHandler.getGSMPhone();
- mRadioControl = mGSMTestHandler.getSimulatedCommands();
-
- mHandler = mGSMTestHandler.getHandler();
- mGSMPhone.registerForPhoneStateChanged(mHandler, EVENT_PHONE_STATE_CHANGED, null);
- mGSMPhone.registerForNewRingingConnection(mHandler, EVENT_RINGING, null);
- mGSMPhone.registerForDisconnect(mHandler, EVENT_DISCONNECT, null);
-
- mGSMPhone.setOnPostDialCharacter(mHandler, EVENT_POST_DIAL, null);
-
- mGSMPhone.registerForSuppServiceNotification(mHandler, EVENT_SSN, null);
- mGSMPhone.registerForMmiInitiate(mHandler, EVENT_MMI_INITIATE, null);
- mGSMPhone.registerForMmiComplete(mHandler, EVENT_MMI_COMPLETE, null);
- mGSMPhone.registerForSuppServiceFailed(mHandler, SUPP_SERVICE_FAILED, null);
-
- mGSMPhone.registerForServiceStateChanged(mHandler, SERVICE_STATE_CHANGED, null);
-
- // wait until we get phone in both voice and data service
- Message msg;
- ServiceState state;
-
- do {
- msg = mGSMTestHandler.waitForMessage(SERVICE_STATE_CHANGED);
- assertNotNull("Message Time Out", msg);
- state = (ServiceState) ((AsyncResult) msg.obj).result;
- } while (state.getState() != ServiceState.STATE_IN_SERVICE);
- }
-
- @Override
- protected void tearDown() throws Exception {
- mRadioControl.shutdown();
-
- mGSMPhone.unregisterForPhoneStateChanged(mHandler);
- mGSMPhone.unregisterForNewRingingConnection(mHandler);
- mGSMPhone.unregisterForDisconnect(mHandler);
- mGSMPhone.setOnPostDialCharacter(mHandler, 0, null);
- mGSMPhone.unregisterForSuppServiceNotification(mHandler);
- mGSMPhone.unregisterForMmiInitiate(mHandler);
- mGSMPhone.unregisterForMmiComplete(mHandler);
-
- mGSMPhone = null;
- mRadioControl = null;
- mHandler = null;
- mGSMTestHandler.cleanup();
-
- super.tearDown();
- }
-
- // These test can only be run once.
- public int startPerformance(Intermediates intermediates) {
- return 1;
- }
-
- public boolean isPerformanceOnly() {
- return false;
- }
-
-
- //This test is causing the emulator screen to turn off. I don't understand
- //why, but I'm removing it until we can figure it out.
- public void brokenTestGeneral() throws Exception {
- Connection cn;
- Message msg;
- AsyncResult ar;
-
- // IDLE state
-
- assertEquals(Phone.State.IDLE, mGSMPhone.getState());
- assertEquals(0, mGSMPhone.getRingingCall().getConnections().size());
- assertEquals(0, mGSMPhone.getForegroundCall().getConnections().size());
- assertEquals(0, mGSMPhone.getBackgroundCall().getConnections().size());
-
- assertEquals(Call.State.IDLE, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- assertEquals(0, mGSMPhone.getForegroundCall().getEarliestCreateTime());
- assertEquals(0, mGSMPhone.getForegroundCall().getEarliestConnectTime());
- assertFalse(mGSMPhone.canConference());
-
- // One DIALING connection
-
- mRadioControl.setAutoProgressConnectingCall(false);
-
- mGSMPhone.dial("+13125551212");
-
- assertEquals(Phone.State.OFFHOOK, mGSMPhone.getState());
-
- msg = mGSMTestHandler.waitForMessage(EVENT_PHONE_STATE_CHANGED);
- assertNotNull("Message Time Out", msg);
-
- assertEquals(Phone.State.OFFHOOK, mGSMPhone.getState());
- assertEquals(Call.State.DIALING, mGSMPhone.getForegroundCall().getState());
- assertTrue(mGSMPhone.getForegroundCall().isDialingOrAlerting());
-
- /*do {
- mGSMTestHandler.waitForMessage(ANY_MESSAGE);
- } while (mGSMPhone.getForegroundCall().getConnections().size() == 0);*/
-
- assertEquals(0, mGSMPhone.getRingingCall().getConnections().size());
- assertEquals(1, mGSMPhone.getForegroundCall().getConnections().size());
- assertEquals(0, mGSMPhone.getBackgroundCall().getConnections().size());
-
- assertEquals(Call.State.IDLE, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.DIALING,
- mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- assertTrue(mGSMPhone.getForegroundCall().getEarliestCreateTime() > 0);
- assertEquals(0, mGSMPhone.getForegroundCall().getEarliestConnectTime());
-
- cn = mGSMPhone.getForegroundCall().getConnections().get(0);
- assertTrue(!cn.isIncoming());
- assertEquals(Connection.PostDialState.NOT_STARTED, cn.getPostDialState());
-
- assertEquals(Connection.DisconnectCause.NOT_DISCONNECTED, cn.getDisconnectCause());
-
- assertFalse(mGSMPhone.canConference());
-
- // One ALERTING connection
-
- mRadioControl.progressConnectingCallState();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- }
- while (mGSMPhone.getForegroundCall().getState() != Call.State.ALERTING);
-
- assertEquals(Phone.State.OFFHOOK, mGSMPhone.getState());
- assertTrue(mGSMPhone.getForegroundCall().isDialingOrAlerting());
-
- assertEquals(0, mGSMPhone.getRingingCall().getConnections().size());
- assertEquals(1, mGSMPhone.getForegroundCall().getConnections().size());
- assertEquals(0, mGSMPhone.getBackgroundCall().getConnections().size());
-
- assertEquals(Call.State.IDLE, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.ALERTING, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- assertTrue(mGSMPhone.getForegroundCall().getEarliestCreateTime() > 0);
- assertEquals(0, mGSMPhone.getForegroundCall().getEarliestConnectTime());
-
- cn = mGSMPhone.getForegroundCall().getConnections().get(0);
- assertTrue(!cn.isIncoming());
- assertEquals(Connection.PostDialState.NOT_STARTED, cn.getPostDialState());
- assertFalse(mGSMPhone.canConference());
-
- // One ACTIVE connection
-
- mRadioControl.progressConnectingCallState();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getForegroundCall().getState() != Call.State.ACTIVE);
-
- assertEquals(Phone.State.OFFHOOK, mGSMPhone.getState());
- assertFalse(mGSMPhone.getForegroundCall().isDialingOrAlerting());
-
- assertEquals(0, mGSMPhone.getRingingCall().getConnections().size());
- assertEquals(1, mGSMPhone.getForegroundCall().getConnections().size());
- assertEquals(0, mGSMPhone.getBackgroundCall().getConnections().size());
-
- assertEquals(Call.State.IDLE, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- assertTrue(mGSMPhone.getForegroundCall().getEarliestCreateTime() > 0);
- assertTrue(mGSMPhone.getForegroundCall().getEarliestConnectTime() > 0);
-
- cn = mGSMPhone.getForegroundCall().getConnections().get(0);
- assertTrue(!cn.isIncoming());
- assertEquals(Connection.PostDialState.COMPLETE, cn.getPostDialState());
- assertFalse(mGSMPhone.canConference());
-
- // One disconnected connection
- mGSMPhone.getForegroundCall().hangup();
-
- msg = mGSMTestHandler.waitForMessage(EVENT_DISCONNECT);
- assertNotNull("Message Time Out", msg);
-
- assertEquals(Phone.State.IDLE, mGSMPhone.getState());
- assertFalse(mGSMPhone.getForegroundCall().isDialingOrAlerting());
-
- assertEquals(0, mGSMPhone.getRingingCall().getConnections().size());
- assertEquals(1, mGSMPhone.getForegroundCall().getConnections().size());
- assertEquals(0, mGSMPhone.getBackgroundCall().getConnections().size());
-
- assertEquals(Call.State.IDLE, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.DISCONNECTED, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- assertTrue(mGSMPhone.getForegroundCall().getEarliestCreateTime() > 0);
- assertTrue(mGSMPhone.getForegroundCall().getEarliestConnectTime() > 0);
-
- assertFalse(mGSMPhone.canConference());
-
- cn = mGSMPhone.getForegroundCall().getEarliestConnection();
-
- assertEquals(Call.State.DISCONNECTED, cn.getState());
-
- // Back to idle state
-
- mGSMPhone.clearDisconnected();
-
- assertEquals(Phone.State.IDLE, mGSMPhone.getState());
- assertFalse(mGSMPhone.getForegroundCall().isDialingOrAlerting());
-
- assertEquals(0, mGSMPhone.getRingingCall().getConnections().size());
- assertEquals(0, mGSMPhone.getForegroundCall().getConnections().size());
- assertEquals(0, mGSMPhone.getBackgroundCall().getConnections().size());
-
- assertEquals(Call.State.IDLE, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- assertEquals(0, mGSMPhone.getForegroundCall().getEarliestCreateTime());
- assertEquals(0, mGSMPhone.getForegroundCall().getEarliestConnectTime());
-
- assertFalse(mGSMPhone.canConference());
-
- // cn left over from before phone.clearDisconnected();
-
- assertEquals(Call.State.DISCONNECTED, cn.getState());
-
- // One ringing (INCOMING) call
-
- mRadioControl.triggerRing("18005551212");
-
- msg = mGSMTestHandler.waitForMessage(EVENT_RINGING);
- assertNotNull("Message Time Out", msg);
-
- assertEquals(Phone.State.RINGING, mGSMPhone.getState());
- assertTrue(mGSMPhone.getRingingCall().isRinging());
-
- ar = (AsyncResult) msg.obj;
- cn = (Connection) ar.result;
- assertTrue(cn.isRinging());
- assertEquals(mGSMPhone.getRingingCall(), cn.getCall());
-
- assertEquals(1, mGSMPhone.getRingingCall().getConnections().size());
- assertEquals(0, mGSMPhone.getForegroundCall().getConnections().size());
- assertEquals(0, mGSMPhone.getBackgroundCall().getConnections().size());
-
- assertEquals(Call.State.INCOMING, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- assertTrue(mGSMPhone.getRingingCall().getEarliestCreateTime() > 0);
- assertEquals(0, mGSMPhone.getRingingCall().getEarliestConnectTime());
-
- assertEquals(0, mGSMPhone.getForegroundCall().getEarliestCreateTime());
- assertEquals(0, mGSMPhone.getForegroundCall().getEarliestConnectTime());
-
- cn = mGSMPhone.getRingingCall().getConnections().get(0);
- assertTrue(cn.isIncoming());
- assertEquals(Connection.PostDialState.NOT_STARTED, cn.getPostDialState());
-
- assertFalse(mGSMPhone.canConference());
-
- // One mobile terminated active call
- mGSMPhone.acceptCall();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getRingingCall().getConnections().size() == 1);
-
- assertEquals(Phone.State.OFFHOOK, mGSMPhone.getState());
- assertFalse(mGSMPhone.getRingingCall().isRinging());
-
- assertEquals(0, mGSMPhone.getRingingCall().getConnections().size());
- assertEquals(1, mGSMPhone.getForegroundCall().getConnections().size());
- assertEquals(0, mGSMPhone.getBackgroundCall().getConnections().size());
-
- assertEquals(Call.State.IDLE, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.ACTIVE,
- mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- assertTrue(mGSMPhone.getForegroundCall().getEarliestCreateTime() > 0);
- assertTrue(mGSMPhone.getForegroundCall().getEarliestConnectTime() > 0);
-
- cn = mGSMPhone.getForegroundCall().getConnections().get(0);
- assertTrue(cn.isIncoming());
- assertEquals(Connection.PostDialState.NOT_STARTED, cn.getPostDialState());
-
- assertFalse(mGSMPhone.canConference());
-
- // One disconnected (local hangup) call
-
- try {
- Connection conn;
- conn = mGSMPhone.getForegroundCall().getConnections().get(0);
- conn.hangup();
- } catch (CallStateException ex) {
- ex.printStackTrace();
- fail("unexpected ex");
- }
-
- msg = mGSMTestHandler.waitForMessage(EVENT_DISCONNECT);
- assertNotNull("Message Time Out", msg);
-
- assertEquals(Phone.State.IDLE, mGSMPhone.getState());
- assertFalse(mGSMPhone.getForegroundCall().isDialingOrAlerting());
- assertFalse(mGSMPhone.getRingingCall().isRinging());
-
- assertEquals(0, mGSMPhone.getRingingCall().getConnections().size());
- assertEquals(1, mGSMPhone.getForegroundCall().getConnections().size());
- assertEquals(0, mGSMPhone.getBackgroundCall().getConnections().size());
-
- assertEquals(Call.State.IDLE, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.DISCONNECTED,
- mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- assertTrue(mGSMPhone.getForegroundCall().getEarliestCreateTime() > 0);
- assertTrue(mGSMPhone.getForegroundCall().getEarliestConnectTime() > 0);
-
- cn = mGSMPhone.getForegroundCall().getEarliestConnection();
-
- assertEquals(Call.State.DISCONNECTED, cn.getState());
-
- assertEquals(Connection.DisconnectCause.LOCAL, cn.getDisconnectCause());
-
- assertFalse(mGSMPhone.canConference());
-
- // Back to idle state
-
- mGSMPhone.clearDisconnected();
-
- assertFalse(mGSMPhone.getForegroundCall().isDialingOrAlerting());
- assertFalse(mGSMPhone.getRingingCall().isRinging());
-
- assertEquals(Connection.DisconnectCause.LOCAL, cn.getDisconnectCause());
- assertEquals(0, mGSMPhone.getForegroundCall().getConnections().size());
- assertEquals(Phone.State.IDLE, mGSMPhone.getState());
-
- assertEquals(0, mGSMPhone.getRingingCall().getConnections().size());
- assertEquals(0, mGSMPhone.getForegroundCall().getConnections().size());
- assertEquals(0, mGSMPhone.getBackgroundCall().getConnections().size());
-
- assertEquals(Call.State.IDLE, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- assertEquals(0, mGSMPhone.getForegroundCall().getEarliestCreateTime());
- assertEquals(0, mGSMPhone.getForegroundCall().getEarliestConnectTime());
-
- assertFalse(mGSMPhone.canConference());
-
- // cn left over from before phone.clearDisconnected();
-
- assertEquals(Call.State.DISCONNECTED, cn.getState());
-
- // One ringing call
-
- mRadioControl.triggerRing("18005551212");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getRingingCall().getConnections().isEmpty());
-
- assertEquals(Phone.State.RINGING, mGSMPhone.getState());
- assertFalse(mGSMPhone.getForegroundCall().isDialingOrAlerting());
- assertTrue(mGSMPhone.getRingingCall().isRinging());
-
- assertEquals(1, mGSMPhone.getRingingCall().getConnections().size());
- assertEquals(0, mGSMPhone.getForegroundCall().getConnections().size());
- assertEquals(0, mGSMPhone.getBackgroundCall().getConnections().size());
-
- assertEquals(Call.State.INCOMING, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- assertTrue(mGSMPhone.getRingingCall().getEarliestCreateTime() > 0);
- assertEquals(0, mGSMPhone.getRingingCall().getEarliestConnectTime());
-
- assertEquals(0, mGSMPhone.getForegroundCall().getEarliestCreateTime());
- assertEquals(0, mGSMPhone.getForegroundCall().getEarliestConnectTime());
-
- assertFalse(mGSMPhone.canConference());
-
- // One rejected call
- mGSMPhone.rejectCall();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getState() != Phone.State.IDLE);
-
- assertFalse(mGSMPhone.getForegroundCall().isDialingOrAlerting());
- assertFalse(mGSMPhone.getRingingCall().isRinging());
-
- assertEquals(1, mGSMPhone.getRingingCall().getConnections().size());
- assertEquals(0, mGSMPhone.getForegroundCall().getConnections().size());
- assertEquals(0, mGSMPhone.getBackgroundCall().getConnections().size());
-
- assertEquals(Call.State.DISCONNECTED, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- assertTrue(mGSMPhone.getRingingCall().getEarliestCreateTime() > 0);
- assertEquals(0, mGSMPhone.getRingingCall().getEarliestConnectTime());
-
- assertEquals(0, mGSMPhone.getForegroundCall().getEarliestCreateTime());
- assertEquals(0, mGSMPhone.getForegroundCall().getEarliestConnectTime());
-
- cn = mGSMPhone.getRingingCall().getEarliestConnection();
- assertEquals(Call.State.DISCONNECTED, cn.getState());
-
- assertEquals(Connection.DisconnectCause.INCOMING_MISSED, cn.getDisconnectCause());
-
- assertFalse(mGSMPhone.canConference());
-
- // Back to idle state
-
- mGSMPhone.clearDisconnected();
-
- assertEquals(Connection.DisconnectCause.INCOMING_MISSED, cn.getDisconnectCause());
- assertEquals(0, mGSMPhone.getForegroundCall().getConnections().size());
- assertEquals(Phone.State.IDLE, mGSMPhone.getState());
-
- assertEquals(0, mGSMPhone.getRingingCall().getConnections().size());
- assertEquals(0, mGSMPhone.getForegroundCall().getConnections().size());
- assertEquals(0, mGSMPhone.getBackgroundCall().getConnections().size());
-
- assertEquals(Call.State.IDLE, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- assertEquals(0, mGSMPhone.getForegroundCall().getEarliestCreateTime());
- assertEquals(0, mGSMPhone.getForegroundCall().getEarliestConnectTime());
-
- assertFalse(mGSMPhone.canConference());
- assertEquals(Call.State.DISCONNECTED, cn.getState());
-
- // One ringing call
-
- mRadioControl.triggerRing("18005551212");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getRingingCall().getConnections().isEmpty());
-
- assertEquals(Phone.State.RINGING, mGSMPhone.getState());
- assertFalse(mGSMPhone.getForegroundCall().isDialingOrAlerting());
- assertTrue(mGSMPhone.getRingingCall().isRinging());
-
- cn = mGSMPhone.getRingingCall().getEarliestConnection();
-
- // Ringing call disconnects
-
- mRadioControl.triggerHangupForeground();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getState() != Phone.State.IDLE);
-
- assertEquals(Connection.DisconnectCause.INCOMING_MISSED, cn.getDisconnectCause());
-
- // One Ringing Call
-
- mRadioControl.triggerRing("18005551212");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getState() != Phone.State.RINGING);
-
-
- cn = mGSMPhone.getRingingCall().getEarliestConnection();
-
- // One answered call
- mGSMPhone.acceptCall();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getState() != Phone.State.OFFHOOK);
-
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- // one holding call
- mGSMPhone.switchHoldingAndActive();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getBackgroundCall().getState() == Call.State.IDLE);
-
-
- assertEquals(Call.State.IDLE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.HOLDING, mGSMPhone.getBackgroundCall().getState());
-
- // one active call
- mGSMPhone.switchHoldingAndActive();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- }
- while (mGSMPhone.getBackgroundCall().getState() == Call.State.HOLDING);
-
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- // One disconnected call in the foreground slot
-
- mRadioControl.triggerHangupAll();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getState() != Phone.State.IDLE);
-
- assertEquals(Call.State.DISCONNECTED, mGSMPhone.getForegroundCall().getState());
- assertEquals(Connection.DisconnectCause.NORMAL, cn.getDisconnectCause());
-
- // Test missed calls
-
- mRadioControl.triggerRing("18005551212");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getState() != Phone.State.RINGING);
-
- mGSMPhone.rejectCall();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (msg.what != EVENT_DISCONNECT);
-
- ar = (AsyncResult) msg.obj;
- cn = (Connection) ar.result;
-
- assertEquals(Connection.DisconnectCause.INCOMING_MISSED, cn.getDisconnectCause());
- assertEquals(Phone.State.IDLE, mGSMPhone.getState());
- assertEquals(Call.State.DISCONNECTED, mGSMPhone.getRingingCall().getState());
-
- // Test incoming not missed calls
-
- mRadioControl.triggerRing("18005551212");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getState() != Phone.State.RINGING);
-
- cn = mGSMPhone.getRingingCall().getEarliestConnection();
-
- mGSMPhone.acceptCall();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getState() != Phone.State.OFFHOOK);
-
- assertEquals(Connection.DisconnectCause.NOT_DISCONNECTED, cn.getDisconnectCause());
- assertEquals(Call.State.IDLE, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
-
- try {
- mGSMPhone.getForegroundCall().hangup();
- } catch (CallStateException ex) {
- ex.printStackTrace();
- fail("unexpected ex");
- }
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getForegroundCall().getState()
- != Call.State.DISCONNECTED);
-
- assertEquals(Connection.DisconnectCause.LOCAL, cn.getDisconnectCause());
-
- //
- // Test held and hangup held calls
- //
-
- // One ALERTING call
- mGSMPhone.dial("+13125551212");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getState() != Phone.State.OFFHOOK);
-
- assertTrue(mGSMPhone.getForegroundCall().isDialingOrAlerting());
-
- mRadioControl.progressConnectingCallState();
- mRadioControl.progressConnectingCallState();
-
- // One ACTIVE call
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getForegroundCall().getState() != Call.State.ACTIVE);
-
- assertFalse(mGSMPhone.getForegroundCall().isDialingOrAlerting());
-
- // One ACTIVE call, one ringing call
-
- mRadioControl.triggerRing("18005551212");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getState() != Phone.State.RINGING);
-
- assertFalse(mGSMPhone.getForegroundCall().isDialingOrAlerting());
- assertTrue(mGSMPhone.getRingingCall().isRinging());
-
- // One HOLDING call, one ACTIVE call
- mGSMPhone.acceptCall();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getState() != Phone.State.OFFHOOK);
-
- assertFalse(mGSMPhone.getForegroundCall().isDialingOrAlerting());
-
- assertEquals(Call.State.IDLE, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.HOLDING, mGSMPhone.getBackgroundCall().getState());
- assertTrue(mGSMPhone.canConference());
-
- // Conference the two
- mGSMPhone.conference();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getBackgroundCall().getState() != Call.State.IDLE);
-
- assertFalse(mGSMPhone.getForegroundCall().isDialingOrAlerting());
-
- assertEquals(Call.State.IDLE, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertTrue(mGSMPhone.getForegroundCall().isMultiparty());
- assertFalse(mGSMPhone.canConference());
-
- // Hold the multiparty call
- mGSMPhone.switchHoldingAndActive();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- }
- while (mGSMPhone.getBackgroundCall().getState() != Call.State.HOLDING);
-
- assertEquals(Call.State.IDLE, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getForegroundCall().getState());
- assertTrue(mGSMPhone.getBackgroundCall().isMultiparty());
- assertFalse(mGSMPhone.canConference());
-
- // Multiparty call on hold, call waiting added
-
- mRadioControl.triggerRing("18005558355");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getState() != Phone.State.RINGING);
-
- assertFalse(mGSMPhone.getForegroundCall().isDialingOrAlerting());
- assertTrue(mGSMPhone.getRingingCall().isRinging());
-
- assertEquals(Call.State.IDLE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.HOLDING, mGSMPhone.getBackgroundCall().getState());
- assertTrue(mGSMPhone.getBackgroundCall().isMultiparty());
- assertEquals(Call.State.WAITING, mGSMPhone.getRingingCall().getState());
- assertFalse(mGSMPhone.canConference());
-
- // Hangup conference call, ringing call still around
- mGSMPhone.getBackgroundCall().hangup();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getBackgroundCall().getState() != Call.State.DISCONNECTED);
-
- assertEquals(Phone.State.RINGING, mGSMPhone.getState());
- assertEquals(Call.State.DISCONNECTED, mGSMPhone.getBackgroundCall().getState());
-
- assertFalse(mGSMPhone.getForegroundCall().isDialingOrAlerting());
- assertTrue(mGSMPhone.getRingingCall().isRinging());
-
- // Reject waiting call
- mGSMPhone.rejectCall();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getState() != Phone.State.IDLE);
-
- assertFalse(mGSMPhone.getForegroundCall().isDialingOrAlerting());
- assertFalse(mGSMPhone.getRingingCall().isRinging());
- }
-
- public void testOutgoingCallFailImmediately() throws Exception {
- Message msg;
-
- // Test outgoing call fail-immediately edge case
- // This happens when a call terminated before ever appearing in a
- // call list
- // This should land the immediately-failing call in the
- // ForegroundCall list as an IDLE call
- mRadioControl.setNextDialFailImmediately(true);
-
- Connection cn = mGSMPhone.dial("+13125551212");
-
- msg = mGSMTestHandler.waitForMessage(EVENT_DISCONNECT);
- assertNotNull("Message Time Out", msg);
- assertEquals(Phone.State.IDLE, mGSMPhone.getState());
-
- assertEquals(Connection.DisconnectCause.NORMAL, cn.getDisconnectCause());
-
- assertEquals(0, mGSMPhone.getRingingCall().getConnections().size());
- assertEquals(1, mGSMPhone.getForegroundCall().getConnections().size());
- assertEquals(0, mGSMPhone.getBackgroundCall().getConnections().size());
-
- assertEquals(Call.State.IDLE, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.DISCONNECTED, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- assertTrue(mGSMPhone.getForegroundCall().getEarliestCreateTime() > 0);
- assertEquals(0, mGSMPhone.getForegroundCall().getEarliestConnectTime());
- }
-
- public void testHangupOnOutgoing() throws Exception {
- Connection cn;
- Message msg;
-
- mRadioControl.setAutoProgressConnectingCall(false);
-
- // Test 1: local hangup in "DIALING" state
- mGSMPhone.dial("+13125551212");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- }
- while (mGSMPhone.getForegroundCall().getState() != Call.State.DIALING);
-
- cn = mGSMPhone.getForegroundCall().getEarliestConnection();
-
- mGSMPhone.getForegroundCall().hangup();
-
- msg = mGSMTestHandler.waitForMessage(EVENT_DISCONNECT);
- assertNotNull("Message Time Out", msg);
- assertEquals(Phone.State.IDLE, mGSMPhone.getState());
-
- assertEquals(Call.State.DISCONNECTED, mGSMPhone.getForegroundCall().getState());
- assertEquals(Connection.DisconnectCause.LOCAL, cn.getDisconnectCause());
-
- // Test 2: local hangup in "ALERTING" state
- mGSMPhone.dial("+13125551212");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getState() != Phone.State.OFFHOOK);
-
- mRadioControl.progressConnectingCallState();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- }
- while (mGSMPhone.getForegroundCall().getState() != Call.State.ALERTING);
-
- cn = mGSMPhone.getForegroundCall().getEarliestConnection();
-
- mGSMPhone.getForegroundCall().hangup();
-
- msg = mGSMTestHandler.waitForMessage(EVENT_DISCONNECT);
- assertNotNull("Message Time Out", msg);
-
- assertEquals(Phone.State.IDLE, mGSMPhone.getState());
-
- assertEquals(Call.State.DISCONNECTED, mGSMPhone.getForegroundCall().getState());
- assertEquals(Connection.DisconnectCause.LOCAL, cn.getDisconnectCause());
-
- // Test 3: local immediate hangup before GSM index is
- // assigned (CallTracker.hangupPendingMO case)
-
- mRadioControl.pauseResponses();
-
- cn = mGSMPhone.dial("+13125551212");
-
- cn.hangup();
-
- mRadioControl.resumeResponses();
-
- msg = mGSMTestHandler.waitForMessage(EVENT_DISCONNECT);
- assertNotNull("Message Time Out", msg);
- assertEquals(Phone.State.IDLE, mGSMPhone.getState());
-
- assertEquals(Call.State.DISCONNECTED, mGSMPhone.getForegroundCall().getState());
-
- assertEquals(Connection.DisconnectCause.LOCAL,
- mGSMPhone.getForegroundCall().getEarliestConnection().getDisconnectCause());
- }
-
- public void testHangupOnChannelClose() throws Exception {
- mGSMPhone.dial("+13125551212");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getForegroundCall().getConnections().isEmpty());
-
- mRadioControl.shutdown();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- mGSMPhone.clearDisconnected();
- } while (!mGSMPhone.getForegroundCall().getConnections().isEmpty());
- }
-
- public void testIncallMmiCallDeflection() throws Exception {
- Message msg;
-
- // establish an active call
- mGSMPhone.dial("+13125551212");
-
- do {
- mRadioControl.progressConnectingCallState();
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getForegroundCall().getState() != Call.State.ACTIVE);
-
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- // establish a ringing (WAITING) call
-
- mRadioControl.triggerRing("18005551212");
-
- msg = mGSMTestHandler.waitForMessage(EVENT_RINGING);
- assertNotNull("Message Time Out", msg);
-
- assertEquals(Phone.State.RINGING, mGSMPhone.getState());
- assertTrue(mGSMPhone.getRingingCall().isRinging());
- assertEquals(Call.State.WAITING, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- // Simulate entering 0 followed by SEND: release all held calls
- // or sets UDUB for a waiting call.
- mGSMPhone.handleInCallMmiCommands("0");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getRingingCall().getState() == Call.State.WAITING);
-
- assertEquals(Phone.State.OFFHOOK, mGSMPhone.getState());
- assertFalse(mGSMPhone.getRingingCall().isRinging());
- assertEquals(Call.State.DISCONNECTED, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- // change the active call to holding call
- mGSMPhone.switchHoldingAndActive();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getBackgroundCall().getState() == Call.State.IDLE);
-
-
- assertEquals(Call.State.IDLE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.HOLDING, mGSMPhone.getBackgroundCall().getState());
-
- // Simulate entering 0 followed by SEND: release all held calls
- // or sets UDUB for a waiting call.
- mGSMPhone.handleInCallMmiCommands("0");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getBackgroundCall().getState() == Call.State.HOLDING);
-
- assertEquals(Phone.State.IDLE, mGSMPhone.getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.DISCONNECTED, mGSMPhone.getBackgroundCall().getState());
- }
-
- public void testIncallMmiCallWaiting() throws Exception {
- Message msg;
-
- // establish an active call
- mGSMPhone.dial("+13125551212");
-
- do {
- mRadioControl.progressConnectingCallState();
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getForegroundCall().getState() != Call.State.ACTIVE);
-
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- // establish a ringing (WAITING) call
-
- mRadioControl.triggerRing("18005551212");
-
- do {
- msg = mGSMTestHandler.waitForMessage(ANY_MESSAGE);
- assertNotNull("Message Time Out", msg);
- } while (msg.what != EVENT_RINGING);
-
- assertEquals(Phone.State.RINGING, mGSMPhone.getState());
- assertTrue(mGSMPhone.getRingingCall().isRinging());
- assertEquals(Call.State.WAITING, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- // Simulate entering 1 followed by SEND: release all active calls
- // (if any exist) and accepts the other (held or waiting) call.
-
- mGSMPhone.handleInCallMmiCommands("1");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getRingingCall().getState() == Call.State.WAITING);
-
- assertEquals(Phone.State.OFFHOOK, mGSMPhone.getState());
- assertFalse(mGSMPhone.getRingingCall().isRinging());
- assertEquals(Call.State.IDLE, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals("18005551212",
- mGSMPhone.getForegroundCall().getConnections().get(0).getAddress());
-
- // change the active call to holding call
- mGSMPhone.switchHoldingAndActive();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getBackgroundCall().getState() == Call.State.IDLE);
-
- assertEquals(Call.State.IDLE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.HOLDING, mGSMPhone.getBackgroundCall().getState());
-
- // Simulate entering 1 followed by SEND: release all active calls
- // (if any exist) and accepts the other (held or waiting) call.
- mGSMPhone.handleInCallMmiCommands("1");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getBackgroundCall().getState() != Call.State.IDLE);
-
- assertEquals(Phone.State.OFFHOOK, mGSMPhone.getState());
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
- assertEquals("18005551212",
- mGSMPhone.getForegroundCall().getConnections().get(0).getAddress());
-
- // at this point, the active call with number==18005551212 should
- // have the gsm index of 2
-
- mRadioControl.triggerRing("16505550100");
-
- msg = mGSMTestHandler.waitForMessage(EVENT_RINGING);
- assertNotNull("Message Time Out", msg);
-
- assertEquals(Phone.State.RINGING, mGSMPhone.getState());
- assertTrue(mGSMPhone.getRingingCall().isRinging());
- assertEquals(Call.State.WAITING, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- // Simulate entering "12" followed by SEND: release the call with
- // gsm index equals to 2.
- mGSMPhone.handleInCallMmiCommands("12");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getForegroundCall().getState() == Call.State.ACTIVE);
-
- assertEquals(Phone.State.RINGING, mGSMPhone.getState());
- assertTrue(mGSMPhone.getRingingCall().isRinging());
- assertEquals(Call.State.WAITING, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.DISCONNECTED, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- mGSMPhone.acceptCall();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getState() != Phone.State.OFFHOOK);
-
- assertEquals(Phone.State.OFFHOOK, mGSMPhone.getState());
- assertFalse(mGSMPhone.getRingingCall().isRinging());
- assertEquals(Call.State.IDLE, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- // at this point, the call with number==16505550100 should
- // have the gsm index of 1
- mGSMPhone.dial("+13125551212");
-
- do {
- mRadioControl.progressConnectingCallState();
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getForegroundCall().getState() != Call.State.ACTIVE ||
- mGSMPhone.getBackgroundCall().getState() != Call.State.HOLDING);
-
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.HOLDING, mGSMPhone.getBackgroundCall().getState());
-
- // at this point, the active call with number==13125551212 should
- // have the gsm index of 2
-
- // Simulate entering "11" followed by SEND: release the call with
- // gsm index equals to 1. This should not be allowed, and a
- // Supplementary Service notification must be received.
- mGSMPhone.handleInCallMmiCommands("11");
-
- msg = mGSMTestHandler.waitForMessage(SUPP_SERVICE_FAILED);
- assertNotNull("Message Time Out", msg);
- assertFalse("IncallMmiCallWaiting: command should not work on holding call", msg == null);
-
- // Simulate entering "12" followed by SEND: release the call with
- // gsm index equals to 2.
- mGSMPhone.handleInCallMmiCommands("12");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getForegroundCall().getState() == Call.State.ACTIVE);
-
- assertEquals(Call.State.DISCONNECTED, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.HOLDING, mGSMPhone.getBackgroundCall().getState());
-
- // Simulate entering 1 followed by SEND: release all active calls
- // (if any exist) and accepts the other (held or waiting) call.
- mGSMPhone.handleInCallMmiCommands("1");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getBackgroundCall().getState() != Call.State.IDLE);
-
- assertEquals(Phone.State.OFFHOOK, mGSMPhone.getState());
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
- assertEquals("16505550100",
- mGSMPhone.getForegroundCall().getConnections().get(0).getAddress());
-
- // Simulate entering "11" followed by SEND: release the call with
- // gsm index equals to 1.
- mGSMPhone.handleInCallMmiCommands("11");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getForegroundCall().getState() == Call.State.ACTIVE);
-
- assertEquals(Call.State.DISCONNECTED, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
- }
-
- public void testIncallMmiCallHold() throws Exception {
- Message msg;
-
- // establish an active call
- mGSMPhone.dial("13125551212");
-
- do {
- mRadioControl.progressConnectingCallState();
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getForegroundCall().getState() != Call.State.ACTIVE);
-
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- // establish a ringing (WAITING) call
-
- mRadioControl.triggerRing("18005551212");
-
- msg = mGSMTestHandler.waitForMessage(EVENT_RINGING);
- assertNotNull("Message Time Out", msg);
-
- assertEquals(Phone.State.RINGING, mGSMPhone.getState());
- assertTrue(mGSMPhone.getRingingCall().isRinging());
- assertEquals(Call.State.WAITING, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- // simulate entering 2 followed by SEND: place all active calls
- // (if any exist) on hold and accepts the other (held or waiting)
- // call
-
- mGSMPhone.handleInCallMmiCommands("2");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getRingingCall().getState() == Call.State.WAITING);
-
-
- assertFalse(mGSMPhone.getRingingCall().isRinging());
- assertEquals(Phone.State.OFFHOOK, mGSMPhone.getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.ACTIVE,
- mGSMPhone.getForegroundCall().getState());
- assertEquals("18005551212",
- mGSMPhone.getForegroundCall().getConnections().get(0).getAddress());
- assertEquals(Call.State.HOLDING, mGSMPhone.getBackgroundCall().getState());
- assertEquals("13125551212",
- mGSMPhone.getBackgroundCall().getConnections().get(0).getAddress());
-
- // swap the active and holding calls
- mGSMPhone.handleInCallMmiCommands("2");
-
- msg = mGSMTestHandler.waitForMessage(EVENT_PHONE_STATE_CHANGED);
- assertNotNull("Message Time Out", msg);
-
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals("13125551212",
- mGSMPhone.getForegroundCall().getConnections().get(0).getAddress());
- assertEquals(Call.State.HOLDING, mGSMPhone.getBackgroundCall().getState());
- assertEquals("18005551212",
- mGSMPhone.getBackgroundCall().getConnections().get(0).getAddress());
-
- // merge the calls
- mGSMPhone.conference();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getBackgroundCall().getState() != Call.State.IDLE);
-
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
- assertEquals(2, mGSMPhone.getForegroundCall().getConnections().size());
-
- // at this point, we have an active conference call, with
- // call(1) = 13125551212 and call(2) = 18005551212
-
- // Simulate entering "23" followed by SEND: places all active call
- // on hold except call 3. This should fail and a supplementary service
- // failed notification should be received.
-
- mGSMPhone.handleInCallMmiCommands("23");
-
- msg = mGSMTestHandler.waitForMessage(SUPP_SERVICE_FAILED);
- assertNotNull("Message Time Out", msg);
- assertFalse("IncallMmiCallHold: separate should have failed!", msg == null);
-
- // Simulate entering "21" followed by SEND: places all active call
- // on hold except call 1.
- mGSMPhone.handleInCallMmiCommands("21");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getBackgroundCall().getState() == Call.State.IDLE);
-
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals("13125551212",
- mGSMPhone.getForegroundCall().getConnections().get(0).getAddress());
- assertEquals(Call.State.HOLDING, mGSMPhone.getBackgroundCall().getState());
- assertEquals("18005551212",
- mGSMPhone.getBackgroundCall().getConnections().get(0).getAddress());
- }
-
- public void testIncallMmiMultipartyServices() throws Exception {
- // establish an active call
- mGSMPhone.dial("13125551212");
-
- do {
- mRadioControl.progressConnectingCallState();
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getForegroundCall().getState() != Call.State.ACTIVE);
-
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- // dial another call
- mGSMPhone.dial("18005551212");
-
- do {
- mRadioControl.progressConnectingCallState();
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getForegroundCall().getState() != Call.State.ACTIVE);
-
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.HOLDING, mGSMPhone.getBackgroundCall().getState());
-
- mGSMPhone.handleInCallMmiCommands("3");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getBackgroundCall().getState() != Call.State.IDLE);
-
- assertEquals(Phone.State.OFFHOOK, mGSMPhone.getState());
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals("18005551212",
- mGSMPhone.getForegroundCall().getConnections().get(0).getAddress());
- assertEquals("13125551212",
- mGSMPhone.getForegroundCall().getConnections().get(1).getAddress());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
- }
-
- public void testCallIndex() throws Exception {
- Message msg;
-
- // establish the first call
- mGSMPhone.dial("16505550100");
-
- do {
- mRadioControl.progressConnectingCallState();
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getForegroundCall().getState() != Call.State.ACTIVE);
-
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- String baseNumber = "1650555010";
-
- for (int i = 1; i < 6; i++) {
- String number = baseNumber + i;
-
- mGSMPhone.dial(number);
-
- do {
- mRadioControl.progressConnectingCallState();
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getForegroundCall().getState() != Call.State.ACTIVE);
-
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.HOLDING, mGSMPhone.getBackgroundCall().getState());
-
- if (mGSMPhone.getBackgroundCall().getConnections().size() >= 5) {
- break;
- }
-
- mGSMPhone.conference();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getBackgroundCall().getState() != Call.State.IDLE);
-
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
- }
-
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals("16505550105",
- mGSMPhone.getForegroundCall().getConnections().get(0).getAddress());
- assertEquals(Call.State.HOLDING, mGSMPhone.getBackgroundCall().getState());
-
- // create an incoming call, this call should have the call index
- // of 7
- mRadioControl.triggerRing("18005551212");
-
- msg = mGSMTestHandler.waitForMessage(EVENT_RINGING);
- assertNotNull("Message Time Out", msg);
-
- assertEquals(Phone.State.RINGING, mGSMPhone.getState());
- assertTrue(mGSMPhone.getRingingCall().isRinging());
- assertEquals(Call.State.WAITING, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.HOLDING, mGSMPhone.getBackgroundCall().getState());
-
- // hangup the background call and accept the ringing call
- mGSMPhone.getBackgroundCall().hangup();
- mGSMPhone.acceptCall();
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getRingingCall().getState() != Call.State.IDLE);
-
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals("18005551212",
- mGSMPhone.getForegroundCall().getConnections().get(0).getAddress());
- assertEquals(Call.State.HOLDING, mGSMPhone.getBackgroundCall().getState());
- assertEquals("16505550105",
- mGSMPhone.getBackgroundCall().getConnections().get(0).getAddress());
-
- mGSMPhone.handleInCallMmiCommands("17");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getForegroundCall().getState() == Call.State.ACTIVE);
-
- assertEquals(Call.State.DISCONNECTED, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.HOLDING, mGSMPhone.getBackgroundCall().getState());
- assertEquals("16505550105",
- mGSMPhone.getBackgroundCall().getConnections().get(0).
- getAddress());
-
- mGSMPhone.handleInCallMmiCommands("1");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getForegroundCall().getState() != Call.State.ACTIVE);
-
- assertEquals(Call.State.ACTIVE, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- mGSMPhone.handleInCallMmiCommands("16");
-
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (mGSMPhone.getForegroundCall().getState() == Call.State.ACTIVE);
-
- assertEquals(Call.State.DISCONNECTED, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
- }
-
- public void testPostDialSequences() throws Exception {
- Message msg;
- AsyncResult ar;
- Connection cn;
-
- mGSMPhone.dial("+13125551212,1234;5N8xx");
-
- msg = mGSMTestHandler.waitForMessage(EVENT_POST_DIAL);
- assertNotNull("Message Time Out", msg);
- ar = (AsyncResult) (msg.obj);
- cn = (Connection) (ar.result);
- assertEquals(',', msg.arg1);
- assertEquals("1234;5N8", cn.getRemainingPostDialString());
-
-
- msg = mGSMTestHandler.waitForMessage(EVENT_POST_DIAL);
- assertNotNull("Message Time Out", msg);
- assertEquals('1', msg.arg1);
- ar = (AsyncResult) (msg.obj);
- assertEquals(Connection.PostDialState.STARTED, ar.userObj);
-
-
- msg = mGSMTestHandler.waitForMessage(EVENT_POST_DIAL);
- assertNotNull("Message Time Out", msg);
- assertEquals('2', msg.arg1);
- ar = (AsyncResult) (msg.obj);
- assertEquals(Connection.PostDialState.STARTED, ar.userObj);
-
-
- msg = mGSMTestHandler.waitForMessage(EVENT_POST_DIAL);
- assertNotNull("Message Time Out", msg);
- assertEquals('3', msg.arg1);
- ar = (AsyncResult) (msg.obj);
- assertEquals(Connection.PostDialState.STARTED, ar.userObj);
-
-
- msg = mGSMTestHandler.waitForMessage(EVENT_POST_DIAL);
- assertNotNull("Message Time Out", msg);
- assertEquals('4', msg.arg1);
- ar = (AsyncResult) (msg.obj);
- assertEquals(Connection.PostDialState.STARTED, ar.userObj);
-
-
- msg = mGSMTestHandler.waitForMessage(EVENT_POST_DIAL);
- assertNotNull("Message Time Out", msg);
- assertEquals(';', msg.arg1);
- ar = (AsyncResult) (msg.obj);
- cn = (Connection) (ar.result);
- assertEquals(Connection.PostDialState.WAIT, cn.getPostDialState());
- assertEquals(Connection.PostDialState.WAIT, ar.userObj);
- cn.proceedAfterWaitChar();
-
-
- msg = mGSMTestHandler.waitForMessage(EVENT_POST_DIAL);
- assertNotNull("Message Time Out", msg);
- assertEquals('5', msg.arg1);
- ar = (AsyncResult) (msg.obj);
- assertEquals(Connection.PostDialState.STARTED, ar.userObj);
-
-
- msg = mGSMTestHandler.waitForMessage(EVENT_POST_DIAL);
- assertEquals('N', msg.arg1);
- ar = (AsyncResult) (msg.obj);
- cn = (Connection) (ar.result);
- assertEquals(Connection.PostDialState.WILD, cn.getPostDialState());
- assertEquals(Connection.PostDialState.WILD, ar.userObj);
- cn.proceedAfterWildChar(",6;7");
-
-
- msg = mGSMTestHandler.waitForMessage(EVENT_POST_DIAL);
- assertNotNull("Message Time Out", msg);
- ar = (AsyncResult) (msg.obj);
- cn = (Connection) (ar.result);
- assertEquals(',', msg.arg1);
- assertEquals("6;78", cn.getRemainingPostDialString());
-
- msg = mGSMTestHandler.waitForMessage(EVENT_POST_DIAL);
- assertNotNull("Message Time Out", msg);
- assertEquals('6', msg.arg1);
- ar = (AsyncResult) (msg.obj);
- assertEquals(Connection.PostDialState.STARTED, ar.userObj);
-
- msg = mGSMTestHandler.waitForMessage(EVENT_POST_DIAL);
- assertNotNull("Message Time Out", msg);
- assertEquals(';', msg.arg1);
- ar = (AsyncResult) (msg.obj);
- cn = (Connection) (ar.result);
- assertEquals(Connection.PostDialState.WAIT, cn.getPostDialState());
- assertEquals(Connection.PostDialState.WAIT, ar.userObj);
- cn.proceedAfterWaitChar();
-
- msg = mGSMTestHandler.waitForMessage(EVENT_POST_DIAL);
- assertNotNull("Message Time Out", msg);
- assertEquals('7', msg.arg1);
- ar = (AsyncResult) (msg.obj);
- assertEquals(Connection.PostDialState.STARTED, ar.userObj);
-
- msg = mGSMTestHandler.waitForMessage(EVENT_POST_DIAL);
- assertNotNull("Message Time Out", msg);
- assertEquals('8', msg.arg1);
- ar = (AsyncResult) (msg.obj);
- assertEquals(Connection.PostDialState.STARTED, ar.userObj);
-
- // Bogus chars at end should be ignored
- msg = mGSMTestHandler.waitForMessage(EVENT_POST_DIAL);
- assertNotNull("Message Time Out", msg);
- assertEquals(0, msg.arg1);
- ar = (AsyncResult) (msg.obj);
- cn = (Connection) (ar.result);
- assertEquals(Connection.PostDialState.COMPLETE,
- cn.getPostDialState());
- assertEquals(Connection.PostDialState.COMPLETE, ar.userObj);
- }
-
- public void testPostDialCancel() throws Exception {
- Message msg;
- AsyncResult ar;
- Connection cn;
-
- mGSMPhone.dial("+13125551212,N");
- mRadioControl.progressConnectingToActive();
-
- mRadioControl.progressConnectingToActive();
-
- msg = mGSMTestHandler.waitForMessage(EVENT_POST_DIAL);
- assertNotNull("Message Time Out", msg);
- assertEquals(',', msg.arg1);
-
- msg = mGSMTestHandler.waitForMessage(EVENT_POST_DIAL);
- assertEquals('N', msg.arg1);
- ar = (AsyncResult) (msg.obj);
- cn = (Connection) (ar.result);
- assertEquals(Connection.PostDialState.WILD, cn.getPostDialState());
- cn.cancelPostDial();
-
- assertEquals(Connection.PostDialState.CANCELLED, cn.getPostDialState());
- }
-
- public void testOutgoingCallFail() throws Exception {
- Message msg;
- /*
- * normal clearing
- */
-
- mRadioControl.setNextCallFailCause(CallFailCause.NORMAL_CLEARING);
- mRadioControl.setAutoProgressConnectingCall(false);
-
- Connection cn = mGSMPhone.dial("+13125551212");
-
- mRadioControl.progressConnectingCallState();
-
- // I'm just progressing the call state to
- // ensure getCurrentCalls() gets processed...
- // Normally these failure conditions would happen in DIALING
- // not ALERTING
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (cn.getState() == Call.State.DIALING);
-
-
- mRadioControl.triggerHangupAll();
- msg = mGSMTestHandler.waitForMessage(EVENT_DISCONNECT);
- assertNotNull("Message Time Out", msg);
- assertEquals(Phone.State.IDLE, mGSMPhone.getState());
-
- assertEquals(Connection.DisconnectCause.NORMAL, cn.getDisconnectCause());
-
- assertEquals(0, mGSMPhone.getRingingCall().getConnections().size());
- assertEquals(1, mGSMPhone.getForegroundCall().getConnections().size());
- assertEquals(0, mGSMPhone.getBackgroundCall().getConnections().size());
-
- assertEquals(Call.State.IDLE, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.DISCONNECTED, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- assertTrue(mGSMPhone.getForegroundCall().getEarliestCreateTime() > 0);
- assertEquals(0, mGSMPhone.getForegroundCall().getEarliestConnectTime());
-
- /*
- * busy
- */
-
- mRadioControl.setNextCallFailCause(CallFailCause.USER_BUSY);
- mRadioControl.setAutoProgressConnectingCall(false);
-
- cn = mGSMPhone.dial("+13125551212");
-
- mRadioControl.progressConnectingCallState();
-
- // I'm just progressing the call state to
- // ensure getCurrentCalls() gets processed...
- // Normally these failure conditions would happen in DIALING
- // not ALERTING
- do {
- assertNotNull("Message Time Out", mGSMTestHandler.waitForMessage(ANY_MESSAGE));
- } while (cn.getState() == Call.State.DIALING);
-
-
- mRadioControl.triggerHangupAll();
- msg = mGSMTestHandler.waitForMessage(EVENT_DISCONNECT);
- assertNotNull("Message Time Out", msg);
- assertEquals(Phone.State.IDLE, mGSMPhone.getState());
-
- assertEquals(Connection.DisconnectCause.BUSY, cn.getDisconnectCause());
-
- assertEquals(0, mGSMPhone.getRingingCall().getConnections().size());
- assertEquals(1, mGSMPhone.getForegroundCall().getConnections().size());
- assertEquals(0, mGSMPhone.getBackgroundCall().getConnections().size());
-
- assertEquals(Call.State.IDLE, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.DISCONNECTED,
- mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- assertTrue(mGSMPhone.getForegroundCall().getEarliestCreateTime() > 0);
- assertEquals(0, mGSMPhone.getForegroundCall().getEarliestConnectTime());
-
- /*
- * congestion
- */
-
- mRadioControl.setNextCallFailCause(CallFailCause.NO_CIRCUIT_AVAIL);
- mRadioControl.setAutoProgressConnectingCall(false);
-
- cn = mGSMPhone.dial("+13125551212");
-
- mRadioControl.progressConnectingCallState();
-
- // I'm just progressing the call state to
- // ensure getCurrentCalls() gets processed...
- // Normally these failure conditions would happen in DIALING
- // not ALERTING
- do {
- msg = mGSMTestHandler.waitForMessage(ANY_MESSAGE);
- assertNotNull("Message Time Out", msg);
- } while (cn.getState() == Call.State.DIALING);
-
-
- mRadioControl.triggerHangupAll();
-
- // Unlike the while loops above, this one waits
- // for a "phone state changed" message back to "idle"
- do {
- msg = mGSMTestHandler.waitForMessage(ANY_MESSAGE);
- assertNotNull("Message Time Out", msg);
- } while (!(msg.what == EVENT_PHONE_STATE_CHANGED
- && mGSMPhone.getState() == Phone.State.IDLE));
-
- assertEquals(Phone.State.IDLE, mGSMPhone.getState());
-
- assertEquals(Connection.DisconnectCause.CONGESTION, cn.getDisconnectCause());
-
- assertEquals(0, mGSMPhone.getRingingCall().getConnections().size());
- assertEquals(1, mGSMPhone.getForegroundCall().getConnections().size());
- assertEquals(0, mGSMPhone.getBackgroundCall().getConnections().size());
-
- assertEquals(Call.State.IDLE, mGSMPhone.getRingingCall().getState());
- assertEquals(Call.State.DISCONNECTED, mGSMPhone.getForegroundCall().getState());
- assertEquals(Call.State.IDLE, mGSMPhone.getBackgroundCall().getState());
-
- assertTrue(mGSMPhone.getForegroundCall().getEarliestCreateTime() > 0);
- assertEquals(0, mGSMPhone.getForegroundCall().getEarliestConnectTime());
- }
-
- public void testSSNotification() throws Exception {
- // MO
- runTest(0, SuppServiceNotification.MO_CODE_UNCONDITIONAL_CF_ACTIVE);
- runTest(0, SuppServiceNotification.MO_CODE_CALL_IS_WAITING);
- runTest(0, SuppServiceNotification.MO_CODE_CALL_DEFLECTED);
-
- // MT
- runTest(1, SuppServiceNotification.MT_CODE_FORWARDED_CALL);
- runTest(1, SuppServiceNotification.MT_CODE_CALL_CONNECTED_ECT);
- runTest(1, SuppServiceNotification.MT_CODE_ADDITIONAL_CALL_FORWARDED);
- }
-
- private void runTest(int type, int code) {
- Message msg;
-
- mRadioControl.triggerSsn(type, code);
-
- msg = mGSMTestHandler.waitForMessage(EVENT_SSN);
- assertNotNull("Message Time Out", msg);
- AsyncResult ar = (AsyncResult) msg.obj;
-
- assertNull(ar.exception);
-
- SuppServiceNotification notification =
- (SuppServiceNotification) ar.result;
-
- assertEquals(type, notification.notificationType);
- assertEquals(code, notification.code);
- }
-
- public void testUssd() throws Exception {
- // Quick hack to work around a race condition in this test:
- // We may initiate a USSD MMI before GSMPhone receives its initial
- // GSMTestHandler.EVENT_RADIO_OFF_OR_NOT_AVAILABLE event. When the phone sees this
- // event, it will cancel the just issued USSD MMI, which we don't
- // want. So sleep a little first.
- try {
- Thread.sleep(1000);
- } catch (InterruptedException ex) {
- // do nothing
- }
-
- verifyNormal();
- verifyCancel();
- varifyNetworkInitiated();
- }
-
- private void varifyNetworkInitiated() {
- Message msg;
- AsyncResult ar;
- MmiCode mmi;
-
- // Receive an incoming NOTIFY
- mRadioControl.triggerIncomingUssd("0", "NOTIFY message");
- msg = mGSMTestHandler.waitForMessage(EVENT_MMI_COMPLETE);
- assertNotNull("Message Time Out", msg);
- ar = (AsyncResult) msg.obj;
- mmi = (MmiCode) ar.result;
-
- assertFalse(mmi.isUssdRequest());
-
- // Receive a REQUEST and send response
- mRadioControl.triggerIncomingUssd("1", "REQUEST Message");
- msg = mGSMTestHandler.waitForMessage(EVENT_MMI_COMPLETE);
- assertNotNull("Message Time Out", msg);
- ar = (AsyncResult) msg.obj;
- mmi = (MmiCode) ar.result;
-
- assertTrue(mmi.isUssdRequest());
-
- mGSMPhone.sendUssdResponse("## TEST: TEST_GSMPhone responding...");
- msg = mGSMTestHandler.waitForMessage(EVENT_MMI_INITIATE);
- assertNotNull("Message Time Out", msg);
- ar = (AsyncResult) msg.obj;
- mmi = (MmiCode) ar.result;
-
- GsmMmiCode gsmMmi = (GsmMmiCode) mmi;
- assertTrue(gsmMmi.isPendingUSSD());
- msg = mGSMTestHandler.waitForMessage(EVENT_MMI_COMPLETE);
- assertNotNull("Message Time Out", msg);
- ar = (AsyncResult) msg.obj;
- mmi = (MmiCode) ar.result;
-
- assertNull(ar.exception);
- assertFalse(mmi.isUssdRequest());
-
- // Receive a REQUEST and cancel
- mRadioControl.triggerIncomingUssd("1", "REQUEST Message");
- msg = mGSMTestHandler.waitForMessage(EVENT_MMI_COMPLETE);
- assertNotNull("Message Time Out", msg);
- ar = (AsyncResult) msg.obj;
- mmi = (MmiCode) ar.result;
-
- assertTrue(mmi.isUssdRequest());
-
- mmi.cancel();
- msg = mGSMTestHandler.waitForMessage(EVENT_MMI_COMPLETE);
- assertNotNull("Message Time Out", msg);
-
- ar = (AsyncResult) msg.obj;
- mmi = (MmiCode) ar.result;
-
- assertNull(ar.exception);
- assertEquals(MmiCode.State.CANCELLED, mmi.getState());
-
- List mmiList = mGSMPhone.getPendingMmiCodes();
- assertEquals(0, mmiList.size());
- }
-
- private void verifyNormal() throws CallStateException {
- Message msg;
- AsyncResult ar;
- MmiCode mmi;
-
- mGSMPhone.dial("#646#");
-
- msg = mGSMTestHandler.waitForMessage(EVENT_MMI_INITIATE);
- assertNotNull("Message Time Out", msg);
-
- msg = mGSMTestHandler.waitForMessage(EVENT_MMI_COMPLETE);
- assertNotNull("Message Time Out", msg);
-
- ar = (AsyncResult) msg.obj;
- mmi = (MmiCode) ar.result;
- assertEquals(MmiCode.State.COMPLETE, mmi.getState());
- }
-
-
- private void verifyCancel() throws CallStateException {
- /**
- * This case makes an assumption that dial() will add the USSD
- * to the "pending MMI codes" list before it returns. This seems
- * like reasonable semantics. It also assumes that the USSD
- * request in question won't complete until we get back to the
- * event loop, thus cancel() is safe.
- */
- Message msg;
-
- mGSMPhone.dial("#646#");
-
- List<? extends MmiCode> pendingMmis = mGSMPhone.getPendingMmiCodes();
-
- assertEquals(1, pendingMmis.size());
-
- MmiCode mmi = pendingMmis.get(0);
- assertTrue(mmi.isCancelable());
- mmi.cancel();
-
- msg = mGSMTestHandler.waitForMessage(EVENT_MMI_INITIATE);
- assertNotNull("Message Time Out", msg);
-
- msg = mGSMTestHandler.waitForMessage(EVENT_MMI_COMPLETE);
- assertNotNull("Message Time Out", msg);
-
- AsyncResult ar = (AsyncResult) msg.obj;
- mmi = (MmiCode) ar.result;
-
- assertEquals(MmiCode.State.CANCELLED, mmi.getState());
- }
-
- public void testRilHooks() throws Exception {
- //
- // These test cases all assume the RIL OEM hooks
- // just echo back their input
- //
-
- Message msg;
- AsyncResult ar;
-
- // null byte array
-
- mGSMPhone.invokeOemRilRequestRaw(null, mHandler.obtainMessage(EVENT_OEM_RIL_MESSAGE));
-
- msg = mGSMTestHandler.waitForMessage(EVENT_OEM_RIL_MESSAGE);
- assertNotNull("Message Time Out", msg);
-
- ar = ((AsyncResult) msg.obj);
-
- assertNull(ar.result);
- assertNull(ar.exception);
-
- // empty byte array
-
- mGSMPhone.invokeOemRilRequestRaw(new byte[0], mHandler.obtainMessage(EVENT_OEM_RIL_MESSAGE));
-
- msg = mGSMTestHandler.waitForMessage(EVENT_OEM_RIL_MESSAGE);
- assertNotNull("Message Time Out", msg);
-
- ar = ((AsyncResult) msg.obj);
-
- assertEquals(0, ((byte[]) (ar.result)).length);
- assertNull(ar.exception);
-
- // byte array with data
-
- mGSMPhone.invokeOemRilRequestRaw("Hello".getBytes("utf-8"),
- mHandler.obtainMessage(EVENT_OEM_RIL_MESSAGE));
-
- msg = mGSMTestHandler.waitForMessage(EVENT_OEM_RIL_MESSAGE);
- assertNotNull("Message Time Out", msg);
-
- ar = ((AsyncResult) msg.obj);
-
- assertEquals("Hello", new String(((byte[]) (ar.result)), "utf-8"));
- assertNull(ar.exception);
-
- // null strings
-
- mGSMPhone.invokeOemRilRequestStrings(null, mHandler.obtainMessage(EVENT_OEM_RIL_MESSAGE));
-
- msg = mGSMTestHandler.waitForMessage(EVENT_OEM_RIL_MESSAGE);
- assertNotNull("Message Time Out", msg);
-
- ar = ((AsyncResult) msg.obj);
-
- assertNull(ar.result);
- assertNull(ar.exception);
-
- // empty byte array
-
- mGSMPhone.invokeOemRilRequestStrings(new String[0],
- mHandler.obtainMessage(EVENT_OEM_RIL_MESSAGE));
-
- msg = mGSMTestHandler.waitForMessage(EVENT_OEM_RIL_MESSAGE);
- assertNotNull("Message Time Out", msg);
-
- ar = ((AsyncResult) msg.obj);
-
- assertEquals(0, ((String[]) (ar.result)).length);
- assertNull(ar.exception);
-
- // Strings with data
-
- String s[] = new String[1];
-
- s[0] = "Hello";
-
- mGSMPhone.invokeOemRilRequestStrings(s, mHandler.obtainMessage(EVENT_OEM_RIL_MESSAGE));
-
- msg = mGSMTestHandler.waitForMessage(EVENT_OEM_RIL_MESSAGE);
- assertNotNull("Message Time Out", msg);
-
- ar = ((AsyncResult) msg.obj);
-
- assertEquals("Hello", ((String[]) (ar.result))[0]);
- assertEquals(1, ((String[]) (ar.result)).length);
- assertNull(ar.exception);
- }
-
- public void testMmi() throws Exception {
- mRadioControl.setAutoProgressConnectingCall(false);
-
- // "valid" MMI sequences
- runValidMmi("*#67#", false);
- runValidMmi("##43*11#", false);
- runValidMmi("#33*1234*11#", false);
- runValidMmi("*21*6505551234**5#", false);
- runValidMmi("**03**1234*4321*4321#", false);
- // pound string
- runValidMmi("5308234092307540923#", true);
- // short code
- runValidMmi("22", true);
- // as part of call setup
- runValidMmiWithConnect("*31#6505551234");
-
- // invalid MMI sequences
- runNotMmi("6505551234");
- runNotMmi("1234#*12#34566654");
- runNotMmi("*#*#12#*");
- }
-
- private void runValidMmi(String dialString, boolean cancelable) throws CallStateException {
- Connection c = mGSMPhone.dial(dialString);
- assertNull(c);
- Message msg = mGSMTestHandler.waitForMessage(EVENT_MMI_INITIATE);
- assertNotNull("Message Time Out", msg);
- // Should not be cancelable.
- AsyncResult ar = (AsyncResult) msg.obj;
- MmiCode mmi = (MmiCode) ar.result;
- assertEquals(cancelable, mmi.isCancelable());
-
- msg = mGSMTestHandler.waitForMessage(EVENT_MMI_COMPLETE);
- assertNotNull("Message Time Out", msg);
- }
-
- private void runValidMmiWithConnect(String dialString) throws CallStateException {
- mRadioControl.pauseResponses();
-
- Connection c = mGSMPhone.dial(dialString);
- assertNotNull(c);
-
- hangup(c);
- }
-
- private void hangup(Connection cn) throws CallStateException {
- cn.hangup();
-
- mRadioControl.resumeResponses();
- assertNotNull(mGSMTestHandler.waitForMessage(EVENT_DISCONNECT));
-
- }
-
- private void runNotMmi(String dialString) throws CallStateException {
- mRadioControl.pauseResponses();
-
- Connection c = mGSMPhone.dial(dialString);
- assertNotNull(c);
-
- hangup(c);
- }
-}
diff --git a/tests/CoreTests/com/android/internal/telephony/gsm/GSMTestHandler.java b/tests/CoreTests/com/android/internal/telephony/gsm/GSMTestHandler.java
deleted file mode 100644
index fb8a5d9..0000000
--- a/tests/CoreTests/com/android/internal/telephony/gsm/GSMTestHandler.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.telephony.gsm;
-
-import android.content.Context;
-
-import android.os.Handler;
-import android.os.HandlerThread;
-import android.os.Looper;
-import android.os.Message;
-import android.util.Log;
-
-import com.android.internal.telephony.gsm.GSMPhone;
-import com.android.internal.telephony.test.SimulatedCommands;
-import com.android.internal.telephony.TestPhoneNotifier;
-
-/**
- * This class creates a HandlerThread which waits for the various messages.
- */
-public class GSMTestHandler extends HandlerThread implements Handler.Callback {
-
- private Handler mHandler;
- private Message mCurrentMessage;
-
- private Boolean mMsgConsumed;
- private SimulatedCommands sc;
- private GSMPhone mGSMPhone;
- private Context mContext;
-
- private static final int FAIL_TIMEOUT_MILLIS = 5 * 1000;
-
- public GSMTestHandler(Context context) {
- super("GSMPhoneTest");
- mMsgConsumed = false;
- mContext = context;
- }
-
- @Override
- protected void onLooperPrepared() {
- sc = new SimulatedCommands();
- mGSMPhone = new GSMPhone(mContext, sc, new TestPhoneNotifier(), true);
- mHandler = new Handler(getLooper(), this);
- synchronized (this) {
- notifyAll();
- }
- }
-
- public boolean handleMessage(Message msg) {
- synchronized (this) {
- mCurrentMessage = msg;
- this.notifyAll();
- while(!mMsgConsumed) {
- try {
- this.wait();
- } catch (InterruptedException e) {}
- }
- mMsgConsumed = false;
- }
- return true;
- }
-
-
- public void cleanup() {
- Looper looper = getLooper();
- if (looper != null) looper.quit();
- mHandler = null;
- }
-
- public Handler getHandler() {
- return mHandler;
- }
-
- public SimulatedCommands getSimulatedCommands() {
- return sc;
- }
-
- public GSMPhone getGSMPhone() {
- return mGSMPhone;
- }
-
- public Message waitForMessage(int code) {
- Message msg;
- while(true) {
- msg = null;
- synchronized (this) {
- try {
- this.wait(FAIL_TIMEOUT_MILLIS);
- } catch (InterruptedException e) {
- }
-
- // Check if timeout has occurred.
- if (mCurrentMessage != null) {
- // Consume the message
- msg = Message.obtain();
- msg.copyFrom(mCurrentMessage);
- mCurrentMessage = null;
- mMsgConsumed = true;
- this.notifyAll();
- }
- }
- if (msg == null || code == GSMPhoneTest.ANY_MESSAGE || msg.what == code) return msg;
- }
- }
-}
diff --git a/tests/CoreTests/com/android/internal/telephony/gsm/GsmAlphabetTest.java b/tests/CoreTests/com/android/internal/telephony/gsm/GsmAlphabetTest.java
deleted file mode 100644
index f36d96b..0000000
--- a/tests/CoreTests/com/android/internal/telephony/gsm/GsmAlphabetTest.java
+++ /dev/null
@@ -1,309 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.telephony.gsm;
-
-import junit.framework.TestCase;
-
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.test.suitebuilder.annotation.Suppress;
-
-public class GsmAlphabetTest extends TestCase {
-
- private static final String sGsmExtendedChars = "{|}\\[~]\f\u20ac";
-
- @SmallTest
- public void test7bitWithHeader() throws Exception {
- byte[] data = new byte[3];
- data[0] = (byte) 1;
- data[1] = (byte) 2;
- data[2] = (byte) 2;
- SmsHeader header = new SmsHeader();
- header.add(new SmsHeader.Element(SmsHeader.CONCATENATED_8_BIT_REFERENCE, data));
-
- String message = "aaaaaaaaaabbbbbbbbbbcccccccccc";
- byte[] userData = GsmAlphabet.stringToGsm7BitPackedWithHeader(message, header.toByteArray());
- int septetCount = GsmAlphabet.countGsmSeptets(message, false);
- String parsedMessage = GsmAlphabet.gsm7BitPackedToString(
- userData, header.toByteArray().length+1, septetCount, 1);
- assertEquals(message, parsedMessage);
- }
-
- // TODO: This method should *really* be a series of individual test methods.
- @LargeTest
- public void testBasic() throws Exception {
- // '@' maps to char 0
- assertEquals(0, GsmAlphabet.charToGsm('@'));
-
- // `a (a with grave accent) maps to last GSM charater
- assertEquals(0x7f, GsmAlphabet.charToGsm('\u00e0'));
-
- //
- // These are the extended chars
- // They should all return GsmAlphabet.GSM_EXTENDED_ESCAPE
- //
-
- for (int i = 0, s = sGsmExtendedChars.length(); i < s; i++) {
- assertEquals(GsmAlphabet.GSM_EXTENDED_ESCAPE,
- GsmAlphabet.charToGsm(sGsmExtendedChars.charAt(i)));
-
- }
-
- // euro symbol
- assertEquals(GsmAlphabet.GSM_EXTENDED_ESCAPE,
- GsmAlphabet.charToGsm('\u20ac'));
-
- // An unmappable char (the 'cent' char) maps to a space
- assertEquals(GsmAlphabet.charToGsm(' '),
- GsmAlphabet.charToGsm('\u00a2'));
-
- // unmappable = space = 1 septet
- assertEquals(1, GsmAlphabet.countGsmSeptets('\u00a2'));
-
- //
- // Test extended table
- //
-
- for (int i = 0, s = sGsmExtendedChars.length(); i < s; i++) {
- assertEquals(sGsmExtendedChars.charAt(i),
- GsmAlphabet.gsmExtendedToChar(
- GsmAlphabet.charToGsmExtended(sGsmExtendedChars.charAt(i))));
-
- }
-
- // Unmappable extended char
- assertEquals(GsmAlphabet.charToGsm(' '),
- GsmAlphabet.charToGsmExtended('@'));
-
- //
- // gsmToChar()
- //
-
- assertEquals('@', GsmAlphabet.gsmToChar(0));
-
- // `a (a with grave accent) maps to last GSM charater
- assertEquals('\u00e0', GsmAlphabet.gsmToChar(0x7f));
-
- assertEquals('\uffff',
- GsmAlphabet.gsmToChar(GsmAlphabet.GSM_EXTENDED_ESCAPE));
-
- // Out-of-range/unmappable value
- assertEquals(' ', GsmAlphabet.gsmToChar(0x80));
-
- //
- // gsmExtendedToChar()
- //
-
- assertEquals('{', GsmAlphabet.gsmExtendedToChar(0x28));
-
- // No double-escapes
- assertEquals(' ', GsmAlphabet.gsmExtendedToChar(
- GsmAlphabet.GSM_EXTENDED_ESCAPE));
-
- // Unmappable
- assertEquals(' ', GsmAlphabet.gsmExtendedToChar(0));
-
- //
- // stringTo7BitPacked, gsm7BitPackedToString
- //
-
- byte[] packed;
- StringBuilder testString = new StringBuilder(300);
-
- // Check all alignment cases
- for (int i = 0; i < 9; i++, testString.append('@')) {
- packed = GsmAlphabet.stringToGsm7BitPacked(testString.toString());
- assertEquals(testString.toString(),
- GsmAlphabet.gsm7BitPackedToString(packed, 1, 0xff & packed[0]));
- }
-
- // Check full non-extended alphabet
- for (int i = 0; i < 0x80; i++) {
- char c;
-
- if (i == GsmAlphabet.GSM_EXTENDED_ESCAPE) {
- continue;
- }
-
- c = GsmAlphabet.gsmToChar(i);
- testString.append(c);
-
- // These are all non-extended chars, so it should be
- // one septet per char
- assertEquals(1, GsmAlphabet.countGsmSeptets(c));
- }
-
- packed = GsmAlphabet.stringToGsm7BitPacked(testString.toString());
- assertEquals(testString.toString(),
- GsmAlphabet.gsm7BitPackedToString(packed, 1, 0xff & packed[0]));
-
- // Test extended chars too
-
- testString.append(sGsmExtendedChars);
-
- for (int i = 0, s = sGsmExtendedChars.length(); i < s; i++) {
- // These are all extended chars, so it should be
- // two septets per char
- assertEquals(2, GsmAlphabet.countGsmSeptets(sGsmExtendedChars.charAt(i)));
-
- }
-
- packed = GsmAlphabet.stringToGsm7BitPacked(testString.toString());
- assertEquals(testString.toString(),
- GsmAlphabet.gsm7BitPackedToString(packed, 1, 0xff & packed[0]));
-
- // stringTo7BitPacked handles up to 255 septets
-
- testString.setLength(0);
- for (int i = 0; i < 255; i++) {
- testString.append('@');
- }
-
- packed = GsmAlphabet.stringToGsm7BitPacked(testString.toString());
- assertEquals(testString.toString(),
- GsmAlphabet.gsm7BitPackedToString(packed, 1, 0xff & packed[0]));
-
- // > 255 septets throws runtime exception
- testString.append('@');
-
- try {
- GsmAlphabet.stringToGsm7BitPacked(testString.toString());
- fail("expected exception");
- } catch (EncodeException ex) {
- // exception expected
- }
-
- // Try 254 septets with 127 extended chars
-
- testString.setLength(0);
- for (int i = 0; i < (255 / 2); i++) {
- testString.append('{');
- }
-
- packed = GsmAlphabet.stringToGsm7BitPacked(testString.toString());
- assertEquals(testString.toString(),
- GsmAlphabet.gsm7BitPackedToString(packed, 1, 0xff & packed[0]));
-
- // > 255 septets throws runtime exception
- testString.append('{');
-
- try {
- GsmAlphabet.stringToGsm7BitPacked(testString.toString());
- fail("expected exception");
- } catch (EncodeException ex) {
- // exception expected
- }
-
- //
- // 8 bit unpacked format
- //
- // Note: we compare hex strings here
- // because Assert doesnt have array-comparisons
-
- byte unpacked[];
-
- unpacked = SimUtils.hexStringToBytes("566F696365204D61696C");
- assertEquals("Voice Mail",
- GsmAlphabet.gsm8BitUnpackedToString(unpacked, 0, unpacked.length));
-
- assertEquals(SimUtils.bytesToHexString(unpacked),
- SimUtils.bytesToHexString(
- GsmAlphabet.stringToGsm8BitPacked("Voice Mail")));
-
- unpacked = GsmAlphabet.stringToGsm8BitPacked(sGsmExtendedChars);
- // two bytes for every extended char
- assertEquals(2 * sGsmExtendedChars.length(), unpacked.length);
- assertEquals(sGsmExtendedChars,
- GsmAlphabet.gsm8BitUnpackedToString(unpacked, 0, unpacked.length));
-
- // should be two bytes per extended char
- assertEquals(2 * sGsmExtendedChars.length(), unpacked.length);
-
- // Test truncation of unaligned extended chars
- unpacked = new byte[3];
- GsmAlphabet.stringToGsm8BitUnpackedField(sGsmExtendedChars, unpacked,
- 0, unpacked.length);
-
- // Should be one extended char and an 0xff at the end
-
- assertEquals(0xff, 0xff & unpacked[2]);
- assertEquals(sGsmExtendedChars.substring(0, 1),
- GsmAlphabet.gsm8BitUnpackedToString(unpacked, 0, unpacked.length));
-
- // Test truncation of normal chars
- unpacked = new byte[3];
- GsmAlphabet.stringToGsm8BitUnpackedField("abcd", unpacked,
- 0, unpacked.length);
-
- assertEquals("abc",
- GsmAlphabet.gsm8BitUnpackedToString(unpacked, 0, unpacked.length));
-
- // Test truncation of mixed normal and extended chars
- unpacked = new byte[3];
- GsmAlphabet.stringToGsm8BitUnpackedField("a{cd", unpacked,
- 0, unpacked.length);
-
- assertEquals("a{",
- GsmAlphabet.gsm8BitUnpackedToString(unpacked, 0, unpacked.length));
-
- // Test padding after normal char
- unpacked = new byte[3];
- GsmAlphabet.stringToGsm8BitUnpackedField("a", unpacked,
- 0, unpacked.length);
-
- assertEquals("a",
- GsmAlphabet.gsm8BitUnpackedToString(unpacked, 0, unpacked.length));
-
- assertEquals(0xff, 0xff & unpacked[1]);
- assertEquals(0xff, 0xff & unpacked[2]);
-
- // Test malformed input -- escape char followed by end of field
- unpacked[0] = 0;
- unpacked[1] = 0;
- unpacked[2] = GsmAlphabet.GSM_EXTENDED_ESCAPE;
-
- assertEquals("@@",
- GsmAlphabet.gsm8BitUnpackedToString(unpacked, 0, unpacked.length));
-
- // non-zero offset
- assertEquals("@",
- GsmAlphabet.gsm8BitUnpackedToString(unpacked, 1, unpacked.length - 1));
-
- // test non-zero offset
- unpacked[0] = 0;
- GsmAlphabet.stringToGsm8BitUnpackedField("abcd", unpacked,
- 1, unpacked.length - 1);
-
-
- assertEquals(0, unpacked[0]);
-
- assertEquals("ab",
- GsmAlphabet.gsm8BitUnpackedToString(unpacked, 1, unpacked.length - 1));
-
- // test non-zero offset with truncated extended char
- unpacked[0] = 0;
-
- GsmAlphabet.stringToGsm8BitUnpackedField("a{", unpacked,
- 1, unpacked.length - 1);
-
- assertEquals(0, unpacked[0]);
-
- assertEquals("a",
- GsmAlphabet.gsm8BitUnpackedToString(unpacked, 1, unpacked.length - 1));
- }
-}
-
diff --git a/tests/CoreTests/com/android/internal/telephony/gsm/SMSDispatcherTest.java b/tests/CoreTests/com/android/internal/telephony/gsm/SMSDispatcherTest.java
deleted file mode 100644
index 6db230f..0000000
--- a/tests/CoreTests/com/android/internal/telephony/gsm/SMSDispatcherTest.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.telephony.gsm;
-
-import android.test.suitebuilder.annotation.MediumTest;
-import com.android.internal.telephony.TestPhoneNotifier;
-import com.android.internal.telephony.test.SimulatedCommands;
-import com.android.internal.telephony.test.SimulatedRadioControl;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.Suppress;
-import android.telephony.gsm.SmsMessage;
-
-import java.util.Iterator;
-
-/**
- * {@hide}
- */
-public class SMSDispatcherTest extends AndroidTestCase {
- @MediumTest
- public void testCMT1() throws Exception {
- SmsMessage sms;
- SmsHeader header;
- Iterator<SmsHeader.Element> elements;
-
- String[] lines = new String[2];
-
- lines[0] = "+CMT: ,158";
- lines[1] = "07914140279510F6440A8111110301003BF56080426101748A8C0B05040B"
- + "8423F000035502010106276170706C69636174696F6E2F766E642E776170"
- + "2E6D6D732D6D65737361676500AF848D0185B4848C8298524F347839776F"
- + "7547514D4141424C3641414141536741415A4B554141414141008D908918"
- + "802B31363530323438363137392F545950453D504C4D4E008A808E028000"
- + "88058103093A8083687474703A2F2F36";
-
- sms = SmsMessage.newFromCMT(lines);
- header = sms.getUserDataHeader();
- assertNotNull(header);
- assertNotNull(sms.getUserData());
-
- elements = header.getElements().iterator();
- assertNotNull(elements);
- }
-
- @MediumTest
- public void testCMT2() throws Exception {
- SmsMessage sms;
- SmsHeader header;
- Iterator<SmsHeader.Element> elements;
-
- String[] lines = new String[2];
-
-
- lines[0] = "+CMT: ,77";
- lines[1] = "07914140279510F6440A8111110301003BF56080426101848A3B0B05040B8423F"
- + "00003550202362E3130322E3137312E3135302F524F347839776F7547514D4141"
- + "424C3641414141536741415A4B55414141414100";
-
- sms = SmsMessage.newFromCMT(lines);
- header = sms.getUserDataHeader();
- System.out.println("header = " + header);
- assertNotNull(header);
- assertNotNull(sms.getUserData());
-
- elements = header.getElements().iterator();
- assertNotNull(elements);
- }
-
- @MediumTest
- public void testEfRecord() throws Exception {
- SmsMessage sms;
-
- String s = "03029111000c9194981492631000f269206190022000a053e4534a05358bd3"
- + "69f05804259da0219418a40641536a110a0aea408080604028180e888462c1"
- + "50341c0f484432a1542c174c46b3e1743c9f9068442a994ea8946ac56ab95e"
- + "b0986c46abd96eb89c6ec7ebf97ec0a070482c1a8fc8a472c96c3a9fd0a874"
- + "4aad5aafd8ac76cbed7abfe0b0784c2e9bcfe8b47acd6ebbdff0b87c4eafdb"
- + "eff8bc7ecfeffbffffffffffffffffffffffffffff";
- byte[] data = SimUtils.hexStringToBytes(s);
-
- sms = SmsMessage.createFromEfRecord(1, data);
- assertNotNull(sms.getMessageBody());
- }
-}
diff --git a/tests/CoreTests/com/android/internal/telephony/gsm/SimPhoneBookTest.java b/tests/CoreTests/com/android/internal/telephony/gsm/SimPhoneBookTest.java
deleted file mode 100644
index db55bca..0000000
--- a/tests/CoreTests/com/android/internal/telephony/gsm/SimPhoneBookTest.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.telephony.gsm;
-
-import android.os.ServiceManager;
-import android.test.suitebuilder.annotation.Suppress;
-
-import java.util.List;
-
-import junit.framework.TestCase;
-
-@Suppress
-public class SimPhoneBookTest extends TestCase {
-
- public void testBasic() throws Exception {
- ISimPhoneBook simPhoneBook =
- ISimPhoneBook.Stub.asInterface(ServiceManager.getService("simphonebook"));
- assertNotNull(simPhoneBook);
-
- int size[] = simPhoneBook.getAdnRecordsSize(SimConstants.EF_ADN);
- assertNotNull(size);
- assertEquals(3, size.length);
- assertEquals(size[0] * size[2], size[1]);
- assertTrue(size[2] >= 100);
-
- List<AdnRecord> adnRecordList = simPhoneBook.getAdnRecordsInEf(SimConstants.EF_ADN);
- // do it twice cause the second time shall read from cache only
- adnRecordList = simPhoneBook.getAdnRecordsInEf(SimConstants.EF_ADN);
- assertNotNull(adnRecordList);
-
- // Test for phone book update
- int adnIndex, listIndex = 0;
- AdnRecord originalAdn = null;
- // We need to maintain the state of the SIM before and after the test.
- // Since this test doesn't mock the SIM we try to get a valid ADN record,
- // for 3 tries and if this fails, we bail out.
- for (adnIndex = 3 ; adnIndex >= 1; adnIndex--) {
- listIndex = adnIndex - 1; // listIndex is zero based.
- originalAdn = adnRecordList.get(listIndex);
- assertNotNull("Original Adn is Null.", originalAdn);
- assertNotNull("Original Adn alpha tag is null.", originalAdn.getAlphaTag());
- assertNotNull("Original Adn number is null.", originalAdn.getNumber());
-
- if (originalAdn.getNumber().length() > 0 &&
- originalAdn.getAlphaTag().length() > 0) {
- break;
- }
- }
- if (adnIndex == 0) return;
-
- AdnRecord emptyAdn = new AdnRecord("", "");
- AdnRecord firstAdn = new AdnRecord("John", "4085550101");
- AdnRecord secondAdn = new AdnRecord("Andy", "6505550102");
- String pin2 = null;
-
- // udpate by index
- boolean success = simPhoneBook.updateAdnRecordsInEfByIndex(SimConstants.EF_ADN,
- firstAdn.getAlphaTag(), firstAdn.getNumber(), adnIndex, pin2);
- adnRecordList = simPhoneBook.getAdnRecordsInEf(SimConstants.EF_ADN);
- AdnRecord tmpAdn = adnRecordList.get(listIndex);
- assertTrue(success);
- assertTrue(firstAdn.isEqual(tmpAdn));
-
- // replace by search
- success = simPhoneBook.updateAdnRecordsInEfBySearch(SimConstants.EF_ADN,
- firstAdn.getAlphaTag(), firstAdn.getNumber(),
- secondAdn.getAlphaTag(), secondAdn.getNumber(), pin2);
- adnRecordList = simPhoneBook.getAdnRecordsInEf(SimConstants.EF_ADN);
- tmpAdn = adnRecordList.get(listIndex);
- assertTrue(success);
- assertFalse(firstAdn.isEqual(tmpAdn));
- assertTrue(secondAdn.isEqual(tmpAdn));
-
- // erase be search
- success = simPhoneBook.updateAdnRecordsInEfBySearch(SimConstants.EF_ADN,
- secondAdn.getAlphaTag(), secondAdn.getNumber(),
- emptyAdn.getAlphaTag(), emptyAdn.getNumber(), pin2);
- adnRecordList = simPhoneBook.getAdnRecordsInEf(SimConstants.EF_ADN);
- tmpAdn = adnRecordList.get(listIndex);
- assertTrue(success);
- assertTrue(tmpAdn.isEmpty());
-
- // restore the orginial adn
- success = simPhoneBook.updateAdnRecordsInEfByIndex(SimConstants.EF_ADN,
- originalAdn.getAlphaTag(), originalAdn.getNumber(), adnIndex,
- pin2);
- adnRecordList = simPhoneBook.getAdnRecordsInEf(SimConstants.EF_ADN);
- tmpAdn = adnRecordList.get(listIndex);
- assertTrue(success);
- assertTrue(originalAdn.isEqual(tmpAdn));
- }
-}
diff --git a/tests/CoreTests/com/android/internal/telephony/gsm/SimSmsTest.java b/tests/CoreTests/com/android/internal/telephony/gsm/SimSmsTest.java
deleted file mode 100644
index 6ced23d..0000000
--- a/tests/CoreTests/com/android/internal/telephony/gsm/SimSmsTest.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.telephony.gsm;
-
-import android.os.ServiceManager;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.Suppress;
-
-import java.util.List;
-
-import junit.framework.TestCase;
-
-public class SimSmsTest extends TestCase {
-
- @MediumTest
- @Suppress // TODO: suppress this test for now since it doesn't work on the emulator
- public void testBasic() throws Exception {
-
- ISms sms = ISms.Stub.asInterface(ServiceManager.getService("isms"));
- assertNotNull(sms);
-
- List<SmsRawData> records = sms.getAllMessagesFromSimEf();
- assertNotNull(records);
- assertTrue(records.size() >= 0);
-
- int firstNullIndex = -1;
- int firstValidIndex = -1;
- byte[] pdu = null;
- for (int i = 0; i < records.size(); i++) {
- SmsRawData data = records.get(i);
- if (data != null && firstValidIndex == -1) {
- firstValidIndex = i;
- pdu = data.getBytes();
- }
- if (data == null && firstNullIndex == -1) {
- firstNullIndex = i;
- }
- if (firstNullIndex != -1 && firstValidIndex != -1) {
- break;
- }
- }
- if (firstNullIndex == -1 || firstValidIndex == -1)
- return;
- assertNotNull(pdu);
- }
-}
diff --git a/tests/CoreTests/com/android/internal/telephony/gsm/SimUtilsTest.java b/tests/CoreTests/com/android/internal/telephony/gsm/SimUtilsTest.java
deleted file mode 100644
index 3fbc8f5..0000000
--- a/tests/CoreTests/com/android/internal/telephony/gsm/SimUtilsTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.telephony.gsm;
-
-import com.android.internal.telephony.gsm.SimTlv;
-import com.android.internal.telephony.gsm.SimUtils;
-import junit.framework.TestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-
-public class SimUtilsTest extends TestCase {
-
- @SmallTest
- public void testBasic() throws Exception {
- byte[] data, data2;
-
- /*
- * bcdToString()
- */
-
- // An EF[ICCID] record
- data = SimUtils.hexStringToBytes("981062400510444868f2");
- assertEquals("8901260450014484862", SimUtils.bcdToString(data, 0, data.length));
-
- // skip the first and last bytes
- assertEquals("0126045001448486", SimUtils.bcdToString(data, 1, data.length - 2));
-
- // Stops on invalid BCD value
- data = SimUtils.hexStringToBytes("98F062400510444868f2");
- assertEquals("890", SimUtils.bcdToString(data, 0, data.length));
-
- /*
- * bcdByteToInt()
- */
-
- assertEquals(98, SimUtils.bcdByteToInt((byte) 0x89));
-
- // Out of range is treated as 0
- assertEquals(8, SimUtils.bcdByteToInt((byte) 0x8c));
-
- /*
- * adnStringFieldToString()
- */
-
-
- data = SimUtils.hexStringToBytes("00566f696365204d61696c07918150367742f3ffffffffffff");
- // Again, skip prepended 0
- // (this is an EF[ADN] record)
- assertEquals("Voice Mail", SimUtils.adnStringFieldToString(data, 1, data.length - 15));
-
- data = SimUtils.hexStringToBytes("809673539A5764002F004DFFFFFFFFFF");
- // (this is from an EF[ADN] record)
- assertEquals("\u9673\u539A\u5764/M", SimUtils.adnStringFieldToString(data, 0, data.length));
-
- data = SimUtils.hexStringToBytes("810A01566fec6365204de0696cFFFFFF");
- // (this is made up to test since I don't have a real one)
- assertEquals("Vo\u00ECce M\u00E0il", SimUtils.adnStringFieldToString(data, 0, data.length));
-
- data = SimUtils.hexStringToBytes("820505302D82d32d31");
- // Example from 3GPP TS 11.11 V18.1.3.0 annex B
- assertEquals("-\u0532\u0583-1", SimUtils.adnStringFieldToString(data, 0, data.length));
- }
-
-}
-
diff --git a/tests/CoreTests/com/android/internal/util/PredicatesTest.java b/tests/CoreTests/com/android/internal/util/PredicatesTest.java
deleted file mode 100644
index c46ff05..0000000
--- a/tests/CoreTests/com/android/internal/util/PredicatesTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.util;
-
-import junit.framework.TestCase;
-
-import java.util.ArrayList;
-import java.util.Collections;
-
-public class PredicatesTest extends TestCase {
-
- private static final Predicate<Object> TRUE = new Predicate<Object>() {
- public boolean apply(Object o) {
- return true;
- }
- };
-
- private static final Predicate<Object> FALSE = new Predicate<Object>() {
- public boolean apply(Object o) {
- return false;
- }
- };
-
- public void testAndPredicate_AllConditionsTrue() throws Exception {
- assertTrue(Predicates.and(newArrayList(TRUE)).apply(null));
- assertTrue(Predicates.and(newArrayList(TRUE, TRUE)).apply(null));
- }
-
- public void testAndPredicate_AtLeastOneConditionIsFalse() throws Exception {
- assertFalse(Predicates.and(newArrayList(FALSE, TRUE, TRUE)).apply(null));
- assertFalse(Predicates.and(newArrayList(TRUE, FALSE, TRUE)).apply(null));
- assertFalse(Predicates.and(newArrayList(TRUE, TRUE, FALSE)).apply(null));
- }
-
- public void testOrPredicate_AllConditionsTrue() throws Exception {
- assertTrue(Predicates.or(newArrayList(TRUE, TRUE, TRUE)).apply(null));
- }
-
- public void testOrPredicate_AllConditionsFalse() throws Exception {
- assertFalse(Predicates.or(newArrayList(FALSE, FALSE, FALSE)).apply(null));
- }
-
- public void testOrPredicate_AtLeastOneConditionIsTrue() throws Exception {
- assertTrue(Predicates.or(newArrayList(TRUE, FALSE, FALSE)).apply(null));
- assertTrue(Predicates.or(newArrayList(FALSE, TRUE, FALSE)).apply(null));
- assertTrue(Predicates.or(newArrayList(FALSE, FALSE, TRUE)).apply(null));
- }
-
- public void testNotPredicate() throws Exception {
- assertTrue(Predicates.not(FALSE).apply(null));
- assertFalse(Predicates.not(TRUE).apply(null));
- }
-
- private static <E> ArrayList<E> newArrayList(E... elements) {
- ArrayList<E> list = new ArrayList<E>();
- Collections.addAll(list, elements);
- return list;
- }
-
-}
diff --git a/tests/CoreTests/run_core_test.sh b/tests/CoreTests/run_core_test.sh
deleted file mode 100755
index 1fc3348..0000000
--- a/tests/CoreTests/run_core_test.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-framework=/system/framework
-bpath=$framework/core.jar:$framework/ext.jar:$framework/framework.jar:$framework/android.test.runner.jar
-adb shell exec dalvikvm -Xbootclasspath:$bpath -cp system/app/CoreTests.apk \
- com.android.internal.util.WithFramework junit.textui.TestRunner $*
diff --git a/tests/CoreTests/run_junit.sh b/tests/CoreTests/run_junit.sh
deleted file mode 100755
index b77794d..0000000
--- a/tests/CoreTests/run_junit.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-# runs unit tests over adb shell using dalvikvm. The value added is setting the classpath for you
-# and pointing to the junit textui test runner.
-#
-# the normal usage might be:
-# (make MoreJavaTests)
-# $ adb sync
-# $ java/tests/run_junit.sh android.util.MyTest
-
-adb shell exec dalvikvm -cp system/app/MoreTests.apk junit.textui.TestRunner $*
diff --git a/tests/DpiTest/Android.mk b/tests/DpiTest/Android.mk
deleted file mode 100644
index 3596c39..0000000
--- a/tests/DpiTest/Android.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := $(call all-subdir-java-files)
-
-LOCAL_PACKAGE_NAME := DensityTest
-
-LOCAL_MODULE_TAGS := tests
-
-include $(BUILD_PACKAGE)
diff --git a/tests/DpiTest/AndroidManifest.xml b/tests/DpiTest/AndroidManifest.xml
deleted file mode 100644
index f71cff2..0000000
--- a/tests/DpiTest/AndroidManifest.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.google.android.test.dpi">
- <application android:label="DpiTest">
- <activity android:name="DpiTestActivity" android:label="DpiTest">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.DEFAULT" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
-</manifest>
diff --git a/tests/DpiTest/res/drawable-120dpi/logo120dpi.png b/tests/DpiTest/res/drawable-120dpi/logo120dpi.png
deleted file mode 100644
index 46bbd5b..0000000
--- a/tests/DpiTest/res/drawable-120dpi/logo120dpi.png
+++ /dev/null
Binary files differ
diff --git a/tests/DpiTest/res/drawable-240dpi/logo240dpi.png b/tests/DpiTest/res/drawable-240dpi/logo240dpi.png
deleted file mode 100644
index 4d717a8..0000000
--- a/tests/DpiTest/res/drawable-240dpi/logo240dpi.png
+++ /dev/null
Binary files differ
diff --git a/tests/DpiTest/res/drawable/logo160dpi.png b/tests/DpiTest/res/drawable/logo160dpi.png
deleted file mode 100644
index c23b2ce..0000000
--- a/tests/DpiTest/res/drawable/logo160dpi.png
+++ /dev/null
Binary files differ
diff --git a/tests/DpiTest/src/com/google/android/test/dpi/DpiTestActivity.java b/tests/DpiTest/src/com/google/android/test/dpi/DpiTestActivity.java
deleted file mode 100644
index 3759622..0000000
--- a/tests/DpiTest/src/com/google/android/test/dpi/DpiTestActivity.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.google.android.test.dpi;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.graphics.BitmapFactory;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
-import android.graphics.drawable.BitmapDrawable;
-import android.graphics.drawable.Drawable;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-import android.widget.ScrollView;
-import android.view.View;
-import android.content.Context;
-
-public class DpiTestActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- LinearLayout root = new LinearLayout(this);
- root.setOrientation(LinearLayout.VERTICAL);
-
- LinearLayout layout = new LinearLayout(this);
- addBitmapDrawable(layout, R.drawable.logo120dpi, true);
- addBitmapDrawable(layout, R.drawable.logo160dpi, true);
- addBitmapDrawable(layout, R.drawable.logo240dpi, true);
- addLabelToRoot(root, "Prescaled bitmap in drawable");
- addChildToRoot(root, layout);
-
- layout = new LinearLayout(this);
- addBitmapDrawable(layout, R.drawable.logo120dpi, false);
- addBitmapDrawable(layout, R.drawable.logo160dpi, false);
- addBitmapDrawable(layout, R.drawable.logo240dpi, false);
- addLabelToRoot(root, "Autoscaled bitmap in drawable");
- addChildToRoot(root, layout);
-
- layout = new LinearLayout(this);
- addResourceDrawable(layout, R.drawable.logo120dpi);
- addResourceDrawable(layout, R.drawable.logo160dpi);
- addResourceDrawable(layout, R.drawable.logo240dpi);
- addLabelToRoot(root, "Prescaled resource drawable");
- addChildToRoot(root, layout);
-
- layout = new LinearLayout(this);
- addCanvasBitmap(layout, R.drawable.logo120dpi, true);
- addCanvasBitmap(layout, R.drawable.logo160dpi, true);
- addCanvasBitmap(layout, R.drawable.logo240dpi, true);
- addLabelToRoot(root, "Prescaled bitmap");
- addChildToRoot(root, layout);
-
- layout = new LinearLayout(this);
- addCanvasBitmap(layout, R.drawable.logo120dpi, false);
- addCanvasBitmap(layout, R.drawable.logo160dpi, false);
- addCanvasBitmap(layout, R.drawable.logo240dpi, false);
- addLabelToRoot(root, "Autoscaled bitmap");
- addChildToRoot(root, layout);
-
- setContentView(scrollWrap(root));
- }
-
- private View scrollWrap(View view) {
- ScrollView scroller = new ScrollView(this);
- scroller.addView(view, new ScrollView.LayoutParams(ScrollView.LayoutParams.FILL_PARENT,
- ScrollView.LayoutParams.FILL_PARENT));
- return scroller;
- }
-
- private void addLabelToRoot(LinearLayout root, String text) {
- TextView label = new TextView(this);
- label.setText(text);
- root.addView(label, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,
- LinearLayout.LayoutParams.WRAP_CONTENT));
- }
-
- private void addChildToRoot(LinearLayout root, LinearLayout layout) {
- root.addView(layout, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,
- LinearLayout.LayoutParams.WRAP_CONTENT));
- }
-
- private void addBitmapDrawable(LinearLayout layout, int resource, boolean scale) {
- Bitmap bitmap;
- bitmap = loadAndPrintDpi(resource, scale);
-
- View view = new View(this);
-
- final BitmapDrawable d = new BitmapDrawable(bitmap);
- if (!scale) d.setDensityScale(getResources().getDisplayMetrics());
- view.setBackgroundDrawable(d);
-
- view.setLayoutParams(new LinearLayout.LayoutParams(d.getIntrinsicWidth(),
- d.getIntrinsicHeight()));
- layout.addView(view);
- }
-
- private void addResourceDrawable(LinearLayout layout, int resource) {
- View view = new View(this);
-
- final Drawable d = getResources().getDrawable(resource);
- view.setBackgroundDrawable(d);
-
- view.setLayoutParams(new LinearLayout.LayoutParams(d.getIntrinsicWidth(),
- d.getIntrinsicHeight()));
- layout.addView(view);
- }
-
- private void addCanvasBitmap(LinearLayout layout, int resource, boolean scale) {
- Bitmap bitmap;
- bitmap = loadAndPrintDpi(resource, scale);
-
- ScaledBitmapView view = new ScaledBitmapView(this, bitmap);
-
- view.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
- LinearLayout.LayoutParams.WRAP_CONTENT));
- layout.addView(view);
- }
-
- private Bitmap loadAndPrintDpi(int id, boolean scale) {
- Bitmap bitmap;
- if (scale) {
- bitmap = BitmapFactory.decodeResource(getResources(), id);
- } else {
- BitmapFactory.Options opts = new BitmapFactory.Options();
- opts.inScaled = false;
- bitmap = BitmapFactory.decodeResource(getResources(), id, opts);
- }
- return bitmap;
- }
-
- private class ScaledBitmapView extends View {
- private Bitmap mBitmap;
-
- public ScaledBitmapView(Context context, Bitmap bitmap) {
- super(context);
- mBitmap = bitmap;
- }
-
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
- setMeasuredDimension(mBitmap.getScaledWidth(), mBitmap.getScaledHeight());
- }
-
- @Override
- protected void onDraw(Canvas canvas) {
- super.onDraw(canvas);
-
- canvas.drawBitmap(mBitmap, 0.0f, 0.0f, null);
- }
- }
-}
diff --git a/tests/DumpRenderTree/Android.mk b/tests/DumpRenderTree/Android.mk
deleted file mode 100644
index 505a436..0000000
--- a/tests/DumpRenderTree/Android.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := tests
-
-LOCAL_SRC_FILES := $(call all-subdir-java-files)
-
-LOCAL_JAVA_LIBRARIES := android.test.runner
-
-LOCAL_PACKAGE_NAME := DumpRenderTree
-
-include $(BUILD_PACKAGE)
diff --git a/tests/DumpRenderTree/AndroidManifest.xml b/tests/DumpRenderTree/AndroidManifest.xml
deleted file mode 100644
index 8e06cc8..0000000
--- a/tests/DumpRenderTree/AndroidManifest.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.dumprendertree">
- <application android:name="HTMLHostApp">
- <uses-library android:name="android.test.runner" />
- <activity android:name="Menu" android:label="1 Dump Render Tree">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.TEST" />
- </intent-filter>
- </activity>
- <activity android:name="HTMLHostActivity">
- </activity>
- </application>
-
- <instrumentation android:name=".LayoutTestsAutoRunner"
- android:targetPackage="com.android.dumprendertree"
- android:label="Layout test automation runner"
- />
-</manifest>
diff --git a/tests/DumpRenderTree/compare_layout_results.py b/tests/DumpRenderTree/compare_layout_results.py
deleted file mode 100644
index c4285f1..0000000
--- a/tests/DumpRenderTree/compare_layout_results.py
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/usr/bin/python
-"""
-Compares results of two webkit layout test runs and writes
-results to a file.
-"""
-
-import optparse
-import os
-import sys
-
-def DiffResults(marker, new_results, old_results, diff_results, strip_reason):
- """ Given two result files, generate diff and
- write to diff_results file. All arguments are absolute paths
- to files.
- """
- old_file = open(old_results, "r")
- new_file = open(new_results, "r")
- diff_file = open(diff_results, "a")
-
- # Read lines from each file
- ndict = new_file.readlines()
- cdict = old_file.readlines()
-
- # Write marker to diff file
- diff_file.writelines(marker + "\n")
- diff_file.writelines("###############\n")
-
- # Strip reason from result lines
- if strip_reason is True:
- for i in range(0, len(ndict)):
- ndict[i] = ndict[i].split(' ')[0] + "\n"
- for i in range(0, len(cdict)):
- cdict[i] = cdict[i].split(' ')[0] + "\n"
-
- # Find results in new_results missing in old_results
- new_count=0
- for line in ndict:
- if line not in cdict:
- diff_file.writelines("+ " + line)
- new_count += 1
-
- # Find results in old_results missing in new_results
- missing_count=0
- for line in cdict:
- if line not in ndict:
- diff_file.writelines("- " + line)
- missing_count += 1
-
- print marker + " >>> added " + str(new_count) + " tests, removed " + str(missing_count) + " tests"
-
- diff_file.writelines("\n\n")
-
- old_file.close()
- new_file.close()
- diff_file.close()
- return
-
-def main(options, args):
- results_dir = os.path.abspath(options.results_directory)
- ref_dir = options.ref_directory
-
- # if ref_dir is null, cannonify ref_dir to the script dir.
- if not ref_dir:
- script_self = sys.argv[0]
- script_dir = os.path.dirname(script_self)
- ref_dir = os.path.join(script_dir, "results")
-
- ref_dir = os.path.abspath(ref_dir)
-
- diff_result = os.path.join(results_dir, "layout_tests_diff.txt")
- if os.path.exists(diff_result):
- os.remove(diff_result)
-
- files=["passed", "failed", "nontext", "crashed"]
- for f in files:
- result_file_name = "layout_tests_" + f + ".txt"
- DiffResults(f, os.path.join(results_dir, result_file_name),
- os.path.join(ref_dir, result_file_name), diff_result,
- f == "failed")
-
-if '__main__' == __name__:
- option_parser = optparse.OptionParser()
- option_parser.add_option("", "--ref-directory",
- default=None,
- dest="ref_directory",
- help="directory name under which results are stored.")
-
- option_parser.add_option("", "--results-directory",
- default="layout-test-results/",
- dest="results_directory",
- help="directory name under which results are stored.")
- options, args = option_parser.parse_args()
- main(options, args)
diff --git a/tests/DumpRenderTree/results/layout_tests_crashed.txt b/tests/DumpRenderTree/results/layout_tests_crashed.txt
deleted file mode 100644
index 1859f07..0000000
--- a/tests/DumpRenderTree/results/layout_tests_crashed.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-/sdcard/android/layout_tests/fast/js/regexp-charclass-crash.html
-/sdcard/android/layout_tests/fast/canvas/gradient-add-second-start-end-stop.html
diff --git a/tests/DumpRenderTree/results/layout_tests_failed.txt b/tests/DumpRenderTree/results/layout_tests_failed.txt
deleted file mode 100644
index 5a20b52..0000000
--- a/tests/DumpRenderTree/results/layout_tests_failed.txt
+++ /dev/null
@@ -1,283 +0,0 @@
-/sdcard/android/layout_tests/fast/text/zero-width-characters.html : different length
-/sdcard/android/layout_tests/fast/text/reset-drag-on-mouse-down.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/text/plain-text-line-breaks.html : different length
-/sdcard/android/layout_tests/fast/replaced/table-percent-height.html : different length
-/sdcard/android/layout_tests/fast/replaced/image-map.html : different length
-/sdcard/android/layout_tests/fast/replaced/image-map-bug16782.html : different length
-/sdcard/android/layout_tests/fast/parser/xml-declaration-missing-ending-mark.html : different length
-/sdcard/android/layout_tests/fast/parser/tabindex-parsing.html : different length
-/sdcard/android/layout_tests/fast/parser/script-tag-with-trailing-slash.html : different length
-/sdcard/android/layout_tests/fast/parser/external-entities.xml : different length
-/sdcard/android/layout_tests/fast/parser/entity-end-script-tag.html : different length
-/sdcard/android/layout_tests/fast/parser/entity-comment-in-iframe.html : @offset: 0
-/sdcard/android/layout_tests/fast/parser/comment-in-iframe.html : @offset: 0
-/sdcard/android/layout_tests/fast/overflow/scroll-vertical-not-horizontal.html : different length
-/sdcard/android/layout_tests/fast/loader/xmlhttprequest-missing-file-exception.html : different length
-/sdcard/android/layout_tests/fast/loader/stop-provisional-loads.html : different length
-/sdcard/android/layout_tests/fast/loader/plain-text-document.html : different length
-/sdcard/android/layout_tests/fast/loader/opaque-base-url.html : @offset: 129
-/sdcard/android/layout_tests/fast/loader/onunload-form-submit-crash.html : different length
-/sdcard/android/layout_tests/fast/loader/onunload-form-submit-crash-2.html : different length
-/sdcard/android/layout_tests/fast/loader/local-JavaScript-from-local.html : different length
-/sdcard/android/layout_tests/fast/loader/local-image-from-local.html : different length
-/sdcard/android/layout_tests/fast/loader/local-iFrame-source-from-local.html : different length
-/sdcard/android/layout_tests/fast/loader/local-CSS-from-local.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/loader/data-url-encoding-svg.html : different length
-/sdcard/android/layout_tests/fast/loader/cancel-load-during-port-block-timer.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/js/var-shadows-arg-gc-crash.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/js/try-catch-crash.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/js/toString-and-valueOf-override.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/js/recursion-limit-equal.html : different length
-/sdcard/android/layout_tests/fast/js/navigator-mimeTypes-length.html : different length
-/sdcard/android/layout_tests/fast/js/math-transforms.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/js/global-recursion-on-full-stack.html : different length
-/sdcard/android/layout_tests/fast/js/global-constructors.html : different length
-/sdcard/android/layout_tests/fast/js/exceptions-thrown-in-callbacks.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/js/exception-sequencing.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/js/exception-sequencing-binops2.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/js/exception-sequencing-binops.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/js/exception-codegen-crash.html : different length
-/sdcard/android/layout_tests/fast/js/duplicate-param-gc-crash.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/html/tab-order.html : @offset: 246
-/sdcard/android/layout_tests/fast/history/subframe-is-visited.html : different length
-/sdcard/android/layout_tests/fast/history/go-back-to-changed-name.html : different length
-/sdcard/android/layout_tests/fast/frames/viewsource-empty-attribute-value.html : different length
-/sdcard/android/layout_tests/fast/frames/removal-before-attach-crash.html : different length
-/sdcard/android/layout_tests/fast/frames/iframe-window-focus.html : different length
-/sdcard/android/layout_tests/fast/frames/frameElement-widthheight.html : different length
-/sdcard/android/layout_tests/fast/frames/frame-js-url-clientWidth.html : different length
-/sdcard/android/layout_tests/fast/frames/frame-base-url.html : different length
-/sdcard/android/layout_tests/fast/frames/empty-frame-src.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/forms/mailto/post-text-plain.html : different length
-/sdcard/android/layout_tests/fast/forms/mailto/post-text-plain-with-accept-charset.html : different length
-/sdcard/android/layout_tests/fast/forms/mailto/post-multiple-items.html : different length
-/sdcard/android/layout_tests/fast/forms/mailto/post-multiple-items-x-www-form-urlencoded.html : different length
-/sdcard/android/layout_tests/fast/forms/mailto/post-multiple-items-text-plain.html : different length
-/sdcard/android/layout_tests/fast/forms/mailto/post-multiple-items-multipart-form-data.html : different length
-/sdcard/android/layout_tests/fast/forms/mailto/post-append-query.html : different length
-/sdcard/android/layout_tests/fast/forms/mailto/get-overwrite-query.html : different length
-/sdcard/android/layout_tests/fast/forms/mailto/get-non-ascii.html : different length
-/sdcard/android/layout_tests/fast/forms/mailto/get-non-ascii-text-plain.html : different length
-/sdcard/android/layout_tests/fast/forms/mailto/get-non-ascii-text-plain-latin-1.html : different length
-/sdcard/android/layout_tests/fast/forms/mailto/get-non-ascii-always-utf-8.html : different length
-/sdcard/android/layout_tests/fast/forms/mailto/get-multiple-items.html : different length
-/sdcard/android/layout_tests/fast/forms/mailto/get-multiple-items-x-www-form-urlencoded.html : different length
-/sdcard/android/layout_tests/fast/forms/mailto/get-multiple-items-text-plain.html : different length
-/sdcard/android/layout_tests/fast/forms/mailto/advanced-put.html : different length
-/sdcard/android/layout_tests/fast/forms/mailto/advanced-get.html : different length
-/sdcard/android/layout_tests/fast/forms/textfield-to-password-on-focus.html : different length
-/sdcard/android/layout_tests/fast/forms/textfield-onchange-deletion.html : different length
-/sdcard/android/layout_tests/fast/forms/textfield-inside-anchor.html : different length
-/sdcard/android/layout_tests/fast/forms/textarea-type-spaces.html : different length
-/sdcard/android/layout_tests/fast/forms/textarea-scrolled-endline-caret.html : different length
-/sdcard/android/layout_tests/fast/forms/textarea-paste-newline.html : different length
-/sdcard/android/layout_tests/fast/forms/textarea-no-scroll-on-blur.html : @offset: 79
-/sdcard/android/layout_tests/fast/forms/textarea-initial-caret-position.html : different length
-/sdcard/android/layout_tests/fast/forms/textarea-hard-linewrap.html : different length
-/sdcard/android/layout_tests/fast/forms/textarea-default-value-leading-newline.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/forms/textarea-appearance-wrap.html : different length
-/sdcard/android/layout_tests/fast/forms/text-field-setvalue-crash.html : different length
-/sdcard/android/layout_tests/fast/forms/stuff-on-my-optgroup.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/forms/slider-onchange-event.html : different length
-/sdcard/android/layout_tests/fast/forms/slider-mouse-events.html : different length
-/sdcard/android/layout_tests/fast/forms/selection-functions.html : @offset: 306
-/sdcard/android/layout_tests/fast/forms/select-type-ahead-non-latin.html : different length
-/sdcard/android/layout_tests/fast/forms/select-enter-key.html : different length
-/sdcard/android/layout_tests/fast/forms/select-empty-list.html : different length
-/sdcard/android/layout_tests/fast/forms/select-double-onchange.html : different length
-/sdcard/android/layout_tests/fast/forms/select-accesskey.html : different length
-/sdcard/android/layout_tests/fast/forms/search-hidden-cancel-button.html : different length
-/sdcard/android/layout_tests/fast/forms/search-event-delay.html : different length
-/sdcard/android/layout_tests/fast/forms/search-click-in-placeholder.html : @offset: 1
-/sdcard/android/layout_tests/fast/forms/search-cancel-button-mouseup.html : different length
-/sdcard/android/layout_tests/fast/forms/plaintext-mode-1.html : different length
-/sdcard/android/layout_tests/fast/forms/password-doubleclick-selection.html : different length
-/sdcard/android/layout_tests/fast/forms/onselect-textfield.html : different length
-/sdcard/android/layout_tests/fast/forms/onselect-textarea.html : different length
-/sdcard/android/layout_tests/fast/forms/onselect-selectall.html : different length
-/sdcard/android/layout_tests/fast/forms/onchange-enter-submit.html : different length
-/sdcard/android/layout_tests/fast/forms/listbox-typeahead-scroll.html : different length
-/sdcard/android/layout_tests/fast/forms/listbox-selection.html : different length
-/sdcard/android/layout_tests/fast/forms/listbox-select-all.html : different length
-/sdcard/android/layout_tests/fast/forms/listbox-onchange.html : different length
-/sdcard/android/layout_tests/fast/forms/legend-access-key.html : different length
-/sdcard/android/layout_tests/fast/forms/input-select-on-click.html : different length
-/sdcard/android/layout_tests/fast/forms/input-radio-checked-tab.html : @offset: 115
-/sdcard/android/layout_tests/fast/forms/input-maxlength.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/forms/input-implicit-length-limit.html : different length
-/sdcard/android/layout_tests/fast/forms/input-first-letter.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/forms/input-delete.html : different length
-/sdcard/android/layout_tests/fast/forms/form-element-geometry.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/forms/form-collection-lookup.html : different length
-/sdcard/android/layout_tests/fast/forms/form-and-frame-interaction-retains-values.html : different length
-/sdcard/android/layout_tests/fast/forms/focus2.html : different length
-/sdcard/android/layout_tests/fast/forms/focus.html : different length
-/sdcard/android/layout_tests/fast/forms/focus-selection-textarea.html : different length
-/sdcard/android/layout_tests/fast/forms/focus-selection-input.html : different length
-/sdcard/android/layout_tests/fast/forms/focus-control-to-page.html : different length
-/sdcard/android/layout_tests/fast/forms/enter-clicks-buttons.html : different length
-/sdcard/android/layout_tests/fast/forms/drag-out-of-textarea.html : different length
-/sdcard/android/layout_tests/fast/forms/drag-into-textarea.html : different length
-/sdcard/android/layout_tests/fast/forms/check-box-enter-key.html : different length
-/sdcard/android/layout_tests/fast/forms/button-state-restore.html : different length
-/sdcard/android/layout_tests/fast/forms/button-spacebar-click.html : different length
-/sdcard/android/layout_tests/fast/forms/button-enter-click.html : different length
-/sdcard/android/layout_tests/fast/forms/autofocus-opera-003.html : @offset: 51
-/sdcard/android/layout_tests/fast/forms/access-key.html : different length
-/sdcard/android/layout_tests/fast/events/window-events-capture.html : different length
-/sdcard/android/layout_tests/fast/events/window-events-bubble2.html : different length
-/sdcard/android/layout_tests/fast/events/window-events-bubble.html : different length
-/sdcard/android/layout_tests/fast/events/tabindex-focus-chain.html : @offset: 0
-/sdcard/android/layout_tests/fast/events/scrollbar-double-click.html : different length
-/sdcard/android/layout_tests/fast/events/scroll-to-anchor-in-overflow-hidden.html : different length
-/sdcard/android/layout_tests/fast/events/scroll-event-does-not-bubble.html : different length
-/sdcard/android/layout_tests/fast/events/related-target.html : different length
-/sdcard/android/layout_tests/fast/events/option-tab.html : different length
-/sdcard/android/layout_tests/fast/events/open-window-from-another-frame.html : different length
-/sdcard/android/layout_tests/fast/events/onunload.html : different length
-/sdcard/android/layout_tests/fast/events/onunload-window-property.html : different length
-/sdcard/android/layout_tests/fast/events/onunload-not-on-body.html : different length
-/sdcard/android/layout_tests/fast/events/onunload-clears-onbeforeunload.html : different length
-/sdcard/android/layout_tests/fast/events/onsearch-enter.html : different length
-/sdcard/android/layout_tests/fast/events/onload-webkit-before-webcore.html : @offset: 105
-/sdcard/android/layout_tests/fast/events/ondragenter.html : different length
-/sdcard/android/layout_tests/fast/events/onclick-list-marker.html : different length
-/sdcard/android/layout_tests/fast/events/onchange-textfield.html : different length
-/sdcard/android/layout_tests/fast/events/onchange-select-popup.html : different length
-/sdcard/android/layout_tests/fast/events/onchange-searchfield.html : different length
-/sdcard/android/layout_tests/fast/events/onchange-passwordfield.html : different length
-/sdcard/android/layout_tests/fast/events/onchange-click-hang.html : different length
-/sdcard/android/layout_tests/fast/events/mouseup-outside-document.html : different length
-/sdcard/android/layout_tests/fast/events/mouseup-from-button2.html : different length
-/sdcard/android/layout_tests/fast/events/mouseover-mouseout2.html : different length
-/sdcard/android/layout_tests/fast/events/mouseover-mouseout.html : different length
-/sdcard/android/layout_tests/fast/events/mouseout-on-window.html : different length
-/sdcard/android/layout_tests/fast/events/mouseout-dead-subframe.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/events/mousemove-after-drag-over-scrollbar.html : different length
-/sdcard/android/layout_tests/fast/events/mouseclick-target-and-positioning.html : different length
-/sdcard/android/layout_tests/fast/events/mouse-click-events.html : different length
-/sdcard/android/layout_tests/fast/events/keypress-insert-tab.html : @offset: 85
-/sdcard/android/layout_tests/fast/events/keypress-focus-change.html : different length
-/sdcard/android/layout_tests/fast/events/keydown-keypress-preventDefault.html : @offset: 228
-/sdcard/android/layout_tests/fast/events/keydown-keypress-focus-change.html : @offset: 172
-/sdcard/android/layout_tests/fast/events/key-events-in-input-text.html : different length
-/sdcard/android/layout_tests/fast/events/key-events-in-input-button.html : different length
-/sdcard/android/layout_tests/fast/events/js-keyboard-event-creation.html : different length
-/sdcard/android/layout_tests/fast/events/input-image-scrolled-x-y.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/events/iframe-object-onload.html : different length
-/sdcard/android/layout_tests/fast/events/frame-tab-focus.html : different length
-/sdcard/android/layout_tests/fast/events/frame-programmatic-focus.html : different length
-/sdcard/android/layout_tests/fast/events/frame-click-focus.html : different length
-/sdcard/android/layout_tests/fast/events/fire-scroll-event.html : different length
-/sdcard/android/layout_tests/fast/events/event-view-toString.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/events/drag-outside-window.html : @offset: 20
-/sdcard/android/layout_tests/fast/events/drag-in-frames.html : different length
-/sdcard/android/layout_tests/fast/events/dblclick-addEventListener.html : different length
-/sdcard/android/layout_tests/fast/events/contextmenu-scrolled-page-with-frame.html : different length
-/sdcard/android/layout_tests/fast/events/content-changed-during-drop.html : different length
-/sdcard/android/layout_tests/fast/events/click-count.html : different length
-/sdcard/android/layout_tests/fast/events/capture-on-target.html : different length
-/sdcard/android/layout_tests/fast/events/autoscroll-with-non-scrollable-parent.html : different length
-/sdcard/android/layout_tests/fast/events/autoscroll-nonscrollable-iframe-in-scrollable-div.html : different length
-/sdcard/android/layout_tests/fast/events/autoscroll-in-textfield.html : different length
-/sdcard/android/layout_tests/fast/events/arrow-navigation.html : different length
-/sdcard/android/layout_tests/fast/events/arrow-keys-on-body.html : different length
-/sdcard/android/layout_tests/fast/events/anchor-image-scrolled-x-y.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/events/access-key-self-destruct.html : different length
-/sdcard/android/layout_tests/fast/encoding/xml-utf-8-default.xml : different length
-/sdcard/android/layout_tests/fast/encoding/url-host-name-non-ascii.html : different length
-/sdcard/android/layout_tests/fast/encoding/percent-escaping.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/encoding/mailto-always-utf-8.html : different length
-/sdcard/android/layout_tests/fast/encoding/invalid-xml.html : different length
-/sdcard/android/layout_tests/fast/encoding/idn-security.html : different length
-/sdcard/android/layout_tests/fast/encoding/frame-default-enc.html : @offset: 0
-/sdcard/android/layout_tests/fast/encoding/charset-koi8-u.html : @offset: 147
-/sdcard/android/layout_tests/fast/encoding/char-encoding.html : different length
-/sdcard/android/layout_tests/fast/encoding/char-decoding.html : different length
-/sdcard/android/layout_tests/fast/dynamic/paused-event-dispatch.html : @offset: 117
-/sdcard/android/layout_tests/fast/dom/Window/window-xy-properties.html : different length
-/sdcard/android/layout_tests/fast/dom/Window/window-scroll-arguments.html : different length
-/sdcard/android/layout_tests/fast/dom/Window/window-screen-properties.html : @offset: 65
-/sdcard/android/layout_tests/fast/dom/Window/window-resize.html : different length
-/sdcard/android/layout_tests/fast/dom/Window/window-resize-and-move-arguments.html : different length
-/sdcard/android/layout_tests/fast/dom/Window/window-property-clearing.html : different length
-/sdcard/android/layout_tests/fast/dom/Window/window-properties.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/dom/Window/window-open-pending-url.html : different length
-/sdcard/android/layout_tests/fast/dom/Window/window-onFocus.html : different length
-/sdcard/android/layout_tests/fast/dom/Window/window-function-name-getter-precedence.html : different length
-/sdcard/android/layout_tests/fast/dom/Window/window-early-properties.html : different length
-/sdcard/android/layout_tests/fast/dom/Window/setting-properties-on-closed-window.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/dom/Window/redirect-with-timer.html : different length
-/sdcard/android/layout_tests/fast/dom/Window/Plug-ins.html : different length
-/sdcard/android/layout_tests/fast/dom/Window/orphaned-frame-access.html : different length
-/sdcard/android/layout_tests/fast/dom/Window/new-window-opener.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/dom/Window/get-set-properties.html : @offset: 0
-/sdcard/android/layout_tests/fast/dom/Window/dom-access-from-closure-window.html : different length
-/sdcard/android/layout_tests/fast/dom/Window/dom-access-from-closure-iframe.html : different length
-/sdcard/android/layout_tests/fast/dom/Window/console-functions.html : different length
-/sdcard/android/layout_tests/fast/dom/Window/closure-access-after-navigation-window.html : different length
-/sdcard/android/layout_tests/fast/dom/Window/clear-timeout.html : different length
-/sdcard/android/layout_tests/fast/dom/StyleSheet/ownerNode-lifetime-2.html : different length
-/sdcard/android/layout_tests/fast/dom/HTMLSelectElement/listbox-select-reset.html : different length
-/sdcard/android/layout_tests/fast/dom/HTMLObjectElement/object-as-frame.html : different length
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/hasFocus.html : different length
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/activeElement.html : different length
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/011.xml : different length
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/010.xml : different length
-/sdcard/android/layout_tests/fast/dom/Element/offsetLeft-offsetTop-body-quirk.html : different length
-/sdcard/android/layout_tests/fast/dom/DOMException/XPathException.html : different length
-/sdcard/android/layout_tests/fast/dom/wrapper-classes.html : different length
-/sdcard/android/layout_tests/fast/dom/tabindex-clamp.html : different length
-/sdcard/android/layout_tests/fast/dom/simultaneouslyRegsiteredTimerFireOrder.html : different length
-/sdcard/android/layout_tests/fast/dom/set-frame-src-while-running-script-in-frame.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/dom/select-selectedIndex.html : different length
-/sdcard/android/layout_tests/fast/dom/open-and-close-by-DOM.html : different length
-/sdcard/android/layout_tests/fast/dom/onerror-img.html : different length
-/sdcard/android/layout_tests/fast/dom/object-plugin-hides-properties.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/dom/object-embed-plugin-scripting.html : different length
-/sdcard/android/layout_tests/fast/dom/null-document-window-open-crash.html : different length
-/sdcard/android/layout_tests/fast/dom/null-document-location-replace-crash.html : different length
-/sdcard/android/layout_tests/fast/dom/null-document-location-put-crash.html : different length
-/sdcard/android/layout_tests/fast/dom/null-document-location-href-put-crash.html : different length
-/sdcard/android/layout_tests/fast/dom/null-document-location-assign-crash.html : different length
-/sdcard/android/layout_tests/fast/dom/null-chardata-crash.html : different length
-/sdcard/android/layout_tests/fast/dom/noscript-style.html : different length
-/sdcard/android/layout_tests/fast/dom/noscript-canvas-in-created-html-document.html : different length
-/sdcard/android/layout_tests/fast/dom/non-numeric-values-numeric-parameters.html : different length
-/sdcard/android/layout_tests/fast/dom/node-item.html : different length
-/sdcard/android/layout_tests/fast/dom/node-filter-gc.html : @offset: 1
-/sdcard/android/layout_tests/fast/dom/no-elements.html : different length
-/sdcard/android/layout_tests/fast/dom/navigator-vendorSub.html : different length
-/sdcard/android/layout_tests/fast/dom/namespaces-1.html : different length
-/sdcard/android/layout_tests/fast/dom/NamedNodeMap-setNamedItem-crash.html : different length
-/sdcard/android/layout_tests/fast/dom/namednodemap-namelookup.html : different length
-/sdcard/android/layout_tests/fast/dom/mutation-event-remove-inserted-node.html : different length
-/sdcard/android/layout_tests/fast/dom/location-hash.html : different length
-/sdcard/android/layout_tests/fast/dom/length-attribute-mapping.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/dom/javascript-url-crash-function.html : different length
-/sdcard/android/layout_tests/fast/dom/inner-text-001.html : different length
-/sdcard/android/layout_tests/fast/dom/global-constructors.html : different length
-/sdcard/android/layout_tests/fast/dom/gc-acid3.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/dom/gc-9.html : different length
-/sdcard/android/layout_tests/fast/dom/gc-8.html : different length
-/sdcard/android/layout_tests/fast/dom/frame-loading-via-document-write.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/dom/documenturi-not-affected-by-base-tag.html : different length
-/sdcard/android/layout_tests/fast/dom/documenturi-can-hold-arbitrary-string.html : different length
-/sdcard/android/layout_tests/fast/dom/document-width-height-force-layout.html : @offset: 142
-/sdcard/android/layout_tests/fast/dom/constructors-cached.html : different length
-/sdcard/android/layout_tests/fast/dom/constructors-cached-navigate.html : different length
-/sdcard/android/layout_tests/fast/dom/client-width-height.html : @offset: 119
-/sdcard/android/layout_tests/fast/dom/client-width-height-quirks.html : @offset: 115
-/sdcard/android/layout_tests/fast/dom/assign-to-window-status.html : different length
-/sdcard/android/layout_tests/fast/css/variables/color-hex-test.html : different length
-/sdcard/android/layout_tests/fast/css/html-attr-case-sensitivity.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/css/hover-affects-child.html : different length
-/sdcard/android/layout_tests/fast/css/getComputedStyle-transform.html : different length
-/sdcard/android/layout_tests/fast/css/dashboard-region-parser.html : different length
-/sdcard/android/layout_tests/fast/css/computed-style.html : different length
-/sdcard/android/layout_tests/fast/css/computed-style-without-renderer.html : different length
-/sdcard/android/layout_tests/fast/canvas/toDataURL-supportedTypes.html : different length
-/sdcard/android/layout_tests/fast/canvas/canvas-save-restore-with-path.html : different length
-/sdcard/android/layout_tests/fast/canvas/canvas-longlived-context.html : TIMEDOUT
-/sdcard/android/layout_tests/fast/canvas/canvas-getImageData.html : different length
-/sdcard/android/layout_tests/fast/canvas/canvas-alphaImageData-behavior.html : different length
diff --git a/tests/DumpRenderTree/results/layout_tests_nontext.txt b/tests/DumpRenderTree/results/layout_tests_nontext.txt
deleted file mode 100644
index 0355cb7..0000000
--- a/tests/DumpRenderTree/results/layout_tests_nontext.txt
+++ /dev/null
@@ -1,1658 +0,0 @@
-/sdcard/android/layout_tests/fast/transforms/transforms-with-opacity.html
-/sdcard/android/layout_tests/fast/transforms/transform-positioned-ancestor.html
-/sdcard/android/layout_tests/fast/transforms/transform-overflow.html
-/sdcard/android/layout_tests/fast/transforms/skew-with-unitless-zero.html
-/sdcard/android/layout_tests/fast/transforms/shadows.html
-/sdcard/android/layout_tests/fast/transforms/overflow-with-transform.html
-/sdcard/android/layout_tests/fast/transforms/matrix-02.html
-/sdcard/android/layout_tests/fast/transforms/matrix-01.html
-/sdcard/android/layout_tests/fast/transforms/identity-matrix.html
-/sdcard/android/layout_tests/fast/transforms/diamond.html
-/sdcard/android/layout_tests/fast/tokenizer/script_extra_close.html
-/sdcard/android/layout_tests/fast/tokenizer/script-after-frameset.html
-/sdcard/android/layout_tests/fast/tokenizer/missing-title-end-tag-2.html
-/sdcard/android/layout_tests/fast/tokenizer/missing-title-end-tag-1.html
-/sdcard/android/layout_tests/fast/tokenizer/missing-style-end-tag-2.html
-/sdcard/android/layout_tests/fast/tokenizer/missing-style-end-tag-1.html
-/sdcard/android/layout_tests/fast/tokenizer/external-script-document-write_2.html
-/sdcard/android/layout_tests/fast/tokenizer/external-script-document-write.html
-/sdcard/android/layout_tests/fast/tokenizer/003.html
-/sdcard/android/layout_tests/fast/tokenizer/002.html
-/sdcard/android/layout_tests/fast/tokenizer/001.html
-/sdcard/android/layout_tests/fast/text/whitespace/tab-character-basics.html
-/sdcard/android/layout_tests/fast/text/whitespace/span-in-word-space-causes-overflow.html
-/sdcard/android/layout_tests/fast/text/whitespace/pre-wrap-spaces-after-newline.html
-/sdcard/android/layout_tests/fast/text/whitespace/pre-wrap-overflow-selection.html
-/sdcard/android/layout_tests/fast/text/whitespace/pre-wrap-line-test.html
-/sdcard/android/layout_tests/fast/text/whitespace/pre-wrap-last-char.html
-/sdcard/android/layout_tests/fast/text/whitespace/pre-newline-box-test.html
-/sdcard/android/layout_tests/fast/text/whitespace/pre-break-word.html
-/sdcard/android/layout_tests/fast/text/whitespace/nowrap-clear-float.html
-/sdcard/android/layout_tests/fast/text/whitespace/normal-after-nowrap-breaking.html
-/sdcard/android/layout_tests/fast/text/whitespace/nbsp-mode-and-linewraps.html
-/sdcard/android/layout_tests/fast/text/whitespace/030.html
-/sdcard/android/layout_tests/fast/text/whitespace/029.html
-/sdcard/android/layout_tests/fast/text/whitespace/028.html
-/sdcard/android/layout_tests/fast/text/whitespace/027.html
-/sdcard/android/layout_tests/fast/text/whitespace/026.html
-/sdcard/android/layout_tests/fast/text/whitespace/025.html
-/sdcard/android/layout_tests/fast/text/whitespace/024.html
-/sdcard/android/layout_tests/fast/text/whitespace/023.html
-/sdcard/android/layout_tests/fast/text/whitespace/022.html
-/sdcard/android/layout_tests/fast/text/whitespace/021.html
-/sdcard/android/layout_tests/fast/text/whitespace/020.html
-/sdcard/android/layout_tests/fast/text/whitespace/019.html
-/sdcard/android/layout_tests/fast/text/whitespace/018.html
-/sdcard/android/layout_tests/fast/text/whitespace/017.html
-/sdcard/android/layout_tests/fast/text/whitespace/016.html
-/sdcard/android/layout_tests/fast/text/whitespace/015.html
-/sdcard/android/layout_tests/fast/text/whitespace/014.html
-/sdcard/android/layout_tests/fast/text/whitespace/013.html
-/sdcard/android/layout_tests/fast/text/whitespace/012.html
-/sdcard/android/layout_tests/fast/text/whitespace/011.html
-/sdcard/android/layout_tests/fast/text/whitespace/010.html
-/sdcard/android/layout_tests/fast/text/whitespace/009.html
-/sdcard/android/layout_tests/fast/text/whitespace/008.html
-/sdcard/android/layout_tests/fast/text/whitespace/007.html
-/sdcard/android/layout_tests/fast/text/whitespace/006.html
-/sdcard/android/layout_tests/fast/text/whitespace/005.html
-/sdcard/android/layout_tests/fast/text/whitespace/004.html
-/sdcard/android/layout_tests/fast/text/whitespace/003.html
-/sdcard/android/layout_tests/fast/text/whitespace/002.html
-/sdcard/android/layout_tests/fast/text/whitespace/001.html
-/sdcard/android/layout_tests/fast/text/international/wrap-CJK-001.html
-/sdcard/android/layout_tests/fast/text/international/thai-line-breaks.html
-/sdcard/android/layout_tests/fast/text/international/rtl-white-space-pre-wrap.html
-/sdcard/android/layout_tests/fast/text/international/rtl-caret.html
-/sdcard/android/layout_tests/fast/text/international/hindi-spacing.html
-/sdcard/android/layout_tests/fast/text/international/complex-character-based-fallback.html
-/sdcard/android/layout_tests/fast/text/international/bidi-override.html
-/sdcard/android/layout_tests/fast/text/international/bidi-neutral-run.html
-/sdcard/android/layout_tests/fast/text/international/bidi-neutral-directionality-paragraph-start.html
-/sdcard/android/layout_tests/fast/text/international/bidi-menulist.html
-/sdcard/android/layout_tests/fast/text/international/bidi-listbox.html
-/sdcard/android/layout_tests/fast/text/international/bidi-listbox-atsui.html
-/sdcard/android/layout_tests/fast/text/international/bidi-LDB-2-HTML.html
-/sdcard/android/layout_tests/fast/text/international/bidi-LDB-2-formatting-characters.html
-/sdcard/android/layout_tests/fast/text/international/bidi-LDB-2-CSS.html
-/sdcard/android/layout_tests/fast/text/international/bidi-layout-across-linebreak.html
-/sdcard/android/layout_tests/fast/text/international/bidi-L2-run-reordering.html
-/sdcard/android/layout_tests/fast/text/international/bidi-innertext.html
-/sdcard/android/layout_tests/fast/text/international/bidi-ignored-for-first-child-inline.html
-/sdcard/android/layout_tests/fast/text/international/bidi-explicit-embedding.html
-/sdcard/android/layout_tests/fast/text/international/bidi-european-terminators.html
-/sdcard/android/layout_tests/fast/text/international/bidi-CS-after-AN.html
-/sdcard/android/layout_tests/fast/text/international/bidi-control-chars-treated-as-ZWS.html
-/sdcard/android/layout_tests/fast/text/international/bidi-AN-after-L.html
-/sdcard/android/layout_tests/fast/text/international/bidi-AN-after-empty-run.html
-/sdcard/android/layout_tests/fast/text/international/003.html
-/sdcard/android/layout_tests/fast/text/international/002.html
-/sdcard/android/layout_tests/fast/text/international/001.html
-/sdcard/android/layout_tests/fast/text/firstline/003.html
-/sdcard/android/layout_tests/fast/text/firstline/002.html
-/sdcard/android/layout_tests/fast/text/firstline/001.html
-/sdcard/android/layout_tests/fast/text/basic/generic-family-reset.html
-/sdcard/android/layout_tests/fast/text/basic/generic-family-changes.html
-/sdcard/android/layout_tests/fast/text/basic/015.html
-/sdcard/android/layout_tests/fast/text/basic/014.html
-/sdcard/android/layout_tests/fast/text/basic/013.html
-/sdcard/android/layout_tests/fast/text/basic/012.html
-/sdcard/android/layout_tests/fast/text/basic/011.html
-/sdcard/android/layout_tests/fast/text/basic/009.html
-/sdcard/android/layout_tests/fast/text/basic/008.html
-/sdcard/android/layout_tests/fast/text/basic/007.html
-/sdcard/android/layout_tests/fast/text/basic/006.html
-/sdcard/android/layout_tests/fast/text/basic/005.html
-/sdcard/android/layout_tests/fast/text/basic/004.html
-/sdcard/android/layout_tests/fast/text/basic/003.html
-/sdcard/android/layout_tests/fast/text/basic/002.html
-/sdcard/android/layout_tests/fast/text/basic/001.html
-/sdcard/android/layout_tests/fast/text/word-space.html
-/sdcard/android/layout_tests/fast/text/word-break.html
-/sdcard/android/layout_tests/fast/text/word-break-soft-hyphen.html
-/sdcard/android/layout_tests/fast/text/word-break-run-rounding.html
-/sdcard/android/layout_tests/fast/text/wide-zero-width-space.html
-/sdcard/android/layout_tests/fast/text/wbr.html
-/sdcard/android/layout_tests/fast/text/wbr-styled.html
-/sdcard/android/layout_tests/fast/text/wbr-pre.html
-/sdcard/android/layout_tests/fast/text/wbr-in-pre-crash.html
-/sdcard/android/layout_tests/fast/text/updateNewFont.html
-/sdcard/android/layout_tests/fast/text/trailing-white-space.html
-/sdcard/android/layout_tests/fast/text/trailing-white-space-2.html
-/sdcard/android/layout_tests/fast/text/textIteratorNilRenderer.html
-/sdcard/android/layout_tests/fast/text/stroking.html
-/sdcard/android/layout_tests/fast/text/stroking-decorations.html
-/sdcard/android/layout_tests/fast/text/stripNullFromText.html
-/sdcard/android/layout_tests/fast/text/softHyphen.html
-/sdcard/android/layout_tests/fast/text/soft-hyphen-3.html
-/sdcard/android/layout_tests/fast/text/soft-hyphen-2.html
-/sdcard/android/layout_tests/fast/text/should-use-atsui.html
-/sdcard/android/layout_tests/fast/text/shadow-no-blur.html
-/sdcard/android/layout_tests/fast/text/selection-painted-separately.html
-/sdcard/android/layout_tests/fast/text/selection-hard-linebreak.html
-/sdcard/android/layout_tests/fast/text/reset-emptyRun.html
-/sdcard/android/layout_tests/fast/text/monospace-width-cache.html
-/sdcard/android/layout_tests/fast/text/midword-break-hang.html
-/sdcard/android/layout_tests/fast/text/midword-break-after-breakable-char.html
-/sdcard/android/layout_tests/fast/text/line-breaks.html
-/sdcard/android/layout_tests/fast/text/line-breaks-after-white-space.html
-/sdcard/android/layout_tests/fast/text/letter-spacing-negative-opacity.html
-/sdcard/android/layout_tests/fast/text/large-text-composed-char.html
-/sdcard/android/layout_tests/fast/text/justified-selection.html
-/sdcard/android/layout_tests/fast/text/justified-selection-at-edge.html
-/sdcard/android/layout_tests/fast/text/in-rendered-text-rtl.html
-/sdcard/android/layout_tests/fast/text/font-initial.html
-/sdcard/android/layout_tests/fast/text/fixed-pitch-control-characters.html
-/sdcard/android/layout_tests/fast/text/embed-at-end-of-pre-wrap-line.html
-/sdcard/android/layout_tests/fast/text/drawBidiText.html
-/sdcard/android/layout_tests/fast/text/delete-hard-break-character.html
-/sdcard/android/layout_tests/fast/text/cg-vs-atsui.html
-/sdcard/android/layout_tests/fast/text/cg-fallback-bolding.html
-/sdcard/android/layout_tests/fast/text/capitalize-preserve-nbsp.html
-/sdcard/android/layout_tests/fast/text/capitalize-empty-generated-string.html
-/sdcard/android/layout_tests/fast/text/capitalize-boundaries.html
-/sdcard/android/layout_tests/fast/text/break-word.html
-/sdcard/android/layout_tests/fast/text/bidi-embedding-pop-and-push-same.html
-/sdcard/android/layout_tests/fast/text/atsui-spacing-features.html
-/sdcard/android/layout_tests/fast/text/atsui-small-caps-punctuation-size.html
-/sdcard/android/layout_tests/fast/text/atsui-rtl-override-selection.html
-/sdcard/android/layout_tests/fast/text/atsui-pointtooffset-calls-cg.html
-/sdcard/android/layout_tests/fast/text/atsui-partial-selection.html
-/sdcard/android/layout_tests/fast/text/atsui-multiple-renderers.html
-/sdcard/android/layout_tests/fast/text/atsui-kerning-and-ligatures.html
-/sdcard/android/layout_tests/fast/text/apply-start-width-after-skipped-text.html
-/sdcard/android/layout_tests/fast/text/align-center-rtl-spill.html
-/sdcard/android/layout_tests/fast/table/border-collapsing/rtl-border-collapsing.html
-/sdcard/android/layout_tests/fast/table/border-collapsing/equal-precedence-resolution.html
-/sdcard/android/layout_tests/fast/table/border-collapsing/border-collapsing-head-foot.html
-/sdcard/android/layout_tests/fast/table/border-collapsing/004.html
-/sdcard/android/layout_tests/fast/table/border-collapsing/003.html
-/sdcard/android/layout_tests/fast/table/border-collapsing/002.html
-/sdcard/android/layout_tests/fast/table/border-collapsing/001.html
-/sdcard/android/layout_tests/fast/table/wide-column.html
-/sdcard/android/layout_tests/fast/table/wide-colspan.html
-/sdcard/android/layout_tests/fast/table/vertical-align-baseline.html
-/sdcard/android/layout_tests/fast/table/vertical-align-baseline-readjust.html
-/sdcard/android/layout_tests/fast/table/unused-percent-heights.html
-/sdcard/android/layout_tests/fast/table/unbreakable-images-quirk.html
-/sdcard/android/layout_tests/fast/table/text-field-baseline.html
-/sdcard/android/layout_tests/fast/table/tableInsideCaption.html
-/sdcard/android/layout_tests/fast/table/table-hspace-align-center.html
-/sdcard/android/layout_tests/fast/table/table-display-types.html
-/sdcard/android/layout_tests/fast/table/table-display-types-strict.html
-/sdcard/android/layout_tests/fast/table/stale-grid-crash.html
-/sdcard/android/layout_tests/fast/table/spanOverlapRepaint.html
-/sdcard/android/layout_tests/fast/table/rules-attr-dynchange2.html
-/sdcard/android/layout_tests/fast/table/rules-attr-dynchange1.html
-/sdcard/android/layout_tests/fast/table/rtl-cell-display-none-assert.html
-/sdcard/android/layout_tests/fast/table/rowspan-paint-order.html
-/sdcard/android/layout_tests/fast/table/rowindex.html
-/sdcard/android/layout_tests/fast/table/row-height-recalc.html
-/sdcard/android/layout_tests/fast/table/replaced-percent-height.html
-/sdcard/android/layout_tests/fast/table/remove-td-display-none.html
-/sdcard/android/layout_tests/fast/table/prepend-in-anonymous-table.html
-/sdcard/android/layout_tests/fast/table/percent-widths-stretch.html
-/sdcard/android/layout_tests/fast/table/percent-heights.html
-/sdcard/android/layout_tests/fast/table/overflowHidden.html
-/sdcard/android/layout_tests/fast/table/nobr.html
-/sdcard/android/layout_tests/fast/table/nested-percent-height-table.html
-/sdcard/android/layout_tests/fast/table/multiple-percent-height-rows.html
-/sdcard/android/layout_tests/fast/table/max-width-integer-overflow.html
-/sdcard/android/layout_tests/fast/table/large-width.html
-/sdcard/android/layout_tests/fast/table/invisible-cell-background.html
-/sdcard/android/layout_tests/fast/table/insert-row-before-form.html
-/sdcard/android/layout_tests/fast/table/insert-cell-before-form.html
-/sdcard/android/layout_tests/fast/table/insert-before-anonymous-ancestors.html
-/sdcard/android/layout_tests/fast/table/inline-form-assert.html
-/sdcard/android/layout_tests/fast/table/height-percent-test.html
-/sdcard/android/layout_tests/fast/table/growCellForImageQuirk.html
-/sdcard/android/layout_tests/fast/table/giantRowspan2.html
-/sdcard/android/layout_tests/fast/table/giantRowspan.html
-/sdcard/android/layout_tests/fast/table/giantCellspacing.html
-/sdcard/android/layout_tests/fast/table/generated-caption.html
-/sdcard/android/layout_tests/fast/table/frame-and-rules.html
-/sdcard/android/layout_tests/fast/table/form-with-table-style.html
-/sdcard/android/layout_tests/fast/table/floating-th.html
-/sdcard/android/layout_tests/fast/table/fixed-with-auto-with-colspan.html
-/sdcard/android/layout_tests/fast/table/fixed-table-non-cell-in-row.html
-/sdcard/android/layout_tests/fast/table/fixed-nested.html
-/sdcard/android/layout_tests/fast/table/empty-table-percent-height.html
-/sdcard/android/layout_tests/fast/table/empty-section-crash.html
-/sdcard/android/layout_tests/fast/table/empty-row-crash.html
-/sdcard/android/layout_tests/fast/table/empty-cells.html
-/sdcard/android/layout_tests/fast/table/edge-offsets.html
-/sdcard/android/layout_tests/fast/table/dynamic-cellpadding.html
-/sdcard/android/layout_tests/fast/table/div-as-col-span.html
-/sdcard/android/layout_tests/fast/table/colgroup-spanning-groups-rules.html
-/sdcard/android/layout_tests/fast/table/colgroup-preceded-by-caption.html
-/sdcard/android/layout_tests/fast/table/click-near-anonymous-table.html
-/sdcard/android/layout_tests/fast/table/cellindex.html
-/sdcard/android/layout_tests/fast/table/cell-pref-width-invalidation.html
-/sdcard/android/layout_tests/fast/table/cell-width-auto.html
-/sdcard/android/layout_tests/fast/table/cell-absolute-child.html
-/sdcard/android/layout_tests/fast/table/caption-relayout.html
-/sdcard/android/layout_tests/fast/table/auto-with-percent-height.html
-/sdcard/android/layout_tests/fast/table/append-cells2.html
-/sdcard/android/layout_tests/fast/table/append-cells.html
-/sdcard/android/layout_tests/fast/table/add-before-anonymous-child.html
-/sdcard/android/layout_tests/fast/table/absolute-table-at-bottom.html
-/sdcard/android/layout_tests/fast/table/100-percent-cell-width.html
-/sdcard/android/layout_tests/fast/table/041.html
-/sdcard/android/layout_tests/fast/table/040.html
-/sdcard/android/layout_tests/fast/table/039.html
-/sdcard/android/layout_tests/fast/table/038.html
-/sdcard/android/layout_tests/fast/table/037.xml
-/sdcard/android/layout_tests/fast/table/036.html
-/sdcard/android/layout_tests/fast/table/035.html
-/sdcard/android/layout_tests/fast/table/034.html
-/sdcard/android/layout_tests/fast/table/033.html
-/sdcard/android/layout_tests/fast/table/032.html
-/sdcard/android/layout_tests/fast/table/031.html
-/sdcard/android/layout_tests/fast/table/030.html
-/sdcard/android/layout_tests/fast/table/029.html
-/sdcard/android/layout_tests/fast/table/028.html
-/sdcard/android/layout_tests/fast/table/027.html
-/sdcard/android/layout_tests/fast/table/026.html
-/sdcard/android/layout_tests/fast/table/025.html
-/sdcard/android/layout_tests/fast/table/024.html
-/sdcard/android/layout_tests/fast/table/023.html
-/sdcard/android/layout_tests/fast/table/022.html
-/sdcard/android/layout_tests/fast/table/021.html
-/sdcard/android/layout_tests/fast/table/020.html
-/sdcard/android/layout_tests/fast/table/018.html
-/sdcard/android/layout_tests/fast/table/017.html
-/sdcard/android/layout_tests/fast/table/016.html
-/sdcard/android/layout_tests/fast/table/015.html
-/sdcard/android/layout_tests/fast/table/014.html
-/sdcard/android/layout_tests/fast/table/013.html
-/sdcard/android/layout_tests/fast/table/012.html
-/sdcard/android/layout_tests/fast/table/011.html
-/sdcard/android/layout_tests/fast/table/010.html
-/sdcard/android/layout_tests/fast/table/009.html
-/sdcard/android/layout_tests/fast/table/008.html
-/sdcard/android/layout_tests/fast/table/007.html
-/sdcard/android/layout_tests/fast/table/006.html
-/sdcard/android/layout_tests/fast/table/005.html
-/sdcard/android/layout_tests/fast/table/004.html
-/sdcard/android/layout_tests/fast/table/003.html
-/sdcard/android/layout_tests/fast/table/002.html
-/sdcard/android/layout_tests/fast/table/001.html
-/sdcard/android/layout_tests/fast/selectors/unqualified-hover-strict.html
-/sdcard/android/layout_tests/fast/selectors/unqualified-hover-quirks.html
-/sdcard/android/layout_tests/fast/selectors/nondeterministic-combinators.html
-/sdcard/android/layout_tests/fast/selectors/lang-vs-xml-lang.html
-/sdcard/android/layout_tests/fast/selectors/lang-inheritance2.html
-/sdcard/android/layout_tests/fast/selectors/lang-inheritance.html
-/sdcard/android/layout_tests/fast/selectors/177b.html
-/sdcard/android/layout_tests/fast/selectors/177a.html
-/sdcard/android/layout_tests/fast/selectors/175c.html
-/sdcard/android/layout_tests/fast/selectors/175b.html
-/sdcard/android/layout_tests/fast/selectors/175a.html
-/sdcard/android/layout_tests/fast/selectors/170d.html
-/sdcard/android/layout_tests/fast/selectors/170c.html
-/sdcard/android/layout_tests/fast/selectors/170b.html
-/sdcard/android/layout_tests/fast/selectors/170a.html
-/sdcard/android/layout_tests/fast/selectors/170.html
-/sdcard/android/layout_tests/fast/selectors/169a.html
-/sdcard/android/layout_tests/fast/selectors/169.html
-/sdcard/android/layout_tests/fast/selectors/168a.html
-/sdcard/android/layout_tests/fast/selectors/168.html
-/sdcard/android/layout_tests/fast/selectors/167a.html
-/sdcard/android/layout_tests/fast/selectors/167.html
-/sdcard/android/layout_tests/fast/selectors/166a.html
-/sdcard/android/layout_tests/fast/selectors/166.html
-/sdcard/android/layout_tests/fast/selectors/160.html
-/sdcard/android/layout_tests/fast/selectors/159.html
-/sdcard/android/layout_tests/fast/selectors/158.html
-/sdcard/android/layout_tests/fast/selectors/157.html
-/sdcard/android/layout_tests/fast/selectors/156b.html
-/sdcard/android/layout_tests/fast/selectors/155d.html
-/sdcard/android/layout_tests/fast/selectors/155c.html
-/sdcard/android/layout_tests/fast/selectors/155b.html
-/sdcard/android/layout_tests/fast/selectors/155a.html
-/sdcard/android/layout_tests/fast/selectors/155.html
-/sdcard/android/layout_tests/fast/selectors/154.html
-/sdcard/android/layout_tests/fast/selectors/090b.html
-/sdcard/android/layout_tests/fast/selectors/089.html
-/sdcard/android/layout_tests/fast/selectors/088b.html
-/sdcard/android/layout_tests/fast/selectors/087b.html
-/sdcard/android/layout_tests/fast/selectors/083.html
-/sdcard/android/layout_tests/fast/selectors/078b.html
-/sdcard/android/layout_tests/fast/selectors/077b.html
-/sdcard/android/layout_tests/fast/selectors/077.html
-/sdcard/android/layout_tests/fast/selectors/072b.html
-/sdcard/android/layout_tests/fast/selectors/072.html
-/sdcard/android/layout_tests/fast/selectors/066b.html
-/sdcard/android/layout_tests/fast/selectors/066.html
-/sdcard/android/layout_tests/fast/selectors/065.html
-/sdcard/android/layout_tests/fast/selectors/064.html
-/sdcard/android/layout_tests/fast/selectors/063.html
-/sdcard/android/layout_tests/fast/selectors/062.html
-/sdcard/android/layout_tests/fast/selectors/061.html
-/sdcard/android/layout_tests/fast/selectors/060.html
-/sdcard/android/layout_tests/fast/selectors/059.html
-/sdcard/android/layout_tests/fast/selectors/058.html
-/sdcard/android/layout_tests/fast/selectors/056.html
-/sdcard/android/layout_tests/fast/selectors/054.html
-/sdcard/android/layout_tests/fast/selectors/046.html
-/sdcard/android/layout_tests/fast/selectors/045c.html
-/sdcard/android/layout_tests/fast/selectors/045b.html
-/sdcard/android/layout_tests/fast/selectors/045.html
-/sdcard/android/layout_tests/fast/selectors/044d.html
-/sdcard/android/layout_tests/fast/selectors/044c.html
-/sdcard/android/layout_tests/fast/selectors/044b.html
-/sdcard/android/layout_tests/fast/selectors/044.html
-/sdcard/android/layout_tests/fast/selectors/043b.html
-/sdcard/android/layout_tests/fast/selectors/043.html
-/sdcard/android/layout_tests/fast/selectors/042.html
-/sdcard/android/layout_tests/fast/selectors/041.html
-/sdcard/android/layout_tests/fast/selectors/040.html
-/sdcard/android/layout_tests/fast/selectors/039b.html
-/sdcard/android/layout_tests/fast/selectors/039.html
-/sdcard/android/layout_tests/fast/selectors/038.html
-/sdcard/android/layout_tests/fast/selectors/034.html
-/sdcard/android/layout_tests/fast/selectors/032.html
-/sdcard/android/layout_tests/fast/selectors/027.html
-/sdcard/android/layout_tests/fast/selectors/021b.html
-/sdcard/android/layout_tests/fast/selectors/021.html
-/sdcard/android/layout_tests/fast/selectors/020.html
-/sdcard/android/layout_tests/fast/selectors/019.html
-/sdcard/android/layout_tests/fast/selectors/018b.html
-/sdcard/android/layout_tests/fast/selectors/018.html
-/sdcard/android/layout_tests/fast/selectors/017.html
-/sdcard/android/layout_tests/fast/selectors/016.html
-/sdcard/android/layout_tests/fast/selectors/015.html
-/sdcard/android/layout_tests/fast/selectors/014.html
-/sdcard/android/layout_tests/fast/selectors/013.html
-/sdcard/android/layout_tests/fast/selectors/012.html
-/sdcard/android/layout_tests/fast/selectors/011.html
-/sdcard/android/layout_tests/fast/selectors/010.html
-/sdcard/android/layout_tests/fast/selectors/009.html
-/sdcard/android/layout_tests/fast/selectors/008.html
-/sdcard/android/layout_tests/fast/selectors/007b.html
-/sdcard/android/layout_tests/fast/selectors/007a.html
-/sdcard/android/layout_tests/fast/selectors/006.html
-/sdcard/android/layout_tests/fast/selectors/005.html
-/sdcard/android/layout_tests/fast/selectors/004.html
-/sdcard/android/layout_tests/fast/selectors/003.html
-/sdcard/android/layout_tests/fast/selectors/002.html
-/sdcard/android/layout_tests/fast/selectors/001.html
-/sdcard/android/layout_tests/fast/runin/001.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-textfield.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-textarea.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-searchfield.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-radio.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-menulist.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-image.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-checkbox.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-button.html
-/sdcard/android/layout_tests/fast/replaced/three-selects-break.html
-/sdcard/android/layout_tests/fast/replaced/selection-rect.html
-/sdcard/android/layout_tests/fast/replaced/selection-rect-in-table-cell.html
-/sdcard/android/layout_tests/fast/replaced/replaced-child-of-absolute-with-auto-height.html
-/sdcard/android/layout_tests/fast/replaced/replaced-breaking.html
-/sdcard/android/layout_tests/fast/replaced/replaced-breaking-mixture.html
-/sdcard/android/layout_tests/fast/replaced/percent-height-in-anonymous-block.html
-/sdcard/android/layout_tests/fast/replaced/percent-height-in-anonymous-block-widget.html
-/sdcard/android/layout_tests/fast/replaced/pdf-as-image.html
-/sdcard/android/layout_tests/fast/replaced/object-align-hspace-vspace.html
-/sdcard/android/layout_tests/fast/replaced/minwidth-pxs.html
-/sdcard/android/layout_tests/fast/replaced/minwidth-percent.html
-/sdcard/android/layout_tests/fast/replaced/minheight-pxs.html
-/sdcard/android/layout_tests/fast/replaced/minheight-percent.html
-/sdcard/android/layout_tests/fast/replaced/maxwidth-pxs.html
-/sdcard/android/layout_tests/fast/replaced/maxwidth-percent.html
-/sdcard/android/layout_tests/fast/replaced/maxheight-pxs.html
-/sdcard/android/layout_tests/fast/replaced/maxheight-percent.html
-/sdcard/android/layout_tests/fast/replaced/max-width-percent.html
-/sdcard/android/layout_tests/fast/replaced/inline-box-wrapper-handover.html
-/sdcard/android/layout_tests/fast/replaced/image-tag.html
-/sdcard/android/layout_tests/fast/replaced/image-solid-color-with-alpha.html
-/sdcard/android/layout_tests/fast/replaced/image-sizing.html
-/sdcard/android/layout_tests/fast/replaced/image-resize-width.html
-/sdcard/android/layout_tests/fast/replaced/image-onload.html
-/sdcard/android/layout_tests/fast/replaced/applet-rendering-java-disabled.html
-/sdcard/android/layout_tests/fast/replaced/applet-disabled-positioned.html
-/sdcard/android/layout_tests/fast/replaced/absolute-position-with-auto-width-and-left-and-right.html
-/sdcard/android/layout_tests/fast/replaced/absolute-position-with-auto-height-and-top-and-bottom.html
-/sdcard/android/layout_tests/fast/replaced/absolute-position-percentage-width.html
-/sdcard/android/layout_tests/fast/replaced/absolute-position-percentage-height.html
-/sdcard/android/layout_tests/fast/replaced/absolute-image-sizing.html
-/sdcard/android/layout_tests/fast/replaced/008.html
-/sdcard/android/layout_tests/fast/replaced/007.html
-/sdcard/android/layout_tests/fast/replaced/006.html
-/sdcard/android/layout_tests/fast/replaced/005.html
-/sdcard/android/layout_tests/fast/replaced/004.html
-/sdcard/android/layout_tests/fast/replaced/003.html
-/sdcard/android/layout_tests/fast/replaced/002.html
-/sdcard/android/layout_tests/fast/replaced/001.html
-/sdcard/android/layout_tests/fast/repaint/transform-translate.html
-/sdcard/android/layout_tests/fast/repaint/text-shadow.html
-/sdcard/android/layout_tests/fast/repaint/text-shadow-horizontal.html
-/sdcard/android/layout_tests/fast/repaint/text-selection-rect-in-overflow.html
-/sdcard/android/layout_tests/fast/repaint/text-selection-rect-in-overflow-2.html
-/sdcard/android/layout_tests/fast/repaint/table-two-pass-layout-overpaint.html
-/sdcard/android/layout_tests/fast/repaint/table-section-repaint.html
-/sdcard/android/layout_tests/fast/repaint/table-section-overflow.html
-/sdcard/android/layout_tests/fast/repaint/table-row.html
-/sdcard/android/layout_tests/fast/repaint/table-outer-border.html
-/sdcard/android/layout_tests/fast/repaint/table-extra-bottom-grow.html
-/sdcard/android/layout_tests/fast/repaint/table-collapsed-border.html
-/sdcard/android/layout_tests/fast/repaint/table-col-background.html
-/sdcard/android/layout_tests/fast/repaint/table-cell-vertical-overflow.html
-/sdcard/android/layout_tests/fast/repaint/table-cell-move.html
-/sdcard/android/layout_tests/fast/repaint/table-cell-collapsed-border.html
-/sdcard/android/layout_tests/fast/repaint/subtree-root-skipped.html
-/sdcard/android/layout_tests/fast/repaint/subtree-root-clip.html
-/sdcard/android/layout_tests/fast/repaint/subtree-root-clip-3.html
-/sdcard/android/layout_tests/fast/repaint/subtree-root-clip-2.html
-/sdcard/android/layout_tests/fast/repaint/static-to-positioned.html
-/sdcard/android/layout_tests/fast/repaint/shadow-multiple-vertical.html
-/sdcard/android/layout_tests/fast/repaint/shadow-multiple-strict-vertical.html
-/sdcard/android/layout_tests/fast/repaint/shadow-multiple-strict-horizontal.html
-/sdcard/android/layout_tests/fast/repaint/shadow-multiple-horizontal.html
-/sdcard/android/layout_tests/fast/repaint/selection-gap-overflow-scroll.html
-/sdcard/android/layout_tests/fast/repaint/selection-after-remove.html
-/sdcard/android/layout_tests/fast/repaint/selection-after-delete.html
-/sdcard/android/layout_tests/fast/repaint/repaint-resized-overflow.html
-/sdcard/android/layout_tests/fast/repaint/renderer-destruction-by-invalidateSelection-crash.html
-/sdcard/android/layout_tests/fast/repaint/overflow-scroll-delete.html
-/sdcard/android/layout_tests/fast/repaint/overflow-outline-repaint.html
-/sdcard/android/layout_tests/fast/repaint/overflow-into-content.html
-/sdcard/android/layout_tests/fast/repaint/overflow-delete-line.html
-/sdcard/android/layout_tests/fast/repaint/overflow-clip-subtree-layout.html
-/sdcard/android/layout_tests/fast/repaint/outline-shrinking.html
-/sdcard/android/layout_tests/fast/repaint/outline-repaint-glitch.html
-/sdcard/android/layout_tests/fast/repaint/outline-inset.html
-/sdcard/android/layout_tests/fast/repaint/make-children-non-inline.html
-/sdcard/android/layout_tests/fast/repaint/list-marker.html
-/sdcard/android/layout_tests/fast/repaint/list-marker-2.html
-/sdcard/android/layout_tests/fast/repaint/lines-with-layout-delta.html
-/sdcard/android/layout_tests/fast/repaint/line-overflow.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-9.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-8.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-7.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-6.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-5.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-4.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-3.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-2.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-10.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-1.html
-/sdcard/android/layout_tests/fast/repaint/layout-state-relative.html
-/sdcard/android/layout_tests/fast/repaint/layout-state-only-positioned.html
-/sdcard/android/layout_tests/fast/repaint/layer-visibility.html
-/sdcard/android/layout_tests/fast/repaint/layer-outline.html
-/sdcard/android/layout_tests/fast/repaint/layer-outline-horizontal.html
-/sdcard/android/layout_tests/fast/repaint/layer-hide-when-needs-layout.html
-/sdcard/android/layout_tests/fast/repaint/layer-full-repaint.html
-/sdcard/android/layout_tests/fast/repaint/layer-child-outline.html
-/sdcard/android/layout_tests/fast/repaint/invisible-objects.html
-/sdcard/android/layout_tests/fast/repaint/intermediate-layout-position.html
-/sdcard/android/layout_tests/fast/repaint/intermediate-layout-position-clip.html
-/sdcard/android/layout_tests/fast/repaint/inline-outline-repaint.html
-/sdcard/android/layout_tests/fast/repaint/inline-block-overflow.html
-/sdcard/android/layout_tests/fast/repaint/focus-ring.html
-/sdcard/android/layout_tests/fast/repaint/focus-layers.html
-/sdcard/android/layout_tests/fast/repaint/float-overflow.html
-/sdcard/android/layout_tests/fast/repaint/float-overflow-right.html
-/sdcard/android/layout_tests/fast/repaint/float-move-during-layout.html
-/sdcard/android/layout_tests/fast/repaint/flexible-box-overflow.html
-/sdcard/android/layout_tests/fast/repaint/flexible-box-overflow-horizontal.html
-/sdcard/android/layout_tests/fast/repaint/fixed.html
-/sdcard/android/layout_tests/fast/repaint/erase-overflow.html
-/sdcard/android/layout_tests/fast/repaint/delete-into-nested-block.html
-/sdcard/android/layout_tests/fast/repaint/control-clip.html
-/sdcard/android/layout_tests/fast/repaint/continuation-after-outline.html
-/sdcard/android/layout_tests/fast/repaint/content-into-overflow.html
-/sdcard/android/layout_tests/fast/repaint/containing-block-position-change.html
-/sdcard/android/layout_tests/fast/repaint/clipped-relative.html
-/sdcard/android/layout_tests/fast/repaint/clip-with-layout-delta.html
-/sdcard/android/layout_tests/fast/repaint/caret-outside-block.html
-/sdcard/android/layout_tests/fast/repaint/button-spurious-layout-hint.html
-/sdcard/android/layout_tests/fast/repaint/bugzilla-7235.html
-/sdcard/android/layout_tests/fast/repaint/bugzilla-6473.html
-/sdcard/android/layout_tests/fast/repaint/bugzilla-6388.html
-/sdcard/android/layout_tests/fast/repaint/bugzilla-6278.html
-/sdcard/android/layout_tests/fast/repaint/bugzilla-5699.html
-/sdcard/android/layout_tests/fast/repaint/bugzilla-3509.html
-/sdcard/android/layout_tests/fast/repaint/box-shadow-v.html
-/sdcard/android/layout_tests/fast/repaint/box-shadow-h.html
-/sdcard/android/layout_tests/fast/repaint/box-shadow-dynamic.html
-/sdcard/android/layout_tests/fast/repaint/border-repaint-glitch.html
-/sdcard/android/layout_tests/fast/repaint/border-radius-repaint.html
-/sdcard/android/layout_tests/fast/repaint/border-fit-lines.html
-/sdcard/android/layout_tests/fast/repaint/body-background-image.html
-/sdcard/android/layout_tests/fast/repaint/backgroundSizeRepaint.html
-/sdcard/android/layout_tests/fast/repaint/4776765.html
-/sdcard/android/layout_tests/fast/repaint/4774354.html
-/sdcard/android/layout_tests/fast/reflections/table-cell.html
-/sdcard/android/layout_tests/fast/reflections/reflection-nesting.html
-/sdcard/android/layout_tests/fast/reflections/reflection-direction.html
-/sdcard/android/layout_tests/fast/reflections/inline-crash.html
-/sdcard/android/layout_tests/fast/parser/title-error-test.html
-/sdcard/android/layout_tests/fast/parser/style-script-head-test.html
-/sdcard/android/layout_tests/fast/parser/parseCommentsInTitles.html
-/sdcard/android/layout_tests/fast/parser/open-comment-in-textarea.html
-/sdcard/android/layout_tests/fast/parser/open-comment-in-style.html
-/sdcard/android/layout_tests/fast/parser/fonts.html
-/sdcard/android/layout_tests/fast/parser/external-entities-in-xslt.xml
-/sdcard/android/layout_tests/fast/parser/entity-comment-in-textarea.html
-/sdcard/android/layout_tests/fast/parser/entity-comment-in-style.html
-/sdcard/android/layout_tests/fast/parser/document-write-option.html
-/sdcard/android/layout_tests/fast/parser/comments.html
-/sdcard/android/layout_tests/fast/parser/comment-in-style.html
-/sdcard/android/layout_tests/fast/parser/comment-in-script.html
-/sdcard/android/layout_tests/fast/parser/broken-comments-vs-parsing-mode.html
-/sdcard/android/layout_tests/fast/parser/bad-xml-slash.html
-/sdcard/android/layout_tests/fast/parser/001.html
-/sdcard/android/layout_tests/fast/overflow/unreachable-overflow-rtl-bug.html
-/sdcard/android/layout_tests/fast/overflow/unreachable-content-test.html
-/sdcard/android/layout_tests/fast/overflow/table-overflow-float.html
-/sdcard/android/layout_tests/fast/overflow/scrollRevealButton.html
-/sdcard/android/layout_tests/fast/overflow/scrollbar-position-update.html
-/sdcard/android/layout_tests/fast/overflow/scroll-nested-positioned-layer-in-overflow.html
-/sdcard/android/layout_tests/fast/overflow/position-relative.html
-/sdcard/android/layout_tests/fast/overflow/overflow_hidden.html
-/sdcard/android/layout_tests/fast/overflow/overflow-x-y.html
-/sdcard/android/layout_tests/fast/overflow/overflow-text-hit-testing.html
-/sdcard/android/layout_tests/fast/overflow/overflow-rtl.html
-/sdcard/android/layout_tests/fast/overflow/overflow-rtl-inline-scrollbar.html
-/sdcard/android/layout_tests/fast/overflow/overflow-focus-ring.html
-/sdcard/android/layout_tests/fast/overflow/overflow-auto-table.html
-/sdcard/android/layout_tests/fast/overflow/overflow-auto-position-absolute.html
-/sdcard/android/layout_tests/fast/overflow/infiniteRecursionGuard.html
-/sdcard/android/layout_tests/fast/overflow/infiniteRecursion.html
-/sdcard/android/layout_tests/fast/overflow/image-selection-highlight.html
-/sdcard/android/layout_tests/fast/overflow/hit-test-overflow-controls.html
-/sdcard/android/layout_tests/fast/overflow/hidden-scrollbar-resize.html
-/sdcard/android/layout_tests/fast/overflow/float-in-relpositioned.html
-/sdcard/android/layout_tests/fast/overflow/dynamic-hidden.html
-/sdcard/android/layout_tests/fast/overflow/clip-rects-fixed-ancestor.html
-/sdcard/android/layout_tests/fast/overflow/childFocusRingClip.html
-/sdcard/android/layout_tests/fast/overflow/008.html
-/sdcard/android/layout_tests/fast/overflow/007.html
-/sdcard/android/layout_tests/fast/overflow/006.html
-/sdcard/android/layout_tests/fast/overflow/005.html
-/sdcard/android/layout_tests/fast/overflow/004.html
-/sdcard/android/layout_tests/fast/overflow/003.xml
-/sdcard/android/layout_tests/fast/overflow/002.html
-/sdcard/android/layout_tests/fast/overflow/001.html
-/sdcard/android/layout_tests/fast/multicol/zeroColumnCount.html
-/sdcard/android/layout_tests/fast/multicol/negativeColumnWidth.html
-/sdcard/android/layout_tests/fast/multicol/float-multicol.html
-/sdcard/android/layout_tests/fast/multicol/float-avoidance.html
-/sdcard/android/layout_tests/fast/multicol/columns-shorthand-parsing.html
-/sdcard/android/layout_tests/fast/multicol/column-rules.html
-/sdcard/android/layout_tests/fast/media/viewport-media-query.html
-/sdcard/android/layout_tests/fast/media/mq-width-absolute-04.html
-/sdcard/android/layout_tests/fast/media/mq-width-absolute-03.html
-/sdcard/android/layout_tests/fast/media/mq-width-absolute-02.html
-/sdcard/android/layout_tests/fast/media/mq-width-absolute-01.html
-/sdcard/android/layout_tests/fast/media/mq-valueless.html
-/sdcard/android/layout_tests/fast/media/mq-simple-query-05.html
-/sdcard/android/layout_tests/fast/media/mq-simple-query-04.html
-/sdcard/android/layout_tests/fast/media/mq-simple-query-03.html
-/sdcard/android/layout_tests/fast/media/mq-simple-query-02.html
-/sdcard/android/layout_tests/fast/media/mq-simple-query-01.html
-/sdcard/android/layout_tests/fast/media/mq-simple-neg-query-05.html
-/sdcard/android/layout_tests/fast/media/mq-simple-neg-query-04.html
-/sdcard/android/layout_tests/fast/media/mq-simple-neg-query-03.html
-/sdcard/android/layout_tests/fast/media/mq-simple-neg-query-02.html
-/sdcard/android/layout_tests/fast/media/mq-simple-neg-query-01.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-09.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-08.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-07.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-06.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-05.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-04.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-03.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-02.html
-/sdcard/android/layout_tests/fast/media/mq-pixel-ratio.html
-/sdcard/android/layout_tests/fast/media/mq-min-pixel-ratio.html
-/sdcard/android/layout_tests/fast/media/mq-min-constraint.html
-/sdcard/android/layout_tests/fast/media/mq-max-pixel-ratio.html
-/sdcard/android/layout_tests/fast/media/mq-js-stylesheet-media-04.html
-/sdcard/android/layout_tests/fast/media/mq-js-stylesheet-media-03.html
-/sdcard/android/layout_tests/fast/media/mq-js-stylesheet-media-02.html
-/sdcard/android/layout_tests/fast/media/mq-js-stylesheet-media-01.html
-/sdcard/android/layout_tests/fast/media/mq-js-media-forward-syntax.html
-/sdcard/android/layout_tests/fast/media/mq-js-media-except-03.html
-/sdcard/android/layout_tests/fast/media/mq-js-media-except-02.html
-/sdcard/android/layout_tests/fast/media/mq-js-media-except-01.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-syntax-05.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-syntax-04.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-syntax-03.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-syntax-02.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-syntax-01.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-media-feature-04.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-media-feature-03.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-media-feature-02.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-media-feature-01.html
-/sdcard/android/layout_tests/fast/media/mq-grid-02.html
-/sdcard/android/layout_tests/fast/media/mq-grid-01.html
-/sdcard/android/layout_tests/fast/media/mq-compound-query-05.html
-/sdcard/android/layout_tests/fast/media/mq-compound-query-04.html
-/sdcard/android/layout_tests/fast/media/mq-compound-query-03.html
-/sdcard/android/layout_tests/fast/media/mq-compound-query-02.html
-/sdcard/android/layout_tests/fast/media/mq-compound-query-01.html
-/sdcard/android/layout_tests/fast/media/monochrome.html
-/sdcard/android/layout_tests/fast/media/media-type-syntax-02.html
-/sdcard/android/layout_tests/fast/media/media-type-syntax-01.html
-/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-06.html
-/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-05.html
-/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-04.html
-/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-03.html
-/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-02.html
-/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-01.html
-/sdcard/android/layout_tests/fast/media/implicit-media-all.html
-/sdcard/android/layout_tests/fast/loader/text-document-wrapping.html
-/sdcard/android/layout_tests/fast/loader/start-load-in-unload.html
-/sdcard/android/layout_tests/fast/lists/w3-list-styles.html
-/sdcard/android/layout_tests/fast/lists/scrolled-marker-paint.html
-/sdcard/android/layout_tests/fast/lists/ordered-list-with-no-ol-tag.html
-/sdcard/android/layout_tests/fast/lists/olstart.html
-/sdcard/android/layout_tests/fast/lists/ol-start-dynamic.html
-/sdcard/android/layout_tests/fast/lists/ol-display-types.html
-/sdcard/android/layout_tests/fast/lists/numeric-markers-outside-list.html
-/sdcard/android/layout_tests/fast/lists/markers-in-selection.html
-/sdcard/android/layout_tests/fast/lists/marker-image-error.html
-/sdcard/android/layout_tests/fast/lists/marker-before-empty-inline.html
-/sdcard/android/layout_tests/fast/lists/list-style-type-dynamic-change.html
-/sdcard/android/layout_tests/fast/lists/list-style-none-crash.html
-/sdcard/android/layout_tests/fast/lists/list-item-line-height.html
-/sdcard/android/layout_tests/fast/lists/li-values.html
-/sdcard/android/layout_tests/fast/lists/li-style-alpha-huge-value-crash.html
-/sdcard/android/layout_tests/fast/lists/li-br.html
-/sdcard/android/layout_tests/fast/lists/item-not-in-list-line-wrapping.html
-/sdcard/android/layout_tests/fast/lists/inlineBoxWrapperNullCheck.html
-/sdcard/android/layout_tests/fast/lists/dynamic-marker-crash.html
-/sdcard/android/layout_tests/fast/lists/drag-into-marker.html
-/sdcard/android/layout_tests/fast/lists/decimal-leading-zero.html
-/sdcard/android/layout_tests/fast/lists/big-list-marker.html
-/sdcard/android/layout_tests/fast/lists/alpha-list-wrap.html
-/sdcard/android/layout_tests/fast/lists/009.html
-/sdcard/android/layout_tests/fast/lists/008.html
-/sdcard/android/layout_tests/fast/lists/007.html
-/sdcard/android/layout_tests/fast/lists/006.html
-/sdcard/android/layout_tests/fast/lists/005.html
-/sdcard/android/layout_tests/fast/lists/004.html
-/sdcard/android/layout_tests/fast/lists/003.html
-/sdcard/android/layout_tests/fast/lists/002.html
-/sdcard/android/layout_tests/fast/lists/001.html
-/sdcard/android/layout_tests/fast/layers/zindex-ridonkulous.html
-/sdcard/android/layout_tests/fast/layers/zindex-inherit.html
-/sdcard/android/layout_tests/fast/layers/scroll-rect-to-visible.html
-/sdcard/android/layout_tests/fast/layers/remove-layer-with-nested-stacking.html
-/sdcard/android/layout_tests/fast/layers/positioned-inside-root-with-margins.html
-/sdcard/android/layout_tests/fast/layers/overflow-scroll-auto-switch.html
-/sdcard/android/layout_tests/fast/layers/opacity-stacking.html
-/sdcard/android/layout_tests/fast/layers/opacity-outline.html
-/sdcard/android/layout_tests/fast/layers/layer-visibility.html
-/sdcard/android/layout_tests/fast/layers/layer-visibility-sublayer.html
-/sdcard/android/layout_tests/fast/layers/layer-content-visibility-change.html
-/sdcard/android/layout_tests/fast/layers/add-layer-with-nested-stacking.html
-/sdcard/android/layout_tests/fast/js/missing-style-end-tag-js.html
-/sdcard/android/layout_tests/fast/invalid/td-inside-object.html
-/sdcard/android/layout_tests/fast/invalid/table-residual-style-crash.html
-/sdcard/android/layout_tests/fast/invalid/table-inside-stray-table-content.html
-/sdcard/android/layout_tests/fast/invalid/residual-style.html
-/sdcard/android/layout_tests/fast/invalid/nestedh3s.html
-/sdcard/android/layout_tests/fast/invalid/missing-font-end-tag.html
-/sdcard/android/layout_tests/fast/invalid/missing-dt-end-tag.html
-/sdcard/android/layout_tests/fast/invalid/missing-dl-end-tag.html
-/sdcard/android/layout_tests/fast/invalid/missing-address-end-tag.html
-/sdcard/android/layout_tests/fast/invalid/junk-data.xml
-/sdcard/android/layout_tests/fast/invalid/021.html
-/sdcard/android/layout_tests/fast/invalid/020.xml
-/sdcard/android/layout_tests/fast/invalid/019.html
-/sdcard/android/layout_tests/fast/invalid/018.html
-/sdcard/android/layout_tests/fast/invalid/017.html
-/sdcard/android/layout_tests/fast/invalid/016.html
-/sdcard/android/layout_tests/fast/invalid/015.html
-/sdcard/android/layout_tests/fast/invalid/014.html
-/sdcard/android/layout_tests/fast/invalid/013.html
-/sdcard/android/layout_tests/fast/invalid/012.html
-/sdcard/android/layout_tests/fast/invalid/011.html
-/sdcard/android/layout_tests/fast/invalid/010.html
-/sdcard/android/layout_tests/fast/invalid/009.html
-/sdcard/android/layout_tests/fast/invalid/008.html
-/sdcard/android/layout_tests/fast/invalid/007.html
-/sdcard/android/layout_tests/fast/invalid/006.html
-/sdcard/android/layout_tests/fast/invalid/005.html
-/sdcard/android/layout_tests/fast/invalid/004.html
-/sdcard/android/layout_tests/fast/invalid/003.html
-/sdcard/android/layout_tests/fast/invalid/002.html
-/sdcard/android/layout_tests/fast/invalid/001.html
-/sdcard/android/layout_tests/fast/inspector/style.html
-/sdcard/android/layout_tests/fast/inspector/matchedrules.html
-/sdcard/android/layout_tests/fast/innerHTML/006.html
-/sdcard/android/layout_tests/fast/innerHTML/003.html
-/sdcard/android/layout_tests/fast/innerHTML/002.html
-/sdcard/android/layout_tests/fast/innerHTML/001.html
-/sdcard/android/layout_tests/fast/inline-block/tricky-baseline.html
-/sdcard/android/layout_tests/fast/inline-block/overflow-clip.html
-/sdcard/android/layout_tests/fast/inline-block/inline-block-vertical-align.html
-/sdcard/android/layout_tests/fast/inline-block/contenteditable-baseline.html
-/sdcard/android/layout_tests/fast/inline-block/14498-positionForCoordinates.html
-/sdcard/android/layout_tests/fast/inline-block/006.html
-/sdcard/android/layout_tests/fast/inline-block/005.html
-/sdcard/android/layout_tests/fast/inline-block/004.html
-/sdcard/android/layout_tests/fast/inline-block/003.html
-/sdcard/android/layout_tests/fast/inline-block/002.html
-/sdcard/android/layout_tests/fast/inline-block/001.html
-/sdcard/android/layout_tests/fast/inline/styledEmptyInlinesWithBRs.html
-/sdcard/android/layout_tests/fast/inline/positionedLifetime.html
-/sdcard/android/layout_tests/fast/inline/percentage-margins.html
-/sdcard/android/layout_tests/fast/inline/outline-continuations.html
-/sdcard/android/layout_tests/fast/inline/inline-text-quirk-bpm.html
-/sdcard/android/layout_tests/fast/inline/inline-padding-disables-text-quirk.html
-/sdcard/android/layout_tests/fast/inline/inline-borders-with-bidi-override.html
-/sdcard/android/layout_tests/fast/inline/emptyInlinesWithinLists.html
-/sdcard/android/layout_tests/fast/inline/drawStyledEmptyInlinesWithWS.html
-/sdcard/android/layout_tests/fast/inline/drawStyledEmptyInlines.html
-/sdcard/android/layout_tests/fast/inline/dirtyLinesForInline.html
-/sdcard/android/layout_tests/fast/inline/continuation-outlines.html
-/sdcard/android/layout_tests/fast/inline/continuation-outlines-with-layers.html
-/sdcard/android/layout_tests/fast/inline/002.html
-/sdcard/android/layout_tests/fast/inline/001.html
-/sdcard/android/layout_tests/fast/images/svg-as-tiled-background.html
-/sdcard/android/layout_tests/fast/images/svg-as-relative-image.html
-/sdcard/android/layout_tests/fast/images/svg-as-image.html
-/sdcard/android/layout_tests/fast/images/svg-as-background.html
-/sdcard/android/layout_tests/fast/images/pdf-as-tiled-background.html
-/sdcard/android/layout_tests/fast/images/pdf-as-image.html
-/sdcard/android/layout_tests/fast/images/pdf-as-image-landscape.html
-/sdcard/android/layout_tests/fast/images/pdf-as-background.html
-/sdcard/android/layout_tests/fast/images/object-image.html
-/sdcard/android/layout_tests/fast/images/image-map-anchor-children.html
-/sdcard/android/layout_tests/fast/images/image-in-map.html
-/sdcard/android/layout_tests/fast/images/favicon-as-image.html
-/sdcard/android/layout_tests/fast/images/embed-image.html
-/sdcard/android/layout_tests/fast/images/animated-gif-with-offsets.html
-/sdcard/android/layout_tests/fast/html/marquee-scroll.html
-/sdcard/android/layout_tests/fast/html/listing.html
-/sdcard/android/layout_tests/fast/html/link-rel-stylesheet.html
-/sdcard/android/layout_tests/fast/html/keygen.html
-/sdcard/android/layout_tests/fast/history/history_reload.html
-/sdcard/android/layout_tests/fast/history/clicked-link-is-visited.html
-/sdcard/android/layout_tests/fast/frames/viewsource-attribute.html
-/sdcard/android/layout_tests/fast/frames/valid.html
-/sdcard/android/layout_tests/fast/frames/onlyCommentInIFrame.html
-/sdcard/android/layout_tests/fast/frames/no-frame-borders.html
-/sdcard/android/layout_tests/fast/frames/invalid.html
-/sdcard/android/layout_tests/fast/frames/inline-object-inside-frameset.html
-/sdcard/android/layout_tests/fast/frames/iframe-with-frameborder.html
-/sdcard/android/layout_tests/fast/frames/iframe-text-contents.html
-/sdcard/android/layout_tests/fast/frames/iframe-scrolling-attribute.html
-/sdcard/android/layout_tests/fast/frames/frameset-style-recalc.html
-/sdcard/android/layout_tests/fast/frames/frameElement-iframe.html
-/sdcard/android/layout_tests/fast/frames/frameElement-frame.html
-/sdcard/android/layout_tests/fast/frames/frame-src-attribute.html
-/sdcard/android/layout_tests/fast/frames/frame-set-whitespace-attributes.html
-/sdcard/android/layout_tests/fast/frames/frame-scrolling-attribute.html
-/sdcard/android/layout_tests/fast/frames/frame-navigation.html
-/sdcard/android/layout_tests/fast/frames/frame-length-fractional.html
-/sdcard/android/layout_tests/fast/frames/frame-element-name.html
-/sdcard/android/layout_tests/fast/frames/empty-cols-attribute.html
-/sdcard/android/layout_tests/fast/frames/contentWindow_iFrame.html
-/sdcard/android/layout_tests/fast/frames/contentWindow_Frame.html
-/sdcard/android/layout_tests/fast/frames/calculate-round.html
-/sdcard/android/layout_tests/fast/frames/calculate-relative.html
-/sdcard/android/layout_tests/fast/frames/calculate-percentage.html
-/sdcard/android/layout_tests/fast/frames/calculate-order.html
-/sdcard/android/layout_tests/fast/frames/calculate-fixed.html
-/sdcard/android/layout_tests/fast/frames/002.html
-/sdcard/android/layout_tests/fast/frames/001.html
-/sdcard/android/layout_tests/fast/forms/thumbslider-no-parent-slider.html
-/sdcard/android/layout_tests/fast/forms/thumbslider-crash.html
-/sdcard/android/layout_tests/fast/forms/textfield-outline.html
-/sdcard/android/layout_tests/fast/forms/textfield-drag-into-disabled.html
-/sdcard/android/layout_tests/fast/forms/textAreaLineHeight.html
-/sdcard/android/layout_tests/fast/forms/textarea-width.html
-/sdcard/android/layout_tests/fast/forms/textarea-setinnerhtml.html
-/sdcard/android/layout_tests/fast/forms/textarea-scrolled-type.html
-/sdcard/android/layout_tests/fast/forms/textarea-rows-cols.html
-/sdcard/android/layout_tests/fast/forms/slider-thumb-shared-style.html
-/sdcard/android/layout_tests/fast/forms/slider-padding.html
-/sdcard/android/layout_tests/fast/forms/select-writing-direction-natural.html
-/sdcard/android/layout_tests/fast/forms/select-size.html
-/sdcard/android/layout_tests/fast/forms/select-selected.html
-/sdcard/android/layout_tests/fast/forms/select-list-box-with-height.html
-/sdcard/android/layout_tests/fast/forms/select-initial-position.html
-/sdcard/android/layout_tests/fast/forms/select-display-none-style-resolve.html
-/sdcard/android/layout_tests/fast/forms/select-disabled-appearance.html
-/sdcard/android/layout_tests/fast/forms/select-change-popup-to-listbox.html
-/sdcard/android/layout_tests/fast/forms/select-change-listbox-to-popup.html
-/sdcard/android/layout_tests/fast/forms/select-change-listbox-size.html
-/sdcard/android/layout_tests/fast/forms/select-block-background.html
-/sdcard/android/layout_tests/fast/forms/select-baseline.html
-/sdcard/android/layout_tests/fast/forms/select-align.html
-/sdcard/android/layout_tests/fast/forms/search-placeholder-value-changed.html
-/sdcard/android/layout_tests/fast/forms/search-display-none-cancel-button.html
-/sdcard/android/layout_tests/fast/forms/radio_checked_dynamic.html
-/sdcard/android/layout_tests/fast/forms/radio_checked.html
-/sdcard/android/layout_tests/fast/forms/radio-nested-labels.html
-/sdcard/android/layout_tests/fast/forms/radio-attr-order.html
-/sdcard/android/layout_tests/fast/forms/preserveFormDuringResidualStyle.html
-/sdcard/android/layout_tests/fast/forms/plaintext-mode-2.html
-/sdcard/android/layout_tests/fast/forms/placeholder-set-attribute.html
-/sdcard/android/layout_tests/fast/forms/placeholder-pseudo-style.html
-/sdcard/android/layout_tests/fast/forms/password-placeholder.html
-/sdcard/android/layout_tests/fast/forms/password-placeholder-text-security.html
-/sdcard/android/layout_tests/fast/forms/option-text-clip.html
-/sdcard/android/layout_tests/fast/forms/option-strip-whitespace.html
-/sdcard/android/layout_tests/fast/forms/option-script.html
-/sdcard/android/layout_tests/fast/forms/option-index.html
-/sdcard/android/layout_tests/fast/forms/negativeLineHeight.html
-/sdcard/android/layout_tests/fast/forms/minWidthPercent.html
-/sdcard/android/layout_tests/fast/forms/menulist-width-change.html
-/sdcard/android/layout_tests/fast/forms/menulist-separator-painting.html
-/sdcard/android/layout_tests/fast/forms/menulist-restrict-line-height.html
-/sdcard/android/layout_tests/fast/forms/menulist-option-wrap.html
-/sdcard/android/layout_tests/fast/forms/menulist-no-overflow.html
-/sdcard/android/layout_tests/fast/forms/menulist-narrow-width.html
-/sdcard/android/layout_tests/fast/forms/menulist-deselect-update.html
-/sdcard/android/layout_tests/fast/forms/menulist-clip.html
-/sdcard/android/layout_tests/fast/forms/listbox-width-change.html
-/sdcard/android/layout_tests/fast/forms/listbox-selection-2.html
-/sdcard/android/layout_tests/fast/forms/listbox-scrollbar-incremental-load.html
-/sdcard/android/layout_tests/fast/forms/listbox-deselect-scroll.html
-/sdcard/android/layout_tests/fast/forms/listbox-clip.html
-/sdcard/android/layout_tests/fast/forms/input-width.html
-/sdcard/android/layout_tests/fast/forms/input-value.html
-/sdcard/android/layout_tests/fast/forms/input-type-text-min-width.html
-/sdcard/android/layout_tests/fast/forms/input-type-change2.html
-/sdcard/android/layout_tests/fast/forms/input-type-change.html
-/sdcard/android/layout_tests/fast/forms/input-text-word-wrap.html
-/sdcard/android/layout_tests/fast/forms/input-text-self-emptying-click.html
-/sdcard/android/layout_tests/fast/forms/input-text-scroll-left-on-blur.html
-/sdcard/android/layout_tests/fast/forms/input-text-paste-maxlength.html
-/sdcard/android/layout_tests/fast/forms/input-text-option-delete.html
-/sdcard/android/layout_tests/fast/forms/input-text-maxlength.html
-/sdcard/android/layout_tests/fast/forms/input-text-drag-down.html
-/sdcard/android/layout_tests/fast/forms/input-text-double-click.html
-/sdcard/android/layout_tests/fast/forms/input-text-click-outside.html
-/sdcard/android/layout_tests/fast/forms/input-text-click-inside.html
-/sdcard/android/layout_tests/fast/forms/input-table.html
-/sdcard/android/layout_tests/fast/forms/input-spaces.html
-/sdcard/android/layout_tests/fast/forms/input-readonly-empty.html
-/sdcard/android/layout_tests/fast/forms/input-readonly-dimmed.html
-/sdcard/android/layout_tests/fast/forms/input-readonly-autoscroll.html
-/sdcard/android/layout_tests/fast/forms/input-paste-undo.html
-/sdcard/android/layout_tests/fast/forms/input-no-renderer.html
-/sdcard/android/layout_tests/fast/forms/input-field-text-truncated.html
-/sdcard/android/layout_tests/fast/forms/input-double-click-selection-gap-bug.html
-/sdcard/android/layout_tests/fast/forms/input-disabled-color.html
-/sdcard/android/layout_tests/fast/forms/input-baseline.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-width.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-visibility.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-selection.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-readonly.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-preventDefault.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-height.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-focus.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-default-bkcolor.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-bkcolor.html
-/sdcard/android/layout_tests/fast/forms/input-align.html
-/sdcard/android/layout_tests/fast/forms/input-align-image.html
-/sdcard/android/layout_tests/fast/forms/indeterminate.html
-/sdcard/android/layout_tests/fast/forms/image-border.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label07.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label06.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label05.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label04.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label03.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label02.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label01.html
-/sdcard/android/layout_tests/fast/forms/hidden-listbox.html
-/sdcard/android/layout_tests/fast/forms/hidden-input-file.html
-/sdcard/android/layout_tests/fast/forms/formmove3.html
-/sdcard/android/layout_tests/fast/forms/formmove2.html
-/sdcard/android/layout_tests/fast/forms/formmove.html
-/sdcard/android/layout_tests/fast/forms/form-hides-table.html
-/sdcard/android/layout_tests/fast/forms/float-before-fieldset.html
-/sdcard/android/layout_tests/fast/forms/file-input-disabled.html
-/sdcard/android/layout_tests/fast/forms/file-input-direction.html
-/sdcard/android/layout_tests/fast/forms/fieldset-with-float.html
-/sdcard/android/layout_tests/fast/forms/fieldset-align.html
-/sdcard/android/layout_tests/fast/forms/dragging-to-file-input.html
-/sdcard/android/layout_tests/fast/forms/dragging-to-disabled-file-input.html
-/sdcard/android/layout_tests/fast/forms/disabled-select-change-index.html
-/sdcard/android/layout_tests/fast/forms/control-restrict-line-height.html
-/sdcard/android/layout_tests/fast/forms/control-clip.html
-/sdcard/android/layout_tests/fast/forms/control-clip-overflow.html
-/sdcard/android/layout_tests/fast/forms/checkbox-radio-onchange.html
-/sdcard/android/layout_tests/fast/forms/button-white-space.html
-/sdcard/android/layout_tests/fast/forms/button-text-transform.html
-/sdcard/android/layout_tests/fast/forms/button-table-styles.html
-/sdcard/android/layout_tests/fast/forms/button-submit.html
-/sdcard/android/layout_tests/fast/forms/button-sizes.html
-/sdcard/android/layout_tests/fast/forms/button-positioned.html
-/sdcard/android/layout_tests/fast/forms/button-inner-block-reuse.html
-/sdcard/android/layout_tests/fast/forms/button-generated-content.html
-/sdcard/android/layout_tests/fast/forms/button-default-title.html
-/sdcard/android/layout_tests/fast/forms/button-cannot-be-nested.html
-/sdcard/android/layout_tests/fast/forms/button-align.html
-/sdcard/android/layout_tests/fast/forms/box-shadow-override.html
-/sdcard/android/layout_tests/fast/forms/blankbuttons.html
-/sdcard/android/layout_tests/fast/forms/006.html
-/sdcard/android/layout_tests/fast/forms/005.html
-/sdcard/android/layout_tests/fast/forms/004.html
-/sdcard/android/layout_tests/fast/forms/003.html
-/sdcard/android/layout_tests/fast/forms/002.html
-/sdcard/android/layout_tests/fast/forms/001.html
-/sdcard/android/layout_tests/fast/flexbox/flex-hang.html
-/sdcard/android/layout_tests/fast/flexbox/026.html
-/sdcard/android/layout_tests/fast/flexbox/025.html
-/sdcard/android/layout_tests/fast/flexbox/024.html
-/sdcard/android/layout_tests/fast/flexbox/023.html
-/sdcard/android/layout_tests/fast/flexbox/022.html
-/sdcard/android/layout_tests/fast/flexbox/021.html
-/sdcard/android/layout_tests/fast/flexbox/020.html
-/sdcard/android/layout_tests/fast/flexbox/019.html
-/sdcard/android/layout_tests/fast/flexbox/018.html
-/sdcard/android/layout_tests/fast/flexbox/017.html
-/sdcard/android/layout_tests/fast/flexbox/016.html
-/sdcard/android/layout_tests/fast/flexbox/015.html
-/sdcard/android/layout_tests/fast/flexbox/014.html
-/sdcard/android/layout_tests/fast/flexbox/013.html
-/sdcard/android/layout_tests/fast/flexbox/012.html
-/sdcard/android/layout_tests/fast/flexbox/011.html
-/sdcard/android/layout_tests/fast/flexbox/010.html
-/sdcard/android/layout_tests/fast/flexbox/009.html
-/sdcard/android/layout_tests/fast/flexbox/008.html
-/sdcard/android/layout_tests/fast/flexbox/007.html
-/sdcard/android/layout_tests/fast/flexbox/006.html
-/sdcard/android/layout_tests/fast/flexbox/005.html
-/sdcard/android/layout_tests/fast/flexbox/004.html
-/sdcard/android/layout_tests/fast/flexbox/003.html
-/sdcard/android/layout_tests/fast/flexbox/002.html
-/sdcard/android/layout_tests/fast/flexbox/001.html
-/sdcard/android/layout_tests/fast/events/updateLayoutForHitTest.html
-/sdcard/android/layout_tests/fast/events/standalone-image-drag-to-editable.html
-/sdcard/android/layout_tests/fast/events/reveal-link-when-focused.html
-/sdcard/android/layout_tests/fast/events/onloadFrameCrash.html
-/sdcard/android/layout_tests/fast/events/onload-re-entry.html
-/sdcard/android/layout_tests/fast/events/mouseout-dead-node.html
-/sdcard/android/layout_tests/fast/events/label-focus.html
-/sdcard/android/layout_tests/fast/events/keydown-1.html
-/sdcard/android/layout_tests/fast/events/focusingUnloadedFrame.html
-/sdcard/android/layout_tests/fast/events/event-sender-mouse-moved.html
-/sdcard/android/layout_tests/fast/events/event-listener-on-link.html
-/sdcard/android/layout_tests/fast/events/context-onmousedown-event.html
-/sdcard/android/layout_tests/fast/events/autoscroll.html
-/sdcard/android/layout_tests/fast/events/attempt-scroll-with-no-scrollbars.html
-/sdcard/android/layout_tests/fast/events/5056619.html
-/sdcard/android/layout_tests/fast/encoding/xmacroman-encoding-test.html
-/sdcard/android/layout_tests/fast/encoding/utf-16-no-bom.xml
-/sdcard/android/layout_tests/fast/encoding/utf-16-little-endian.html
-/sdcard/android/layout_tests/fast/encoding/utf-16-big-endian.html
-/sdcard/android/layout_tests/fast/encoding/invalid-UTF-8.html
-/sdcard/android/layout_tests/fast/encoding/denormalised-voiced-japanese-chars.html
-/sdcard/android/layout_tests/fast/dynamic/view-overflow.html
-/sdcard/android/layout_tests/fast/dynamic/subtree-table-cell-height.html
-/sdcard/android/layout_tests/fast/dynamic/subtree-parent-static-y.html
-/sdcard/android/layout_tests/fast/dynamic/subtree-no-common-root-static-y.html
-/sdcard/android/layout_tests/fast/dynamic/subtree-boundary-percent-height.html
-/sdcard/android/layout_tests/fast/dynamic/staticY.html
-/sdcard/android/layout_tests/fast/dynamic/staticY-marking-parents-regression.html
-/sdcard/android/layout_tests/fast/dynamic/selection-highlight-adjust.html
-/sdcard/android/layout_tests/fast/dynamic/positioned-movement-with-positioned-children.html
-/sdcard/android/layout_tests/fast/dynamic/outerHTML-img.html
-/sdcard/android/layout_tests/fast/dynamic/outerHTML-doc.html
-/sdcard/android/layout_tests/fast/dynamic/noninlinebadness.html
-/sdcard/android/layout_tests/fast/dynamic/move-node-with-selection.html
-/sdcard/android/layout_tests/fast/dynamic/link-href-change.html
-/sdcard/android/layout_tests/fast/dynamic/layer-hit-test-crash.html
-/sdcard/android/layout_tests/fast/dynamic/insert-before-table-part-in-continuation.html
-/sdcard/android/layout_tests/fast/dynamic/genContentDestroyChildren.html
-/sdcard/android/layout_tests/fast/dynamic/floating-to-positioned.html
-/sdcard/android/layout_tests/fast/dynamic/floating-to-positioned-2.html
-/sdcard/android/layout_tests/fast/dynamic/float-withdrawal.html
-/sdcard/android/layout_tests/fast/dynamic/float-withdrawal-2.html
-/sdcard/android/layout_tests/fast/dynamic/float-no-longer-overhanging.html
-/sdcard/android/layout_tests/fast/dynamic/float-in-trailing-whitespace-after-last-line-break.html
-/sdcard/android/layout_tests/fast/dynamic/flash-replacement-test.html
-/sdcard/android/layout_tests/fast/dynamic/create-renderer-for-whitespace-only-text.html
-/sdcard/android/layout_tests/fast/dynamic/containing-block-change.html
-/sdcard/android/layout_tests/fast/dynamic/anonymous-block-orphaned-lines.html
-/sdcard/android/layout_tests/fast/dynamic/anonymous-block-layer-lost.html
-/sdcard/android/layout_tests/fast/dynamic/015.html
-/sdcard/android/layout_tests/fast/dynamic/014.html
-/sdcard/android/layout_tests/fast/dynamic/013.html
-/sdcard/android/layout_tests/fast/dynamic/012.html
-/sdcard/android/layout_tests/fast/dynamic/011.html
-/sdcard/android/layout_tests/fast/dynamic/010.html
-/sdcard/android/layout_tests/fast/dynamic/009.html
-/sdcard/android/layout_tests/fast/dynamic/008.html
-/sdcard/android/layout_tests/fast/dynamic/007.html
-/sdcard/android/layout_tests/fast/dynamic/006.html
-/sdcard/android/layout_tests/fast/dynamic/005.html
-/sdcard/android/layout_tests/fast/dynamic/004.html
-/sdcard/android/layout_tests/fast/dynamic/002.html
-/sdcard/android/layout_tests/fast/dynamic/001.html
-/sdcard/android/layout_tests/fast/dom/Window/open-existing-pop-up-blocking.html
-/sdcard/android/layout_tests/fast/dom/Window/btoa-pnglet.html
-/sdcard/android/layout_tests/fast/dom/Range/surroundContents-1.html
-/sdcard/android/layout_tests/fast/dom/Range/create-contextual-fragment.html
-/sdcard/android/layout_tests/fast/dom/HTMLTextAreaElement/reset-textarea.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableElement/createCaption.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableElement/colSpan.html
-/sdcard/android/layout_tests/fast/dom/HTMLStyleElement/insert-parser-generated.html
-/sdcard/android/layout_tests/fast/dom/HTMLObjectElement/vspace-hspace-as-number.html
-/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/textInHead5.html
-/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/textInHead4.html
-/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/textInHead3.html
-/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/textInHead2.html
-/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/textInHead1.html
-/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/head-link-style-href-check.html
-/sdcard/android/layout_tests/fast/dom/HTMLElement/bdo.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/frameless-location-bugzilla10837.html
-/sdcard/android/layout_tests/fast/dom/Element/null-offset-parent.html
-/sdcard/android/layout_tests/fast/dom/Document/early-document-access.html
-/sdcard/android/layout_tests/fast/dom/row-inner-text.html
-/sdcard/android/layout_tests/fast/dom/replaceChild.html
-/sdcard/android/layout_tests/fast/dom/outerText.html
-/sdcard/android/layout_tests/fast/dom/isindex-002.html
-/sdcard/android/layout_tests/fast/dom/isindex-001.html
-/sdcard/android/layout_tests/fast/dom/focus-contenteditable.html
-/sdcard/android/layout_tests/fast/dom/dom-parse-serialize-display.html
-/sdcard/android/layout_tests/fast/dom/delete-contents.html
-/sdcard/android/layout_tests/fast/dom/css-rule-functions.html
-/sdcard/android/layout_tests/fast/dom/css-mediarule-insertRule-update.html
-/sdcard/android/layout_tests/fast/dom/css-mediarule-deleteRule-update.html
-/sdcard/android/layout_tests/fast/dom/css-inline-style-important.html
-/sdcard/android/layout_tests/fast/dom/css-cached-import-rule.html
-/sdcard/android/layout_tests/fast/dom/clone-node-dynamic-style.html
-/sdcard/android/layout_tests/fast/dom/clone-contents-0-end-offset.html
-/sdcard/android/layout_tests/fast/dom/clientWidthAfterDocumentIsRemoved.html
-/sdcard/android/layout_tests/fast/dom/children-nodes.html
-/sdcard/android/layout_tests/fast/dom/blur-contenteditable.html
-/sdcard/android/layout_tests/fast/dom/attr_dead_doc.html
-/sdcard/android/layout_tests/fast/doctypes/004.html
-/sdcard/android/layout_tests/fast/doctypes/003.html
-/sdcard/android/layout_tests/fast/doctypes/002.html
-/sdcard/android/layout_tests/fast/doctypes/001.html
-/sdcard/android/layout_tests/fast/css-generated-content/wbr-with-before-content.html
-/sdcard/android/layout_tests/fast/css-generated-content/visibleContentHiddenParent.html
-/sdcard/android/layout_tests/fast/css-generated-content/table-with-before.html
-/sdcard/android/layout_tests/fast/css-generated-content/table-row-with-before.html
-/sdcard/android/layout_tests/fast/css-generated-content/table-row-group-with-before.html
-/sdcard/android/layout_tests/fast/css-generated-content/table-row-group-to-inline.html
-/sdcard/android/layout_tests/fast/css-generated-content/table-cell-before-content.html
-/sdcard/android/layout_tests/fast/css-generated-content/spellingToolTip-assert.html
-/sdcard/android/layout_tests/fast/css-generated-content/positioned-background-hit-test-crash.html
-/sdcard/android/layout_tests/fast/css-generated-content/no-openclose-quote.html
-/sdcard/android/layout_tests/fast/css-generated-content/inline-display-types.html
-/sdcard/android/layout_tests/fast/css-generated-content/hover-style-change.html
-/sdcard/android/layout_tests/fast/css-generated-content/before-with-first-letter.html
-/sdcard/android/layout_tests/fast/css-generated-content/after-order.html
-/sdcard/android/layout_tests/fast/css-generated-content/absolute-position-inside-inline.html
-/sdcard/android/layout_tests/fast/css-generated-content/016.html
-/sdcard/android/layout_tests/fast/css-generated-content/015.html
-/sdcard/android/layout_tests/fast/css-generated-content/014.html
-/sdcard/android/layout_tests/fast/css-generated-content/013.html
-/sdcard/android/layout_tests/fast/css-generated-content/012.html
-/sdcard/android/layout_tests/fast/css-generated-content/011.html
-/sdcard/android/layout_tests/fast/css-generated-content/010.html
-/sdcard/android/layout_tests/fast/css-generated-content/009.html
-/sdcard/android/layout_tests/fast/css-generated-content/008.html
-/sdcard/android/layout_tests/fast/css-generated-content/007.html
-/sdcard/android/layout_tests/fast/css-generated-content/005.html
-/sdcard/android/layout_tests/fast/css-generated-content/004.html
-/sdcard/android/layout_tests/fast/css-generated-content/003.html
-/sdcard/android/layout_tests/fast/css-generated-content/002.html
-/sdcard/android/layout_tests/fast/css-generated-content/001.html
-/sdcard/android/layout_tests/fast/css/variables/variable-iteration-test.html
-/sdcard/android/layout_tests/fast/css/variables/shorthand-test.html
-/sdcard/android/layout_tests/fast/css/variables/set-variable-test.html
-/sdcard/android/layout_tests/fast/css/variables/remove-variable-test.html
-/sdcard/android/layout_tests/fast/css/variables/print-test.html
-/sdcard/android/layout_tests/fast/css/variables/override-test.html
-/sdcard/android/layout_tests/fast/css/variables/multiple-term-test.html
-/sdcard/android/layout_tests/fast/css/variables/multiple-blocks-test.html
-/sdcard/android/layout_tests/fast/css/variables/misplaced-variables-test.html
-/sdcard/android/layout_tests/fast/css/variables/misplaced-import-test.html
-/sdcard/android/layout_tests/fast/css/variables/margin-test.html
-/sdcard/android/layout_tests/fast/css/variables/invalid-variable-test.html
-/sdcard/android/layout_tests/fast/css/variables/inline-style-test.html
-/sdcard/android/layout_tests/fast/css/variables/import-test.html
-/sdcard/android/layout_tests/fast/css/variables/image-test.html
-/sdcard/android/layout_tests/fast/css/variables/font-test.html
-/sdcard/android/layout_tests/fast/css/variables/declaration-block-test.html
-/sdcard/android/layout_tests/fast/css/variables/colors-test.html
-/sdcard/android/layout_tests/fast/css/variables/block-cycle-test.html
-/sdcard/android/layout_tests/fast/css/namespaces/007.xml
-/sdcard/android/layout_tests/fast/css/namespaces/006.xml
-/sdcard/android/layout_tests/fast/css/namespaces/005.xml
-/sdcard/android/layout_tests/fast/css/namespaces/004.xml
-/sdcard/android/layout_tests/fast/css/namespaces/003.xml
-/sdcard/android/layout_tests/fast/css/namespaces/002.xml
-/sdcard/android/layout_tests/fast/css/namespaces/001.xml
-/sdcard/android/layout_tests/fast/css/counters/invalidate-cached-counter-node.html
-/sdcard/android/layout_tests/fast/css/counters/counter-text-transform.html
-/sdcard/android/layout_tests/fast/css/counters/counter-text-security.html
-/sdcard/android/layout_tests/fast/css/zoom-property-parsing.html
-/sdcard/android/layout_tests/fast/css/zoom-font-size.html
-/sdcard/android/layout_tests/fast/css/ZeroOpacityLayers2.html
-/sdcard/android/layout_tests/fast/css/ZeroOpacityLayers.html
-/sdcard/android/layout_tests/fast/css/xml-stylesheet-pi-not-in-prolog.xml
-/sdcard/android/layout_tests/fast/css/word-space-extra.html
-/sdcard/android/layout_tests/fast/css/visibility-hit-test.html
-/sdcard/android/layout_tests/fast/css/vertical-align-lengths.html
-/sdcard/android/layout_tests/fast/css/value-list-out-of-bounds-crash.html
-/sdcard/android/layout_tests/fast/css/universal-hover-quirk.html
-/sdcard/android/layout_tests/fast/css/transition-color-unspecified.html
-/sdcard/android/layout_tests/fast/css/transform-default-parameter.html
-/sdcard/android/layout_tests/fast/css/textCapitalizeEdgeCases.html
-/sdcard/android/layout_tests/fast/css/text-security.html
-/sdcard/android/layout_tests/fast/css/text-align.html
-/sdcard/android/layout_tests/fast/css/target-fragment-match.html
-/sdcard/android/layout_tests/fast/css/table-text-align-strict.html
-/sdcard/android/layout_tests/fast/css/table-text-align-quirk.html
-/sdcard/android/layout_tests/fast/css/style-parsed-outside-head.html
-/sdcard/android/layout_tests/fast/css/style-outside-head.html
-/sdcard/android/layout_tests/fast/css/simple-selector-chain-parsing.html
-/sdcard/android/layout_tests/fast/css/shadow-multiple.html
-/sdcard/android/layout_tests/fast/css/selector-set-attribute.html
-/sdcard/android/layout_tests/fast/css/rtl-ordering.html
-/sdcard/android/layout_tests/fast/css/rgb-float.html
-/sdcard/android/layout_tests/fast/css/resize-corner-tracking.html
-/sdcard/android/layout_tests/fast/css/quirk-orphaned-units.html
-/sdcard/android/layout_tests/fast/css/position-negative-top-margin.html
-/sdcard/android/layout_tests/fast/css/percentage-non-integer.html
-/sdcard/android/layout_tests/fast/css/pendingStylesheetFontSize.html
-/sdcard/android/layout_tests/fast/css/outline-auto-location.html
-/sdcard/android/layout_tests/fast/css/outline-auto-empty-rects.html
-/sdcard/android/layout_tests/fast/css/only-of-type-pseudo-class.html
-/sdcard/android/layout_tests/fast/css/only-child-pseudo-class.html
-/sdcard/android/layout_tests/fast/css/negative-nth-child.html
-/sdcard/android/layout_tests/fast/css/max-height-none.html
-/sdcard/android/layout_tests/fast/css/MarqueeLayoutTest.html
-/sdcard/android/layout_tests/fast/css/marginComputedStyle.html
-/sdcard/android/layout_tests/fast/css/margin-top-bottom-dynamic.html
-/sdcard/android/layout_tests/fast/css/margin-bottom-form-element-strict.html
-/sdcard/android/layout_tests/fast/css/margin-bottom-form-element-quirk.html
-/sdcard/android/layout_tests/fast/css/live-cssrules.html
-/sdcard/android/layout_tests/fast/css/list-outline.html
-/sdcard/android/layout_tests/fast/css/link-outside-head.html
-/sdcard/android/layout_tests/fast/css/line-height.html
-/sdcard/android/layout_tests/fast/css/line-height-overflow.html
-/sdcard/android/layout_tests/fast/css/line-height-negative.html
-/sdcard/android/layout_tests/fast/css/line-height-font-order.html
-/sdcard/android/layout_tests/fast/css/layerZOrderCrash.html
-/sdcard/android/layout_tests/fast/css/last-of-type-pseudo-class.html
-/sdcard/android/layout_tests/fast/css/last-child-style-sharing.html
-/sdcard/android/layout_tests/fast/css/last-child-pseudo-class.html
-/sdcard/android/layout_tests/fast/css/invalidation-errors.html
-/sdcard/android/layout_tests/fast/css/invalidation-errors-3.html
-/sdcard/android/layout_tests/fast/css/invalidation-errors-2.html
-/sdcard/android/layout_tests/fast/css/invalid-pseudo-classes.html
-/sdcard/android/layout_tests/fast/css/invalid-percentage-property.html
-/sdcard/android/layout_tests/fast/css/inline-properties-important.html
-/sdcard/android/layout_tests/fast/css/import_with_baseurl.html
-/sdcard/android/layout_tests/fast/css/import-rule-regression-11590.html
-/sdcard/android/layout_tests/fast/css/imageTileOpacity.html
-/sdcard/android/layout_tests/fast/css/ignore-text-zoom.html
-/sdcard/android/layout_tests/fast/css/hsla-color.html
-/sdcard/android/layout_tests/fast/css/hsl-color.html
-/sdcard/android/layout_tests/fast/css/hover-subselector.html
-/sdcard/android/layout_tests/fast/css/font_property_normal.html
-/sdcard/android/layout_tests/fast/css/font-weight-1.html
-/sdcard/android/layout_tests/fast/css/font-size-negative.html
-/sdcard/android/layout_tests/fast/css/font-shorthand-weight-only.html
-/sdcard/android/layout_tests/fast/css/font-face-unicode-range.html
-/sdcard/android/layout_tests/fast/css/font-face-remote.html
-/sdcard/android/layout_tests/fast/css/font-face-multiple-remote-sources.html
-/sdcard/android/layout_tests/fast/css/font-face-multiple-faces.html
-/sdcard/android/layout_tests/fast/css/font-face-descriptor-multiple-values.html
-/sdcard/android/layout_tests/fast/css/font-face-in-media-rule.html
-/sdcard/android/layout_tests/fast/css/font-face-default-font.html
-/sdcard/android/layout_tests/fast/css/first-of-type-pseudo-class.html
-/sdcard/android/layout_tests/fast/css/first-letter-visibility.html
-/sdcard/android/layout_tests/fast/css/first-letter-skip-out-of-flow.html
-/sdcard/android/layout_tests/fast/css/first-letter-recalculation.html
-/sdcard/android/layout_tests/fast/css/first-letter-hover.html
-/sdcard/android/layout_tests/fast/css/first-letter-float.html
-/sdcard/android/layout_tests/fast/css/first-letter-float-after-float.html
-/sdcard/android/layout_tests/fast/css/first-letter-detach.html
-/sdcard/android/layout_tests/fast/css/first-letter-capitalized.html
-/sdcard/android/layout_tests/fast/css/first-child-pseudo-class.html
-/sdcard/android/layout_tests/fast/css/find-next-layer.html
-/sdcard/android/layout_tests/fast/css/fieldset-display-row.html
-/sdcard/android/layout_tests/fast/css/ex-after-font-variant.html
-/sdcard/android/layout_tests/fast/css/error-in-last-decl.html
-/sdcard/android/layout_tests/fast/css/empty-pseudo-class.html
-/sdcard/android/layout_tests/fast/css/empty-generated-content.html
-/sdcard/android/layout_tests/fast/css/empty-body-test.html
-/sdcard/android/layout_tests/fast/css/dynamic-sibling-selector.html
-/sdcard/android/layout_tests/fast/css/disabled-author-styles.html
-/sdcard/android/layout_tests/fast/css/css3-nth-child.html
-/sdcard/android/layout_tests/fast/css/css3-modsel-22.html
-/sdcard/android/layout_tests/fast/css/css2-system-fonts.html
-/sdcard/android/layout_tests/fast/css/css-imports.html
-/sdcard/android/layout_tests/fast/css/continuationCrash.html
-/sdcard/android/layout_tests/fast/css/contentImage.html
-/sdcard/android/layout_tests/fast/css/contentDivWithChildren.html
-/sdcard/android/layout_tests/fast/css/contentDiv.html
-/sdcard/android/layout_tests/fast/css/content-dynamic.html
-/sdcard/android/layout_tests/fast/css/color-quirk.html
-/sdcard/android/layout_tests/fast/css/border-height.html
-/sdcard/android/layout_tests/fast/css/begin-end-contain-selector-empty-value.html
-/sdcard/android/layout_tests/fast/css/background-shorthand-invalid-url.html
-/sdcard/android/layout_tests/fast/css/background-image-with-baseurl.html
-/sdcard/android/layout_tests/fast/css/attribute-selector-empty-value.html
-/sdcard/android/layout_tests/fast/css/apple-prefix.html
-/sdcard/android/layout_tests/fast/css/affected-by-hover-after-style-change.html
-/sdcard/android/layout_tests/fast/css/acid2.html
-/sdcard/android/layout_tests/fast/css/acid2-pixel.html
-/sdcard/android/layout_tests/fast/css/absolute-poition-in-rtl-parent.html
-/sdcard/android/layout_tests/fast/css/008.html
-/sdcard/android/layout_tests/fast/css/007.html
-/sdcard/android/layout_tests/fast/css/006.html
-/sdcard/android/layout_tests/fast/css/005.html
-/sdcard/android/layout_tests/fast/css/004.html
-/sdcard/android/layout_tests/fast/css/003.html
-/sdcard/android/layout_tests/fast/css/002.html
-/sdcard/android/layout_tests/fast/css/001.html
-/sdcard/android/layout_tests/fast/compact/003.html
-/sdcard/android/layout_tests/fast/compact/002.html
-/sdcard/android/layout_tests/fast/compact/001.html
-/sdcard/android/layout_tests/fast/clip/outline-overflowClip.html
-/sdcard/android/layout_tests/fast/clip/nestedTransparencyClip.html
-/sdcard/android/layout_tests/fast/clip/017.html
-/sdcard/android/layout_tests/fast/clip/016.html
-/sdcard/android/layout_tests/fast/clip/015.html
-/sdcard/android/layout_tests/fast/clip/014.html
-/sdcard/android/layout_tests/fast/clip/013.html
-/sdcard/android/layout_tests/fast/clip/012.html
-/sdcard/android/layout_tests/fast/clip/011.html
-/sdcard/android/layout_tests/fast/clip/010.html
-/sdcard/android/layout_tests/fast/clip/009.html
-/sdcard/android/layout_tests/fast/clip/008.html
-/sdcard/android/layout_tests/fast/clip/007.html
-/sdcard/android/layout_tests/fast/clip/006.html
-/sdcard/android/layout_tests/fast/clip/005.html
-/sdcard/android/layout_tests/fast/clip/004.html
-/sdcard/android/layout_tests/fast/clip/003.html
-/sdcard/android/layout_tests/fast/clip/002.html
-/sdcard/android/layout_tests/fast/clip/001.html
-/sdcard/android/layout_tests/fast/canvas/zero-size-fill-rect.html
-/sdcard/android/layout_tests/fast/canvas/shadow-offset-7.html
-/sdcard/android/layout_tests/fast/canvas/shadow-offset-6.html
-/sdcard/android/layout_tests/fast/canvas/shadow-offset-5.html
-/sdcard/android/layout_tests/fast/canvas/shadow-offset-4.html
-/sdcard/android/layout_tests/fast/canvas/shadow-offset-3.html
-/sdcard/android/layout_tests/fast/canvas/shadow-offset-2.html
-/sdcard/android/layout_tests/fast/canvas/shadow-offset-1.html
-/sdcard/android/layout_tests/fast/canvas/quadraticCurveTo.xml
-/sdcard/android/layout_tests/fast/canvas/patternfill-repeat.html
-/sdcard/android/layout_tests/fast/canvas/image-object-in-canvas.html
-/sdcard/android/layout_tests/fast/canvas/gradient-empty-path.html
-/sdcard/android/layout_tests/fast/canvas/fillrect_gradient.html
-/sdcard/android/layout_tests/fast/canvas/fillrect-gradient-zero-stops.html
-/sdcard/android/layout_tests/fast/canvas/fill-stroke-clip-reset-path.html
-/sdcard/android/layout_tests/fast/canvas/drawImage.html
-/sdcard/android/layout_tests/fast/canvas/canvasDrawingIntoSelf.html
-/sdcard/android/layout_tests/fast/canvas/canvas-transforms-during-path.html
-/sdcard/android/layout_tests/fast/canvas/canvas-transform-skewed.html
-/sdcard/android/layout_tests/fast/canvas/canvas-transform-non-invertible.html
-/sdcard/android/layout_tests/fast/canvas/canvas-transform-nan.html
-/sdcard/android/layout_tests/fast/canvas/canvas-transform-multiply.html
-/sdcard/android/layout_tests/fast/canvas/canvas-transform-infinity.html
-/sdcard/android/layout_tests/fast/canvas/canvas-transform-identity.html
-/sdcard/android/layout_tests/fast/canvas/canvas-text-baseline.html
-/sdcard/android/layout_tests/fast/canvas/canvas-text-alignment.html
-/sdcard/android/layout_tests/fast/canvas/canvas-size-change-after-layout.html
-/sdcard/android/layout_tests/fast/canvas/canvas-resize-reset.html
-/sdcard/android/layout_tests/fast/canvas/canvas-bg.html
-/sdcard/android/layout_tests/fast/canvas/canvas-before-css.html
-/sdcard/android/layout_tests/fast/box-sizing/panels-two.html
-/sdcard/android/layout_tests/fast/box-sizing/panels-one.html
-/sdcard/android/layout_tests/fast/box-sizing/box-sizing.html
-/sdcard/android/layout_tests/fast/box-shadow/border-radius-big.html
-/sdcard/android/layout_tests/fast/box-shadow/basic-shadows.html
-/sdcard/android/layout_tests/fast/borders/svg-as-border-image.html
-/sdcard/android/layout_tests/fast/borders/svg-as-border-image-2.html
-/sdcard/android/layout_tests/fast/borders/outline-offset-min-assert.html
-/sdcard/android/layout_tests/fast/borders/inline-mask-overlay-image.html
-/sdcard/android/layout_tests/fast/borders/fieldsetBorderRadius.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusSolid04.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusSolid03.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusSolid02.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusSolid01.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusRidge01.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusOutset01.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusInvalidColor.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusInset01.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusGroove02.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusGroove01.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDouble03.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDouble02.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDouble01.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDotted03.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDotted02.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDotted01.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDashed03.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDashed02.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDashed01.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusArcs01.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusAllStylesAllCorners.html
-/sdcard/android/layout_tests/fast/borders/border-radius-huge-assert.html
-/sdcard/android/layout_tests/fast/borders/border-image-scale-transform.html
-/sdcard/android/layout_tests/fast/borders/border-image-rotate-transform.html
-/sdcard/android/layout_tests/fast/borders/border-image-omit-right-slice.html
-/sdcard/android/layout_tests/fast/borders/border-image-01.html
-/sdcard/android/layout_tests/fast/borders/border-fit.html
-/sdcard/android/layout_tests/fast/borders/border-color-inherit.html
-/sdcard/android/layout_tests/fast/borders/block-mask-overlay-image.html
-/sdcard/android/layout_tests/fast/body-propagation/overflow/007.html
-/sdcard/android/layout_tests/fast/body-propagation/overflow/006.html
-/sdcard/android/layout_tests/fast/body-propagation/overflow/005.html
-/sdcard/android/layout_tests/fast/body-propagation/overflow/004.html
-/sdcard/android/layout_tests/fast/body-propagation/overflow/003.html
-/sdcard/android/layout_tests/fast/body-propagation/overflow/002.html
-/sdcard/android/layout_tests/fast/body-propagation/overflow/001.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/010.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/009.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/008.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/007.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/006.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/005.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/004.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/003.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/002.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/001.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/008.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/007.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/006.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/005.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/004.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/003.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/002.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/001.html
-/sdcard/android/layout_tests/fast/block/positioning/auto/007.html
-/sdcard/android/layout_tests/fast/block/positioning/auto/006.html
-/sdcard/android/layout_tests/fast/block/positioning/auto/005.html
-/sdcard/android/layout_tests/fast/block/positioning/auto/004.html
-/sdcard/android/layout_tests/fast/block/positioning/auto/003.html
-/sdcard/android/layout_tests/fast/block/positioning/auto/002.html
-/sdcard/android/layout_tests/fast/block/positioning/auto/001.html
-/sdcard/android/layout_tests/fast/block/positioning/window-height-change.html
-/sdcard/android/layout_tests/fast/block/positioning/replaced-inside-fixed-top-bottom.html
-/sdcard/android/layout_tests/fast/block/positioning/relayout-on-position-change.html
-/sdcard/android/layout_tests/fast/block/positioning/relative-overflow-replaced.html
-/sdcard/android/layout_tests/fast/block/positioning/relative-overflow-replaced-float.html
-/sdcard/android/layout_tests/fast/block/positioning/relative-overflow-block.html
-/sdcard/android/layout_tests/fast/block/positioning/relative-overconstrained.html
-/sdcard/android/layout_tests/fast/block/positioning/pref-width-change.html
-/sdcard/android/layout_tests/fast/block/positioning/padding-percent.html
-/sdcard/android/layout_tests/fast/block/positioning/offsetLeft-offsetTop-borders.html
-/sdcard/android/layout_tests/fast/block/positioning/negative-right-pos.html
-/sdcard/android/layout_tests/fast/block/positioning/move-with-auto-width.html
-/sdcard/android/layout_tests/fast/block/positioning/leftmargin-topmargin.html
-/sdcard/android/layout_tests/fast/block/positioning/inline-block-relposition.html
-/sdcard/android/layout_tests/fast/block/positioning/height-change.html
-/sdcard/android/layout_tests/fast/block/positioning/complex-percentage-height.html
-/sdcard/android/layout_tests/fast/block/positioning/child-of-absolute-with-auto-height.html
-/sdcard/android/layout_tests/fast/block/positioning/auto-height-with-top-and-bottom.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-with-html-border-strict.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-with-html-border-quirks.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-positioned-overconstrained.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-position-direction-strict.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-position-direction-quirk.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-length-of-neg-666666.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-short-rtl.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-short-ltr.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-rtl.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-rtl-3.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-rtl-2.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-ltr.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-ltr-3.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-ltr-2.html
-/sdcard/android/layout_tests/fast/block/positioning/abs-inside-inline-rel.html
-/sdcard/android/layout_tests/fast/block/positioning/062.html
-/sdcard/android/layout_tests/fast/block/positioning/061.html
-/sdcard/android/layout_tests/fast/block/positioning/060.html
-/sdcard/android/layout_tests/fast/block/positioning/059.html
-/sdcard/android/layout_tests/fast/block/positioning/058.html
-/sdcard/android/layout_tests/fast/block/positioning/057.html
-/sdcard/android/layout_tests/fast/block/positioning/056.html
-/sdcard/android/layout_tests/fast/block/positioning/055.html
-/sdcard/android/layout_tests/fast/block/positioning/054.html
-/sdcard/android/layout_tests/fast/block/positioning/053.html
-/sdcard/android/layout_tests/fast/block/positioning/052.html
-/sdcard/android/layout_tests/fast/block/positioning/051.html
-/sdcard/android/layout_tests/fast/block/positioning/050.html
-/sdcard/android/layout_tests/fast/block/positioning/049.html
-/sdcard/android/layout_tests/fast/block/positioning/048.html
-/sdcard/android/layout_tests/fast/block/positioning/047.html
-/sdcard/android/layout_tests/fast/block/positioning/046.html
-/sdcard/android/layout_tests/fast/block/positioning/045.html
-/sdcard/android/layout_tests/fast/block/positioning/044.html
-/sdcard/android/layout_tests/fast/block/positioning/043.html
-/sdcard/android/layout_tests/fast/block/positioning/042.html
-/sdcard/android/layout_tests/fast/block/positioning/041.html
-/sdcard/android/layout_tests/fast/block/positioning/040.html
-/sdcard/android/layout_tests/fast/block/positioning/039.html
-/sdcard/android/layout_tests/fast/block/positioning/038.html
-/sdcard/android/layout_tests/fast/block/positioning/037.html
-/sdcard/android/layout_tests/fast/block/positioning/036.html
-/sdcard/android/layout_tests/fast/block/positioning/035.html
-/sdcard/android/layout_tests/fast/block/positioning/034.html
-/sdcard/android/layout_tests/fast/block/positioning/033.html
-/sdcard/android/layout_tests/fast/block/positioning/032.html
-/sdcard/android/layout_tests/fast/block/positioning/031.html
-/sdcard/android/layout_tests/fast/block/positioning/030.html
-/sdcard/android/layout_tests/fast/block/positioning/029.html
-/sdcard/android/layout_tests/fast/block/positioning/028.html
-/sdcard/android/layout_tests/fast/block/positioning/027.html
-/sdcard/android/layout_tests/fast/block/positioning/026.html
-/sdcard/android/layout_tests/fast/block/positioning/025.html
-/sdcard/android/layout_tests/fast/block/positioning/024.html
-/sdcard/android/layout_tests/fast/block/positioning/023.html
-/sdcard/android/layout_tests/fast/block/positioning/022.html
-/sdcard/android/layout_tests/fast/block/positioning/021.html
-/sdcard/android/layout_tests/fast/block/positioning/020.html
-/sdcard/android/layout_tests/fast/block/positioning/019.html
-/sdcard/android/layout_tests/fast/block/positioning/018.html
-/sdcard/android/layout_tests/fast/block/positioning/017.html
-/sdcard/android/layout_tests/fast/block/positioning/016.html
-/sdcard/android/layout_tests/fast/block/positioning/015.html
-/sdcard/android/layout_tests/fast/block/positioning/014.html
-/sdcard/android/layout_tests/fast/block/positioning/013.html
-/sdcard/android/layout_tests/fast/block/positioning/012.html
-/sdcard/android/layout_tests/fast/block/positioning/011.html
-/sdcard/android/layout_tests/fast/block/positioning/010.html
-/sdcard/android/layout_tests/fast/block/positioning/009.html
-/sdcard/android/layout_tests/fast/block/positioning/008.html
-/sdcard/android/layout_tests/fast/block/positioning/007.html
-/sdcard/android/layout_tests/fast/block/positioning/006.html
-/sdcard/android/layout_tests/fast/block/positioning/005.html
-/sdcard/android/layout_tests/fast/block/positioning/004.html
-/sdcard/android/layout_tests/fast/block/positioning/003.html
-/sdcard/android/layout_tests/fast/block/positioning/002.html
-/sdcard/android/layout_tests/fast/block/positioning/001.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/negative-margins.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/empty-clear-blocks.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/104.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/103.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/102.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/101.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/100.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/063.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/062.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/059.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/058.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/057.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/056.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/055.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/045.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/044.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/043.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/042.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/041.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/040.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/039.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/038.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/037.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/035.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/034.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/033.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/032.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/031.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/030.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/029.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/028.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/027.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/026.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/025.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/022.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/021.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/020.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/019.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/018.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/017.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/016.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/015.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/012.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/011.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/010.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/006.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/005.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/004.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/003.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/002.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/001.html
-/sdcard/android/layout_tests/fast/block/float/width-update-after-clear.html
-/sdcard/android/layout_tests/fast/block/float/vertical-move-relayout.html
-/sdcard/android/layout_tests/fast/block/float/tableshifting.html
-/sdcard/android/layout_tests/fast/block/float/table-relayout.html
-/sdcard/android/layout_tests/fast/block/float/shrink-to-fit-width.html
-/sdcard/android/layout_tests/fast/block/float/relative-painted-twice.html
-/sdcard/android/layout_tests/fast/block/float/overhanging-after-height-decrease.html
-/sdcard/android/layout_tests/fast/block/float/overhanging-after-height-decrease-offsets.html
-/sdcard/android/layout_tests/fast/block/float/nowrap-clear-min-width.html
-/sdcard/android/layout_tests/fast/block/float/nopaint-after-layer-destruction2.html
-/sdcard/android/layout_tests/fast/block/float/nopaint-after-layer-destruction.html
-/sdcard/android/layout_tests/fast/block/float/nestedAnonymousBlocks2.html
-/sdcard/android/layout_tests/fast/block/float/nestedAnonymousBlocks.html
-/sdcard/android/layout_tests/fast/block/float/negative-margin-clear.html
-/sdcard/android/layout_tests/fast/block/float/narrow-after-wide.html
-/sdcard/android/layout_tests/fast/block/float/multiple-float-positioning.html
-/sdcard/android/layout_tests/fast/block/float/marquee-shrink-to-avoid-floats.html
-/sdcard/android/layout_tests/fast/block/float/intruding-painted-twice.html
-/sdcard/android/layout_tests/fast/block/float/independent-align-positioning.html
-/sdcard/android/layout_tests/fast/block/float/float-on-zero-height-line.html
-/sdcard/android/layout_tests/fast/block/float/float-in-float-painting.html
-/sdcard/android/layout_tests/fast/block/float/float-in-float-hit-testing.html
-/sdcard/android/layout_tests/fast/block/float/float-avoidance.html
-/sdcard/android/layout_tests/fast/block/float/editable-text-overlapping-float.html
-/sdcard/android/layout_tests/fast/block/float/dynamic-unfloat-pref-width.html
-/sdcard/android/layout_tests/fast/block/float/clamped-right-float.html
-/sdcard/android/layout_tests/fast/block/float/br-with-clear.html
-/sdcard/android/layout_tests/fast/block/float/br-with-clear-2.html
-/sdcard/android/layout_tests/fast/block/float/4145535Crash.html
-/sdcard/android/layout_tests/fast/block/float/035.html
-/sdcard/android/layout_tests/fast/block/float/034.html
-/sdcard/android/layout_tests/fast/block/float/033.html
-/sdcard/android/layout_tests/fast/block/float/032.html
-/sdcard/android/layout_tests/fast/block/float/031.html
-/sdcard/android/layout_tests/fast/block/float/030.html
-/sdcard/android/layout_tests/fast/block/float/029.html
-/sdcard/android/layout_tests/fast/block/float/028.html
-/sdcard/android/layout_tests/fast/block/float/027.html
-/sdcard/android/layout_tests/fast/block/float/026.html
-/sdcard/android/layout_tests/fast/block/float/025.html
-/sdcard/android/layout_tests/fast/block/float/024.html
-/sdcard/android/layout_tests/fast/block/float/023.html
-/sdcard/android/layout_tests/fast/block/float/022.html
-/sdcard/android/layout_tests/fast/block/float/021.html
-/sdcard/android/layout_tests/fast/block/float/020.html
-/sdcard/android/layout_tests/fast/block/float/019.html
-/sdcard/android/layout_tests/fast/block/float/018.html
-/sdcard/android/layout_tests/fast/block/float/017.html
-/sdcard/android/layout_tests/fast/block/float/016.html
-/sdcard/android/layout_tests/fast/block/float/015.html
-/sdcard/android/layout_tests/fast/block/float/014.html
-/sdcard/android/layout_tests/fast/block/float/013.html
-/sdcard/android/layout_tests/fast/block/float/012.html
-/sdcard/android/layout_tests/fast/block/float/011.html
-/sdcard/android/layout_tests/fast/block/float/010.html
-/sdcard/android/layout_tests/fast/block/float/009.html
-/sdcard/android/layout_tests/fast/block/float/008.html
-/sdcard/android/layout_tests/fast/block/float/007.html
-/sdcard/android/layout_tests/fast/block/float/006.html
-/sdcard/android/layout_tests/fast/block/float/005.html
-/sdcard/android/layout_tests/fast/block/float/004.html
-/sdcard/android/layout_tests/fast/block/float/003.html
-/sdcard/android/layout_tests/fast/block/float/002.html
-/sdcard/android/layout_tests/fast/block/float/001.html
-/sdcard/android/layout_tests/fast/block/basic/white-space-pre-wraps.html
-/sdcard/android/layout_tests/fast/block/basic/text-indent-rtl.html
-/sdcard/android/layout_tests/fast/block/basic/quirk-percent-height-grandchild.html
-/sdcard/android/layout_tests/fast/block/basic/quirk-height.html
-/sdcard/android/layout_tests/fast/block/basic/minheight.html
-/sdcard/android/layout_tests/fast/block/basic/min-pref-width-nowrap-floats.html
-/sdcard/android/layout_tests/fast/block/basic/fieldset-stretch-to-legend.html
-/sdcard/android/layout_tests/fast/block/basic/adding-near-anonymous-block.html
-/sdcard/android/layout_tests/fast/block/basic/021.html
-/sdcard/android/layout_tests/fast/block/basic/020.html
-/sdcard/android/layout_tests/fast/block/basic/019.html
-/sdcard/android/layout_tests/fast/block/basic/018.html
-/sdcard/android/layout_tests/fast/block/basic/016.html
-/sdcard/android/layout_tests/fast/block/basic/015.html
-/sdcard/android/layout_tests/fast/block/basic/014.html
-/sdcard/android/layout_tests/fast/block/basic/013.html
-/sdcard/android/layout_tests/fast/block/basic/012.html
-/sdcard/android/layout_tests/fast/block/basic/011.html
-/sdcard/android/layout_tests/fast/block/basic/010.html
-/sdcard/android/layout_tests/fast/block/basic/009.html
-/sdcard/android/layout_tests/fast/block/basic/008.html
-/sdcard/android/layout_tests/fast/block/basic/007.html
-/sdcard/android/layout_tests/fast/block/basic/006.html
-/sdcard/android/layout_tests/fast/block/basic/005.html
-/sdcard/android/layout_tests/fast/block/basic/004.html
-/sdcard/android/layout_tests/fast/block/basic/003.html
-/sdcard/android/layout_tests/fast/block/basic/002.html
-/sdcard/android/layout_tests/fast/block/basic/001.html
-/sdcard/android/layout_tests/fast/backgrounds/size/zero.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize19.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize18.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize17.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize16.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize15.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize14.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize13.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize12.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize11.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize10.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize09.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize08.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize07.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize06.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize05.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize04.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize03.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize02.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize01.html
-/sdcard/android/layout_tests/fast/backgrounds/repeat/noRepeatCorrectClip.html
-/sdcard/android/layout_tests/fast/backgrounds/repeat/negative-offset-repeat.html
-/sdcard/android/layout_tests/fast/backgrounds/repeat/negative-offset-repeat-transformed.html
-/sdcard/android/layout_tests/fast/backgrounds/repeat/mask-negative-offset-repeat.html
-/sdcard/android/layout_tests/fast/backgrounds/svg-as-mask.html
-/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-6.html
-/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-5.html
-/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-4.html
-/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-3.html
-/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-2.html
-/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-1.html
-/sdcard/android/layout_tests/fast/backgrounds/solid-color-context-restore.html
-/sdcard/android/layout_tests/fast/backgrounds/mask-composite.html
-/sdcard/android/layout_tests/fast/backgrounds/bgCompositeCopy.html
-/sdcard/android/layout_tests/fast/backgrounds/background-position-rounding.html
-/sdcard/android/layout_tests/fast/backgrounds/background-position-1.html
-/sdcard/android/layout_tests/fast/backgrounds/background-origin-root-element.html
-/sdcard/android/layout_tests/fast/backgrounds/background-inherit-color-bug.html
-/sdcard/android/layout_tests/fast/backgrounds/001.html
diff --git a/tests/DumpRenderTree/results/layout_tests_passed.txt b/tests/DumpRenderTree/results/layout_tests_passed.txt
deleted file mode 100644
index 03e920e..0000000
--- a/tests/DumpRenderTree/results/layout_tests_passed.txt
+++ /dev/null
@@ -1,990 +0,0 @@
-/sdcard/android/layout_tests/fast/transforms/container-transform-crash.html
-/sdcard/android/layout_tests/fast/tokenizer/write-unclosed-script.html
-/sdcard/android/layout_tests/fast/tokenizer/write-partial-entity.html
-/sdcard/android/layout_tests/fast/tokenizer/write-inline-script-open.html
-/sdcard/android/layout_tests/fast/tokenizer/write-external-script-open.html
-/sdcard/android/layout_tests/fast/tokenizer/nested-multiple-scripts.html
-/sdcard/android/layout_tests/fast/tokenizer/nested-cached-scripts.html
-/sdcard/android/layout_tests/fast/tokenizer/lessthan-terminates-tags-and-attrs.html
-/sdcard/android/layout_tests/fast/tokenizer/image-empty-crash.html
-/sdcard/android/layout_tests/fast/tokenizer/ignore-tags-in-iframe.html
-/sdcard/android/layout_tests/fast/tokenizer/external-script-document-open.html
-/sdcard/android/layout_tests/fast/tokenizer/doctype-search-reset.html
-/sdcard/android/layout_tests/fast/tokenizer/badscript.html
-/sdcard/android/layout_tests/fast/tokenizer/ampersand-in-special-tag.html
-/sdcard/android/layout_tests/fast/tokenizer/004.html
-/sdcard/android/layout_tests/fast/text/line-breaks-after-ideographic-comma-or-full-stop.html
-/sdcard/android/layout_tests/fast/text/large-text-composed-char-dos.html
-/sdcard/android/layout_tests/fast/text/find-case-folding.html
-/sdcard/android/layout_tests/fast/table/td-display-nowrap.html
-/sdcard/android/layout_tests/fast/table/section-in-table-before-misnested-text-crash-css.html
-/sdcard/android/layout_tests/fast/table/rowindex-comment-nodes.html
-/sdcard/android/layout_tests/fast/table/row-in-tbody-before-misnested-text-crash-css.html
-/sdcard/android/layout_tests/fast/table/large-rowspan-crash.html
-/sdcard/android/layout_tests/fast/table/incomplete-table-in-fragment-hang.html
-/sdcard/android/layout_tests/fast/table/incomplete-table-in-fragment-2.html
-/sdcard/android/layout_tests/fast/table/form-in-tbody-before-misnested-text-crash-css.html
-/sdcard/android/layout_tests/fast/table/form-in-table-before-misnested-text-crash-css.html
-/sdcard/android/layout_tests/fast/table/form-in-row-before-misnested-text-crash-css.html
-/sdcard/android/layout_tests/fast/table/empty-auto-column-zero-divide.html
-/sdcard/android/layout_tests/fast/table/destroy-cell-with-selection-crash.html
-/sdcard/android/layout_tests/fast/table/colgroup-relative.html
-/sdcard/android/layout_tests/fast/table/cell-in-row-before-misnested-text-crash-css.html
-/sdcard/android/layout_tests/fast/table/border-changes.html
-/sdcard/android/layout_tests/fast/replaced/object-param-no-name.html
-/sdcard/android/layout_tests/fast/regex/test4.html
-/sdcard/android/layout_tests/fast/regex/test1.html
-/sdcard/android/layout_tests/fast/regex/slow.html
-/sdcard/android/layout_tests/fast/regex/early-acid3-86.html
-/sdcard/android/layout_tests/fast/reflections/teardown-crash.html
-/sdcard/android/layout_tests/fast/reflections/reflection-computed-style.html
-/sdcard/android/layout_tests/fast/parser/test-unicode-characters-in-attribute-name.html
-/sdcard/android/layout_tests/fast/parser/tag-with-exclamation-point.html
-/sdcard/android/layout_tests/fast/parser/strict-img-in-map.html
-/sdcard/android/layout_tests/fast/parser/script-after-frameset-assert.html
-/sdcard/android/layout_tests/fast/parser/rewrite-map.html
-/sdcard/android/layout_tests/fast/parser/rewrite-form.html
-/sdcard/android/layout_tests/fast/parser/residual-style-close-across-removed-block.html
-/sdcard/android/layout_tests/fast/parser/residual-style-close-across-n-blocks.html
-/sdcard/android/layout_tests/fast/parser/remove-parser-current-node.html
-/sdcard/android/layout_tests/fast/parser/remove-node-stack.html
-/sdcard/android/layout_tests/fast/parser/remove-current-node-parent.html
-/sdcard/android/layout_tests/fast/parser/pre-first-line-break.html
-/sdcard/android/layout_tests/fast/parser/parse-wbr.html
-/sdcard/android/layout_tests/fast/parser/p-in-scope.html
-/sdcard/android/layout_tests/fast/parser/p-in-scope-strict.html
-/sdcard/android/layout_tests/fast/parser/open-comment-in-script-tricky.html
-/sdcard/android/layout_tests/fast/parser/number-sign-in-map-name.html
-/sdcard/android/layout_tests/fast/parser/nsup-entity.html
-/sdcard/android/layout_tests/fast/parser/input-textarea-inside-select-element.html
-/sdcard/android/layout_tests/fast/parser/html-whitespace.html
-/sdcard/android/layout_tests/fast/parser/hex-entities-length.html
-/sdcard/android/layout_tests/fast/parser/head-comment.html
-/sdcard/android/layout_tests/fast/parser/entity-surrogate-pairs.html
-/sdcard/android/layout_tests/fast/parser/entity-end-xmp-tag.html
-/sdcard/android/layout_tests/fast/parser/entity-end-title-tag.html
-/sdcard/android/layout_tests/fast/parser/entity-end-textarea-tag.html
-/sdcard/android/layout_tests/fast/parser/entity-end-style-tag.html
-/sdcard/android/layout_tests/fast/parser/entity-end-iframe-tag.html
-/sdcard/android/layout_tests/fast/parser/entity-comment-in-title.html
-/sdcard/android/layout_tests/fast/parser/entity-comment-in-script-tricky.html
-/sdcard/android/layout_tests/fast/parser/entities-in-html.html
-/sdcard/android/layout_tests/fast/parser/duplicate-html-body-element-IDs.html
-/sdcard/android/layout_tests/fast/parser/comment-in-title.html
-/sdcard/android/layout_tests/fast/parser/comment-in-script-tricky.html
-/sdcard/android/layout_tests/fast/parser/assertion-empty-attribute.html
-/sdcard/android/layout_tests/fast/parser/area-in-div.html
-/sdcard/android/layout_tests/fast/overflow/onscroll-layer-self-destruct.html
-/sdcard/android/layout_tests/fast/overflow/generated-content-crash.html
-/sdcard/android/layout_tests/fast/multicol/gap-non-negative.html
-/sdcard/android/layout_tests/fast/multicol/content-height-zero-crash.html
-/sdcard/android/layout_tests/fast/loader/xmlhttprequest-bad-mimetype.html
-/sdcard/android/layout_tests/fast/loader/window-clearing.html
-/sdcard/android/layout_tests/fast/loader/user-style-sheet-resource-load-callbacks.html
-/sdcard/android/layout_tests/fast/loader/url-strip-cr-lf-tab.html
-/sdcard/android/layout_tests/fast/loader/url-parse-1.html
-/sdcard/android/layout_tests/fast/loader/url-data-replace-backslash.html
-/sdcard/android/layout_tests/fast/loader/unloadable-script.html
-/sdcard/android/layout_tests/fast/loader/simultaneous-reloads-assert.html
-/sdcard/android/layout_tests/fast/loader/redirect-with-open-subframe.html
-/sdcard/android/layout_tests/fast/loader/redirect-with-open-subframe-2.html
-/sdcard/android/layout_tests/fast/loader/meta-refresh-vs-open.html
-/sdcard/android/layout_tests/fast/loader/local-css-allowed-in-strict-mode.html
-/sdcard/android/layout_tests/fast/loader/loadInProgress.html
-/sdcard/android/layout_tests/fast/loader/link-no-URL.html
-/sdcard/android/layout_tests/fast/loader/javascript-url-encoding.html
-/sdcard/android/layout_tests/fast/loader/invalid-charset-on-script-crashes-loader.html
-/sdcard/android/layout_tests/fast/loader/inherit-charset-to-empty-frame.html
-/sdcard/android/layout_tests/fast/loader/iframe-recursive-synchronous-load.html
-/sdcard/android/layout_tests/fast/loader/font-face-empty.html
-/sdcard/android/layout_tests/fast/loader/file-URL-with-port-number.html
-/sdcard/android/layout_tests/fast/loader/external-script-URL-location.html
-/sdcard/android/layout_tests/fast/loader/empty-ref-versus-no-ref.html
-/sdcard/android/layout_tests/fast/loader/early-load-cancel.html
-/sdcard/android/layout_tests/fast/loader/data-url-encoding-html.html
-/sdcard/android/layout_tests/fast/loader/charset-parse.html
-/sdcard/android/layout_tests/fast/leaks/002.html
-/sdcard/android/layout_tests/fast/leaks/001.html
-/sdcard/android/layout_tests/fast/layers/resize-layer-deletion-crash.html
-/sdcard/android/layout_tests/fast/layers/removed-by-scroll-handler.html
-/sdcard/android/layout_tests/fast/layers/generated-layer-scrollbar-crash.html
-/sdcard/android/layout_tests/fast/js/pic/rehash-poisons-structure.html
-/sdcard/android/layout_tests/fast/js/pic/get-set-proxy-object.html
-/sdcard/android/layout_tests/fast/js/pic/get-empty-string.html
-/sdcard/android/layout_tests/fast/js/pic/dictionary-prototype.html
-/sdcard/android/layout_tests/fast/js/pic/cached-single-entry-transition.html
-/sdcard/android/layout_tests/fast/js/pic/cached-prototype-setter.html
-/sdcard/android/layout_tests/fast/js/pic/cached-getter-setter.html
-/sdcard/android/layout_tests/fast/js/pic/cached-getter-dictionary-and-proto.html
-/sdcard/android/layout_tests/fast/js/pic/cached-deleted-properties.html
-/sdcard/android/layout_tests/fast/js/window-location-href-file-urls.html
-/sdcard/android/layout_tests/fast/js/while-expression-value.html
-/sdcard/android/layout_tests/fast/js/vardecl-preserve-vardecl.html
-/sdcard/android/layout_tests/fast/js/vardecl-preserve-parameters.html
-/sdcard/android/layout_tests/fast/js/vardecl-preserve-arguments.html
-/sdcard/android/layout_tests/fast/js/vardecl-blocks-init.html
-/sdcard/android/layout_tests/fast/js/var-shadows-arg-crash.html
-/sdcard/android/layout_tests/fast/js/var-declarations.html
-/sdcard/android/layout_tests/fast/js/var-declarations-shadowing.html
-/sdcard/android/layout_tests/fast/js/unmatching-argument-count.html
-/sdcard/android/layout_tests/fast/js/unexpected-constant-crash.html
-/sdcard/android/layout_tests/fast/js/typeof-syntax.html
-/sdcard/android/layout_tests/fast/js/typeof-codegen-crash.html
-/sdcard/android/layout_tests/fast/js/toString-try-else.html
-/sdcard/android/layout_tests/fast/js/toString-prefix-postfix-preserve-parens.html
-/sdcard/android/layout_tests/fast/js/toString-overrides.html
-/sdcard/android/layout_tests/fast/js/toString-number-dot-expr.html
-/sdcard/android/layout_tests/fast/js/toString-for-var-decl.html
-/sdcard/android/layout_tests/fast/js/toString-exception.html
-/sdcard/android/layout_tests/fast/js/tostring-exception-in-property-access.html
-/sdcard/android/layout_tests/fast/js/toString-elision-trailing-comma.html
-/sdcard/android/layout_tests/fast/js/toString-dontEnum.html
-/sdcard/android/layout_tests/fast/js/throw-from-array-sort.html
-/sdcard/android/layout_tests/fast/js/this-non-object-proto.html
-/sdcard/android/layout_tests/fast/js/switch-behaviour.html
-/sdcard/android/layout_tests/fast/js/string_replace.html
-/sdcard/android/layout_tests/fast/js/string-substr.html
-/sdcard/android/layout_tests/fast/js/string-split-ignore-case.html
-/sdcard/android/layout_tests/fast/js/string-sort.html
-/sdcard/android/layout_tests/fast/js/string-slice-abnormal-values.html
-/sdcard/android/layout_tests/fast/js/string-replace-exception-crash.html
-/sdcard/android/layout_tests/fast/js/string-replace-3.html
-/sdcard/android/layout_tests/fast/js/string-replace-2.html
-/sdcard/android/layout_tests/fast/js/string-property-iteration.html
-/sdcard/android/layout_tests/fast/js/string-index-overflow.html
-/sdcard/android/layout_tests/fast/js/string-from-char-code.html
-/sdcard/android/layout_tests/fast/js/string-capitalization.html
-/sdcard/android/layout_tests/fast/js/static-scope-object.html
-/sdcard/android/layout_tests/fast/js/statement-list-register-crash.html
-/sdcard/android/layout_tests/fast/js/stack-unwinding.html
-/sdcard/android/layout_tests/fast/js/sparse-array.html
-/sdcard/android/layout_tests/fast/js/sort-stability.html
-/sdcard/android/layout_tests/fast/js/sort-randomly.html
-/sdcard/android/layout_tests/fast/js/sort-large-array.html
-/sdcard/android/layout_tests/fast/js/slash-lineterminator-parse.html
-/sdcard/android/layout_tests/fast/js/select-options-remove.html
-/sdcard/android/layout_tests/fast/js/select-options-remove-gc.html
-/sdcard/android/layout_tests/fast/js/select-options-add.html
-/sdcard/android/layout_tests/fast/js/resize-array-assign.html
-/sdcard/android/layout_tests/fast/js/reserved-words.html
-/sdcard/android/layout_tests/fast/js/removing-Cf-characters.html
-/sdcard/android/layout_tests/fast/js/rehash-assign.html
-/sdcard/android/layout_tests/fast/js/regexp-unicode-overflow.html
-/sdcard/android/layout_tests/fast/js/regexp-unicode-handling.html
-/sdcard/android/layout_tests/fast/js/regexp-stack-overflow.html
-/sdcard/android/layout_tests/fast/js/regexp-ranges-and-escaped-hyphens.html
-/sdcard/android/layout_tests/fast/js/regexp-range-out-of-order.html
-/sdcard/android/layout_tests/fast/js/regexp-overflow.html
-/sdcard/android/layout_tests/fast/js/regexp-non-character.html
-/sdcard/android/layout_tests/fast/js/regexp-non-capturing-groups.html
-/sdcard/android/layout_tests/fast/js/regexp-non-bmp.html
-/sdcard/android/layout_tests/fast/js/regexp-no-extensions.html
-/sdcard/android/layout_tests/fast/js/regexp-negative-special-characters.html
-/sdcard/android/layout_tests/fast/js/regexp-many-brackets.html
-/sdcard/android/layout_tests/fast/js/regexp-lastindex.html
-/sdcard/android/layout_tests/fast/js/regexp-find-first-asserted.html
-/sdcard/android/layout_tests/fast/js/regexp-extended-characters-more.html
-/sdcard/android/layout_tests/fast/js/regexp-extended-characters-match.html
-/sdcard/android/layout_tests/fast/js/regexp-extended-characters-crash.html
-/sdcard/android/layout_tests/fast/js/regexp-divequal.html
-/sdcard/android/layout_tests/fast/js/regexp-compile.html
-/sdcard/android/layout_tests/fast/js/regexp-compile-crash.html
-/sdcard/android/layout_tests/fast/js/regexp-char-insensitive.html
-/sdcard/android/layout_tests/fast/js/regexp-caching.html
-/sdcard/android/layout_tests/fast/js/reentrant-call-unwind.html
-/sdcard/android/layout_tests/fast/js/read-modify-eval.html
-/sdcard/android/layout_tests/fast/js/propertyIsEnumerable.html
-/sdcard/android/layout_tests/fast/js/property-getters-and-setters.html
-/sdcard/android/layout_tests/fast/js/primitive-method-this.html
-/sdcard/android/layout_tests/fast/js/pretty-print.html
-/sdcard/android/layout_tests/fast/js/prefix-syntax.html
-/sdcard/android/layout_tests/fast/js/postfix-syntax.html
-/sdcard/android/layout_tests/fast/js/parse-backslash-before-newline.html
-/sdcard/android/layout_tests/fast/js/order-of-operations.html
-/sdcard/android/layout_tests/fast/js/object-prototype-toLocaleString.html
-/sdcard/android/layout_tests/fast/js/object-prototype-constructor.html
-/sdcard/android/layout_tests/fast/js/object-extra-comma.html
-/sdcard/android/layout_tests/fast/js/numeric-conversion.html
-/sdcard/android/layout_tests/fast/js/number-toString.html
-/sdcard/android/layout_tests/fast/js/number-toprecision.html
-/sdcard/android/layout_tests/fast/js/number-tofixed.html
-/sdcard/android/layout_tests/fast/js/number-toExponential.html
-/sdcard/android/layout_tests/fast/js/null-char-in-string.html
-/sdcard/android/layout_tests/fast/js/non-object-proto.html
-/sdcard/android/layout_tests/fast/js/nested-function-scope.html
-/sdcard/android/layout_tests/fast/js/navigator-plugins-crash.html
-/sdcard/android/layout_tests/fast/js/named-function-expression.html
-/sdcard/android/layout_tests/fast/js/modify-non-references.html
-/sdcard/android/layout_tests/fast/js/mod-crash.html
-/sdcard/android/layout_tests/fast/js/missing-title-end-tag-js.html
-/sdcard/android/layout_tests/fast/js/math.html
-/sdcard/android/layout_tests/fast/js/logical-or-jless.html
-/sdcard/android/layout_tests/fast/js/lexical-lookup-in-function-constructor.html
-/sdcard/android/layout_tests/fast/js/lastModified.html
-/sdcard/android/layout_tests/fast/js/isPrototypeOf.html
-/sdcard/android/layout_tests/fast/js/invalid-syntax-for-function.html
-/sdcard/android/layout_tests/fast/js/integer-extremes.html
-/sdcard/android/layout_tests/fast/js/implicit-global-to-global-reentry.html
-/sdcard/android/layout_tests/fast/js/implicit-call-with-global-reentry.html
-/sdcard/android/layout_tests/fast/js/has-own-property.html
-/sdcard/android/layout_tests/fast/js/gmail-re-re.html
-/sdcard/android/layout_tests/fast/js/global-var-limit.html
-/sdcard/android/layout_tests/fast/js/getter-setter-gc.html
-/sdcard/android/layout_tests/fast/js/function-toString-parentheses.html
-/sdcard/android/layout_tests/fast/js/function-toString-object-literals.html
-/sdcard/android/layout_tests/fast/js/function-redefinition.html
-/sdcard/android/layout_tests/fast/js/function-prototype.html
-/sdcard/android/layout_tests/fast/js/function-names.html
-/sdcard/android/layout_tests/fast/js/function-name.html
-/sdcard/android/layout_tests/fast/js/function-dot-arguments.html
-/sdcard/android/layout_tests/fast/js/function-dot-arguments-and-caller.html
-/sdcard/android/layout_tests/fast/js/function-decompilation-operators.html
-/sdcard/android/layout_tests/fast/js/function-declarations.html
-/sdcard/android/layout_tests/fast/js/function-declarations-in-switch-statement.html
-/sdcard/android/layout_tests/fast/js/function-call-register-allocation.html
-/sdcard/android/layout_tests/fast/js/function-argument-evaluation-before-exception.html
-/sdcard/android/layout_tests/fast/js/function-apply.html
-/sdcard/android/layout_tests/fast/js/for-in-var-scope.html
-/sdcard/android/layout_tests/fast/js/for-in-to-text.html
-/sdcard/android/layout_tests/fast/js/for-in-exeception.html
-/sdcard/android/layout_tests/fast/js/for-in-avoid-duplicates.html
-/sdcard/android/layout_tests/fast/js/finally-codegen-failure.html
-/sdcard/android/layout_tests/fast/js/exec-state-marking.html
-/sdcard/android/layout_tests/fast/js/exception-try-finally-scope-error.html
-/sdcard/android/layout_tests/fast/js/exception-thrown-from-new.html
-/sdcard/android/layout_tests/fast/js/exception-thrown-from-function-with-lazy-activation.html
-/sdcard/android/layout_tests/fast/js/exception-thrown-from-eval-inside-closure.html
-/sdcard/android/layout_tests/fast/js/exception-thrown-from-equal.html
-/sdcard/android/layout_tests/fast/js/exception-linenums.html
-/sdcard/android/layout_tests/fast/js/exception-linenums-in-html-2.html
-/sdcard/android/layout_tests/fast/js/exception-linenums-in-html-1.html
-/sdcard/android/layout_tests/fast/js/exception-expression-offset.html
-/sdcard/android/layout_tests/fast/js/eval-var-decl.html
-/sdcard/android/layout_tests/fast/js/eval-overriding.html
-/sdcard/android/layout_tests/fast/js/eval-keyword-vs-function.html
-/sdcard/android/layout_tests/fast/js/eval-cross-window.html
-/sdcard/android/layout_tests/fast/js/eval-cache-crash.html
-/sdcard/android/layout_tests/fast/js/equality.html
-/sdcard/android/layout_tests/fast/js/encode-URI-test.html
-/sdcard/android/layout_tests/fast/js/duplicate-param-crash.html
-/sdcard/android/layout_tests/fast/js/dot-node-base-exception.html
-/sdcard/android/layout_tests/fast/js/do-while-without-semicolon.html
-/sdcard/android/layout_tests/fast/js/do-while-semicolon.html
-/sdcard/android/layout_tests/fast/js/do-while-expression-value.html
-/sdcard/android/layout_tests/fast/js/direct-entry-to-function-code.html
-/sdcard/android/layout_tests/fast/js/delete-then-put.html
-/sdcard/android/layout_tests/fast/js/delete-syntax.html
-/sdcard/android/layout_tests/fast/js/delete-multiple-global-blocks.html
-/sdcard/android/layout_tests/fast/js/delete-getters-setters.html
-/sdcard/android/layout_tests/fast/js/delete-function-parameter.html
-/sdcard/android/layout_tests/fast/js/deep-recursion-test.html
-/sdcard/android/layout_tests/fast/js/declaration-in-block.html
-/sdcard/android/layout_tests/fast/js/debugger.html
-/sdcard/android/layout_tests/fast/js/date-set-to-nan.html
-/sdcard/android/layout_tests/fast/js/date-proto-generic-invocation.html
-/sdcard/android/layout_tests/fast/js/date-preserve-milliseconds.html
-/sdcard/android/layout_tests/fast/js/date-parse-test.html
-/sdcard/android/layout_tests/fast/js/date-parse-comments-test.html
-/sdcard/android/layout_tests/fast/js/date-negative-setmonth.html
-/sdcard/android/layout_tests/fast/js/date-DST-time-cusps.html
-/sdcard/android/layout_tests/fast/js/date-DST-pre-1970.html
-/sdcard/android/layout_tests/fast/js/date-constructor.html
-/sdcard/android/layout_tests/fast/js/date-big-setmonth.html
-/sdcard/android/layout_tests/fast/js/date-big-setdate.html
-/sdcard/android/layout_tests/fast/js/date-big-constructor.html
-/sdcard/android/layout_tests/fast/js/cyclic-ref-toString.html
-/sdcard/android/layout_tests/fast/js/cyclic-prototypes.html
-/sdcard/android/layout_tests/fast/js/cyclic-proto.html
-/sdcard/android/layout_tests/fast/js/convert-nan-to-bool.html
-/sdcard/android/layout_tests/fast/js/continue-break-multiple-labels.html
-/sdcard/android/layout_tests/fast/js/constructor.html
-/sdcard/android/layout_tests/fast/js/constructor-attributes.html
-/sdcard/android/layout_tests/fast/js/construct-global-object.html
-/sdcard/android/layout_tests/fast/js/constant-folding.html
-/sdcard/android/layout_tests/fast/js/constant-count.html
-/sdcard/android/layout_tests/fast/js/const.html
-/sdcard/android/layout_tests/fast/js/const-without-initializer.html
-/sdcard/android/layout_tests/fast/js/comparefn-sort-stability.html
-/sdcard/android/layout_tests/fast/js/codegen-temporaries.html
-/sdcard/android/layout_tests/fast/js/codegen-temporaries-multiple-global-blocks.html
-/sdcard/android/layout_tests/fast/js/codegen-peephole-locals.html
-/sdcard/android/layout_tests/fast/js/codegen-loops-logical-nodes.html
-/sdcard/android/layout_tests/fast/js/code-serialize-paren.html
-/sdcard/android/layout_tests/fast/js/closure-inside-extra-arg-call.html
-/sdcard/android/layout_tests/fast/js/char-at.html
-/sdcard/android/layout_tests/fast/js/caller-property.html
-/sdcard/android/layout_tests/fast/js/bitwise-and-on-undefined.html
-/sdcard/android/layout_tests/fast/js/avl-crash.html
-/sdcard/android/layout_tests/fast/js/assign.html
-/sdcard/android/layout_tests/fast/js/ascii-regexp-subject.html
-/sdcard/android/layout_tests/fast/js/array-tostring-ignore-separator.html
-/sdcard/android/layout_tests/fast/js/array-tostring-and-join.html
-/sdcard/android/layout_tests/fast/js/array-splice.html
-/sdcard/android/layout_tests/fast/js/array-sort-reentrance.html
-/sdcard/android/layout_tests/fast/js/array-some.html
-/sdcard/android/layout_tests/fast/js/array-reset-large-index.html
-/sdcard/android/layout_tests/fast/js/array-map.html
-/sdcard/android/layout_tests/fast/js/array-lastIndexOf.html
-/sdcard/android/layout_tests/fast/js/array-join-bug-11524.html
-/sdcard/android/layout_tests/fast/js/array-iterate-backwards.html
-/sdcard/android/layout_tests/fast/js/array-indexof.html
-/sdcard/android/layout_tests/fast/js/array-indexing.html
-/sdcard/android/layout_tests/fast/js/array-index-immediate-types.html
-/sdcard/android/layout_tests/fast/js/array-holes.html
-/sdcard/android/layout_tests/fast/js/array-functions-non-arrays.html
-/sdcard/android/layout_tests/fast/js/array-foreach.html
-/sdcard/android/layout_tests/fast/js/array-float-delete.html
-/sdcard/android/layout_tests/fast/js/array-filter.html
-/sdcard/android/layout_tests/fast/js/array-every.html
-/sdcard/android/layout_tests/fast/js/arguments.html
-/sdcard/android/layout_tests/fast/js/arguments-bad-index.html
-/sdcard/android/layout_tests/fast/js/activation-proto.html
-/sdcard/android/layout_tests/fast/js/activation-object-function-lifetime.html
-/sdcard/android/layout_tests/fast/invalid/test-case-tr-th-td-should-not-close-dl-list.html
-/sdcard/android/layout_tests/fast/invalid/nestedh3s-rapidweaver.html
-/sdcard/android/layout_tests/fast/inspector/cssURLQuotes.html
-/sdcard/android/layout_tests/fast/innerHTML/javascript-url.html
-/sdcard/android/layout_tests/fast/innerHTML/innerHTML-custom-tag.html
-/sdcard/android/layout_tests/fast/innerHTML/innerHTML-case.html
-/sdcard/android/layout_tests/fast/innerHTML/additional-inline-style.html
-/sdcard/android/layout_tests/fast/innerHTML/005.html
-/sdcard/android/layout_tests/fast/inline/clean-after-removing-temp-boxes.html
-/sdcard/android/layout_tests/fast/images/text-content-crash.html
-/sdcard/android/layout_tests/fast/images/text-content-crash-2.html
-/sdcard/android/layout_tests/fast/images/load-img-with-empty-src.html
-/sdcard/android/layout_tests/fast/images/border.html
-/sdcard/android/layout_tests/fast/images/animated-background-image-crash.html
-/sdcard/android/layout_tests/fast/html/xhtml-serialize.html
-/sdcard/android/layout_tests/fast/html/script-allowed-types-languages.html
-/sdcard/android/layout_tests/fast/html/empty-fragment-id-goto-top.html
-/sdcard/android/layout_tests/fast/html/body-offset-properties.html
-/sdcard/android/layout_tests/fast/frames/viewsource-plain-text-tags.html
-/sdcard/android/layout_tests/fast/frames/set-unloaded-frame-location.html
-/sdcard/android/layout_tests/fast/frames/repaint-display-none-crash.html
-/sdcard/android/layout_tests/fast/frames/remove-frame-with-scrollbars-crash.html
-/sdcard/android/layout_tests/fast/frames/onload-remove-iframe-crash.html
-/sdcard/android/layout_tests/fast/frames/negative-remaining-length-crash.html
-/sdcard/android/layout_tests/fast/frames/location-put-after-removal.html
-/sdcard/android/layout_tests/fast/frames/location-change.html
-/sdcard/android/layout_tests/fast/frames/iframe-target.html
-/sdcard/android/layout_tests/fast/frames/iframe-set-same-src.html
-/sdcard/android/layout_tests/fast/frames/iframe-set-same-location.html
-/sdcard/android/layout_tests/fast/frames/iframe-set-inner-html.html
-/sdcard/android/layout_tests/fast/frames/iframe-remove-after-id-change.html
-/sdcard/android/layout_tests/fast/frames/iframe-name-and-id.html
-/sdcard/android/layout_tests/fast/frames/iframe-js-url-clientWidth.html
-/sdcard/android/layout_tests/fast/frames/iframe-double-attach.html
-/sdcard/android/layout_tests/fast/frames/iframe-display-none.html
-/sdcard/android/layout_tests/fast/frames/hover-timer-crash.html
-/sdcard/android/layout_tests/fast/frames/frame-set-same-src.html
-/sdcard/android/layout_tests/fast/frames/frame-set-same-location.html
-/sdcard/android/layout_tests/fast/frames/frame-name-reset.html
-/sdcard/android/layout_tests/fast/frames/frame-display-none-focus.html
-/sdcard/android/layout_tests/fast/frames/empty-frame-document.html
-/sdcard/android/layout_tests/fast/frames/cross-site-this.html
-/sdcard/android/layout_tests/fast/frames/crash-removed-iframe.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-009.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-008.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-007.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-006.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-005.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-004.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-003.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-002.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-001.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-000.html
-/sdcard/android/layout_tests/fast/forms/textfield-focus-out.html
-/sdcard/android/layout_tests/fast/forms/textarea-trailing-newline.html
-/sdcard/android/layout_tests/fast/forms/textarea-setvalue-without-renderer.html
-/sdcard/android/layout_tests/fast/forms/textarea-setvalue-submit.html
-/sdcard/android/layout_tests/fast/forms/textarea-scrollbar-height.html
-/sdcard/android/layout_tests/fast/forms/textarea-linewrap-dynamic.html
-/sdcard/android/layout_tests/fast/forms/textarea-hard-linewrap-empty.html
-/sdcard/android/layout_tests/fast/forms/textarea-crlf.html
-/sdcard/android/layout_tests/fast/forms/text-set-value-crash.html
-/sdcard/android/layout_tests/fast/forms/tabs-with-modifiers.html
-/sdcard/android/layout_tests/fast/forms/tab-in-input.html
-/sdcard/android/layout_tests/fast/forms/submit-with-base.html
-/sdcard/android/layout_tests/fast/forms/submit-to-url-fragment.html
-/sdcard/android/layout_tests/fast/forms/submit-nil-value-field-assert.html
-/sdcard/android/layout_tests/fast/forms/slow-click.html
-/sdcard/android/layout_tests/fast/forms/selected-index-assert.html
-/sdcard/android/layout_tests/fast/forms/select-width-font-change.html
-/sdcard/android/layout_tests/fast/forms/select-type-ahead-list-box-no-selection.html
-/sdcard/android/layout_tests/fast/forms/select-set-inner.html
-/sdcard/android/layout_tests/fast/forms/select-reset.html
-/sdcard/android/layout_tests/fast/forms/select-replace-option.html
-/sdcard/android/layout_tests/fast/forms/select-remove-option.html
-/sdcard/android/layout_tests/fast/forms/select-out-of-bounds-index.html
-/sdcard/android/layout_tests/fast/forms/select-namedItem.html
-/sdcard/android/layout_tests/fast/forms/select-list-box-mouse-focus.html
-/sdcard/android/layout_tests/fast/forms/select-index-setter.html
-/sdcard/android/layout_tests/fast/forms/saved-state-adoptNode-crash.html
-/sdcard/android/layout_tests/fast/forms/remove-radio-button-assert.html
-/sdcard/android/layout_tests/fast/forms/range-reset.html
-/sdcard/android/layout_tests/fast/forms/range-default-value.html
-/sdcard/android/layout_tests/fast/forms/radio_checked_name.html
-/sdcard/android/layout_tests/fast/forms/radio-no-theme-padding.html
-/sdcard/android/layout_tests/fast/forms/radio-check-click-and-drag.html
-/sdcard/android/layout_tests/fast/forms/radio-button-no-change-event.html
-/sdcard/android/layout_tests/fast/forms/paste-multiline-text-input.html
-/sdcard/android/layout_tests/fast/forms/paste-into-textarea.html
-/sdcard/android/layout_tests/fast/forms/option-in-optgroup-removal.html
-/sdcard/android/layout_tests/fast/forms/option-constructor-selected.html
-/sdcard/android/layout_tests/fast/forms/option-change-single-selected.html
-/sdcard/android/layout_tests/fast/forms/old-names.html
-/sdcard/android/layout_tests/fast/forms/missing-action.html
-/sdcard/android/layout_tests/fast/forms/menulist-selection-reset.html
-/sdcard/android/layout_tests/fast/forms/menulist-no-renderer-onmousedown.html
-/sdcard/android/layout_tests/fast/forms/listbox-typeahead-empty.html
-/sdcard/android/layout_tests/fast/forms/listbox-scroll-after-options-removed.html
-/sdcard/android/layout_tests/fast/forms/input-zero-height-focus.html
-/sdcard/android/layout_tests/fast/forms/input-type-change-in-onfocus-mouse.html
-/sdcard/android/layout_tests/fast/forms/input-type-change-in-onfocus-keyboard.html
-/sdcard/android/layout_tests/fast/forms/input-setvalue-selection.html
-/sdcard/android/layout_tests/fast/forms/input-selection-hidden.html
-/sdcard/android/layout_tests/fast/forms/input-named-action-overrides-action-attribute.html
-/sdcard/android/layout_tests/fast/forms/input-changing-value.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-maxlength.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-elementFromPoint.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_selected.html
-/sdcard/android/layout_tests/fast/forms/hidden-input-not-enabled.html
-/sdcard/android/layout_tests/fast/forms/form-post-urlencoded.html
-/sdcard/android/layout_tests/fast/forms/form-get-multipart3.html
-/sdcard/android/layout_tests/fast/forms/form-get-multipart2.html
-/sdcard/android/layout_tests/fast/forms/form-get-multipart.html
-/sdcard/android/layout_tests/fast/forms/form-data-encoding.html
-/sdcard/android/layout_tests/fast/forms/form-data-encoding-normalization-overrun.html
-/sdcard/android/layout_tests/fast/forms/form-data-encoding-2.html
-/sdcard/android/layout_tests/fast/forms/focus-style-pending.html
-/sdcard/android/layout_tests/fast/forms/empty-get.html
-/sdcard/android/layout_tests/fast/forms/element-order.html
-/sdcard/android/layout_tests/fast/forms/element-by-name.html
-/sdcard/android/layout_tests/fast/forms/double-focus.html
-/sdcard/android/layout_tests/fast/forms/domstring-replace-crash.html
-/sdcard/android/layout_tests/fast/forms/document-write.html
-/sdcard/android/layout_tests/fast/forms/display-none-in-onchange-keyboard.html
-/sdcard/android/layout_tests/fast/forms/cursor-position.html
-/sdcard/android/layout_tests/fast/forms/button-in-forms-collection.html
-/sdcard/android/layout_tests/fast/forms/button-click-DOM.html
-/sdcard/android/layout_tests/fast/forms/autofocus-opera-008.html
-/sdcard/android/layout_tests/fast/forms/autofocus-opera-007.html
-/sdcard/android/layout_tests/fast/forms/autofocus-opera-006.html
-/sdcard/android/layout_tests/fast/forms/autofocus-opera-005.html
-/sdcard/android/layout_tests/fast/forms/autofocus-opera-004.html
-/sdcard/android/layout_tests/fast/forms/autofocus-opera-002.html
-/sdcard/android/layout_tests/fast/forms/autofocus-opera-001.html
-/sdcard/android/layout_tests/fast/forms/autofocus-attribute.html
-/sdcard/android/layout_tests/fast/forms/add-remove-form-elements-stress-test.html
-/sdcard/android/layout_tests/fast/forms/activate-and-disabled-elements.html
-/sdcard/android/layout_tests/fast/forms/8250.html
-/sdcard/android/layout_tests/fast/forms/4628409.html
-/sdcard/android/layout_tests/fast/forms/11423.html
-/sdcard/android/layout_tests/fast/flexbox/inline-children-crash.html
-/sdcard/android/layout_tests/fast/events/window-load-capture.html
-/sdcard/android/layout_tests/fast/events/submit-reset-nested-bubble.html
-/sdcard/android/layout_tests/fast/events/stopPropagation-submit.html
-/sdcard/android/layout_tests/fast/events/stopPropagation-checkbox.html
-/sdcard/android/layout_tests/fast/events/space-scroll-event.html
-/sdcard/android/layout_tests/fast/events/simulated-key-state.html
-/sdcard/android/layout_tests/fast/events/shadow-boundary-crossing.html
-/sdcard/android/layout_tests/fast/events/selectstart-during-autoscroll.html
-/sdcard/android/layout_tests/fast/events/resize-subframe.html
-/sdcard/android/layout_tests/fast/events/remove-event-listener.html
-/sdcard/android/layout_tests/fast/events/programmatic-check-no-change-event.html
-/sdcard/android/layout_tests/fast/events/overflow-events.html
-/sdcard/android/layout_tests/fast/events/onunload-body-property.html
-/sdcard/android/layout_tests/fast/events/onsubmit-bubbling.html
-/sdcard/android/layout_tests/fast/events/onload-after-document-close-with-subresource.html
-/sdcard/android/layout_tests/fast/events/onload-after-document-close-no-subresource.html
-/sdcard/android/layout_tests/fast/events/onerror-bubbling.html
-/sdcard/android/layout_tests/fast/events/no-window-load.html
-/sdcard/android/layout_tests/fast/events/no-blur-on-page-leave.html
-/sdcard/android/layout_tests/fast/events/no-blur-on-enter-button.html
-/sdcard/android/layout_tests/fast/events/nested-window-event.html
-/sdcard/android/layout_tests/fast/events/nested-event-remove-node-crash.html
-/sdcard/android/layout_tests/fast/events/mouseup-outside-button.html
-/sdcard/android/layout_tests/fast/events/mousedown_in_scrollbar.html
-/sdcard/android/layout_tests/fast/events/message-port.html
-/sdcard/android/layout_tests/fast/events/message-port-inactive-document.html
-/sdcard/android/layout_tests/fast/events/message-port-deleted-frame.html
-/sdcard/android/layout_tests/fast/events/message-port-deleted-document.html
-/sdcard/android/layout_tests/fast/events/message-port-constructor-for-deleted-document.html
-/sdcard/android/layout_tests/fast/events/message-channel-listener-circular-ownership.html
-/sdcard/android/layout_tests/fast/events/message-channel-gc.html
-/sdcard/android/layout_tests/fast/events/message-channel-gc-3.html
-/sdcard/android/layout_tests/fast/events/message-channel-gc-2.html
-/sdcard/android/layout_tests/fast/events/keypress-removed-node.html
-/sdcard/android/layout_tests/fast/events/keydown-remove-frame.html
-/sdcard/android/layout_tests/fast/events/init-event-null-view.html
-/sdcard/android/layout_tests/fast/events/init-event-after-dispatch.html
-/sdcard/android/layout_tests/fast/events/event-targets.html
-/sdcard/android/layout_tests/fast/events/event-listener-html-non-html-confusion.html
-/sdcard/android/layout_tests/fast/events/event-instanceof.html
-/sdcard/android/layout_tests/fast/events/event-creation.html
-/sdcard/android/layout_tests/fast/events/div-focus.html
-/sdcard/android/layout_tests/fast/events/dispatch-to-handle-event.html
-/sdcard/android/layout_tests/fast/events/delayed-style-mutation-event-crash.html
-/sdcard/android/layout_tests/fast/events/caller-access-from-event-listener.html
-/sdcard/android/layout_tests/fast/events/anchor-empty-focus.html
-/sdcard/android/layout_tests/fast/encoding/hebrew/logical.html
-/sdcard/android/layout_tests/fast/encoding/hebrew/iso-ir-138.html
-/sdcard/android/layout_tests/fast/encoding/hebrew/hebrew.html
-/sdcard/android/layout_tests/fast/encoding/hebrew/csISO88598I.html
-/sdcard/android/layout_tests/fast/encoding/hebrew/8859-8.html
-/sdcard/android/layout_tests/fast/encoding/hebrew/8859-8-i.html
-/sdcard/android/layout_tests/fast/encoding/hebrew/8859-8-e.html
-/sdcard/android/layout_tests/fast/encoding/gbk/x-gbk.html
-/sdcard/android/layout_tests/fast/encoding/gbk/x-euc-cn.html
-/sdcard/android/layout_tests/fast/encoding/gbk/iso-ir-58.html
-/sdcard/android/layout_tests/fast/encoding/gbk/gb_2312-80.html
-/sdcard/android/layout_tests/fast/encoding/gbk/gbk.html
-/sdcard/android/layout_tests/fast/encoding/gbk/gb2312.html
-/sdcard/android/layout_tests/fast/encoding/gbk/EUC-CN.html
-/sdcard/android/layout_tests/fast/encoding/gbk/csgb231280.html
-/sdcard/android/layout_tests/fast/encoding/gbk/csgb2312.html
-/sdcard/android/layout_tests/fast/encoding/gbk/cn-gb.html
-/sdcard/android/layout_tests/fast/encoding/gbk/close-gbk-converter.html
-/sdcard/android/layout_tests/fast/encoding/gbk/chinese.html
-/sdcard/android/layout_tests/fast/encoding/yahoo-mail.html
-/sdcard/android/layout_tests/fast/encoding/xml-charset-utf16.html
-/sdcard/android/layout_tests/fast/encoding/utf-32-little-endian-nobom.xml
-/sdcard/android/layout_tests/fast/encoding/utf-32-little-endian-bom.html
-/sdcard/android/layout_tests/fast/encoding/utf-32-big-endian-nobom.xml
-/sdcard/android/layout_tests/fast/encoding/utf-32-big-endian-bom.html
-/sdcard/android/layout_tests/fast/encoding/tag-in-title.html
-/sdcard/android/layout_tests/fast/encoding/script-in-head.html
-/sdcard/android/layout_tests/fast/encoding/pseudo-xml.html
-/sdcard/android/layout_tests/fast/encoding/pseudo-xml-4.html
-/sdcard/android/layout_tests/fast/encoding/pseudo-xml-3.html
-/sdcard/android/layout_tests/fast/encoding/pseudo-xml-2.html
-/sdcard/android/layout_tests/fast/encoding/pseudo-tags-in-attributes.html
-/sdcard/android/layout_tests/fast/encoding/preload-encoding.html
-/sdcard/android/layout_tests/fast/encoding/noscript-in-head.html
-/sdcard/android/layout_tests/fast/encoding/no-charset-on-dynamic-script-load.html
-/sdcard/android/layout_tests/fast/encoding/namespace-tolerance.html
-/sdcard/android/layout_tests/fast/encoding/mispositioned-meta.html
-/sdcard/android/layout_tests/fast/encoding/misplaced-xml-declaration.html
-/sdcard/android/layout_tests/fast/encoding/meta-charset.html
-/sdcard/android/layout_tests/fast/encoding/latin1-winlatin.html
-/sdcard/android/layout_tests/fast/encoding/high-bit-latin1.html
-/sdcard/android/layout_tests/fast/encoding/hanarei-blog32-fc2-com.html
-/sdcard/android/layout_tests/fast/encoding/floraexpress-ru.html
-/sdcard/android/layout_tests/fast/encoding/decoder-allow-null-chars.html
-/sdcard/android/layout_tests/fast/encoding/css-link-charset.html
-/sdcard/android/layout_tests/fast/encoding/css-charset.html
-/sdcard/android/layout_tests/fast/encoding/css-charset-evil.html
-/sdcard/android/layout_tests/fast/encoding/css-charset-dom.html
-/sdcard/android/layout_tests/fast/encoding/charset-xuser-defined.html
-/sdcard/android/layout_tests/fast/encoding/charset-utf16.html
-/sdcard/android/layout_tests/fast/encoding/charset-unicode.html
-/sdcard/android/layout_tests/fast/encoding/charset-invalid.html
-/sdcard/android/layout_tests/fast/encoding/charset-cp1251.html
-/sdcard/android/layout_tests/fast/encoding/bom-in-content.html
-/sdcard/android/layout_tests/fast/encoding/bom-in-content-utf16.html
-/sdcard/android/layout_tests/fast/encoding/bandai-co-jp-releases.html
-/sdcard/android/layout_tests/fast/encoding/ahram-org-eg.html
-/sdcard/android/layout_tests/fast/dynamic/subtree-common-root.html
-/sdcard/android/layout_tests/fast/dynamic/style-access-late-stylesheet-load.html
-/sdcard/android/layout_tests/fast/dynamic/recursive-layout.html
-/sdcard/android/layout_tests/fast/dynamic/outerHTML-no-element.html
-/sdcard/android/layout_tests/fast/dynamic/insertAdjacentText.html
-/sdcard/android/layout_tests/fast/dynamic/insertAdjacentHTML.html
-/sdcard/android/layout_tests/fast/dynamic/insertAdjacentHTML-allowed-parents.html
-/sdcard/android/layout_tests/fast/dynamic/inline-to-block-crash.html
-/sdcard/android/layout_tests/fast/dynamic/hovered-detach.html
-/sdcard/android/layout_tests/fast/dynamic/float-remove-above-line.html
-/sdcard/android/layout_tests/fast/dynamic/checkbox-selection-crash.html
-/sdcard/android/layout_tests/fast/dynamic/ancestor-to-absolute.html
-/sdcard/android/layout_tests/fast/dynamic/5872671.html
-/sdcard/android/layout_tests/fast/dom/Window/window-special-properties.html
-/sdcard/android/layout_tests/fast/dom/Window/window-resize-and-move-sub-frame.html
-/sdcard/android/layout_tests/fast/dom/Window/window-remove-event-listener.html
-/sdcard/android/layout_tests/fast/dom/Window/window-property-shadowing.html
-/sdcard/android/layout_tests/fast/dom/Window/window-property-shadowing-name.html
-/sdcard/android/layout_tests/fast/dom/Window/window-open-top.html
-/sdcard/android/layout_tests/fast/dom/Window/window-open-self.html
-/sdcard/android/layout_tests/fast/dom/Window/window-open-self-from-other-frame.html
-/sdcard/android/layout_tests/fast/dom/Window/window-open-parent.html
-/sdcard/android/layout_tests/fast/dom/Window/window-open-parent-no-parent.html
-/sdcard/android/layout_tests/fast/dom/Window/window-object-cross-frame-calls.html
-/sdcard/android/layout_tests/fast/dom/Window/window-location-replace-functions.html
-/sdcard/android/layout_tests/fast/dom/Window/window-function-frame-getter-precedence.html
-/sdcard/android/layout_tests/fast/dom/Window/window-custom-prototype-crash.html
-/sdcard/android/layout_tests/fast/dom/Window/window-closed-crash.html
-/sdcard/android/layout_tests/fast/dom/Window/window-appendages-cleared.html
-/sdcard/android/layout_tests/fast/dom/Window/setTimeout-no-arguments.html
-/sdcard/android/layout_tests/fast/dom/Window/global-opener-function.html
-/sdcard/android/layout_tests/fast/dom/Window/getMatchedCSSRules-null-crash.html
-/sdcard/android/layout_tests/fast/dom/Window/element-constructors-on-window.html
-/sdcard/android/layout_tests/fast/dom/Window/closure-access-after-navigation-iframe.html
-/sdcard/android/layout_tests/fast/dom/Window/attr-constructor.html
-/sdcard/android/layout_tests/fast/dom/Window/atob-btoa.html
-/sdcard/android/layout_tests/fast/dom/Window/alert-undefined.html
-/sdcard/android/layout_tests/fast/dom/TreeWalker/TreeWalker-currentNode.html
-/sdcard/android/layout_tests/fast/dom/Text/replaceWholeText.html
-/sdcard/android/layout_tests/fast/dom/StyleSheet/ownerNode-lifetime.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/viewless-document.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/not-supported-namespace-in-selector.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/id-fastpath.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/id-fastpath-strict.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/id-fastpath-almost-strict.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/elementRoot.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/dumpNodeList.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/dumpNodeList-almost-strict.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/detached-element.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/caseTag.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/caseID.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/caseID-strict.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/caseID-almost-strict.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/bug-17313.html
-/sdcard/android/layout_tests/fast/dom/Range/range-processing-instructions.html
-/sdcard/android/layout_tests/fast/dom/Range/range-modifycontents.html
-/sdcard/android/layout_tests/fast/dom/Range/range-isPointInRange.html
-/sdcard/android/layout_tests/fast/dom/Range/range-intersectsNode.html
-/sdcard/android/layout_tests/fast/dom/Range/range-insertNode-splittext.html
-/sdcard/android/layout_tests/fast/dom/Range/range-insertNode-separate-endContainer.html
-/sdcard/android/layout_tests/fast/dom/Range/range-exceptions.html
-/sdcard/android/layout_tests/fast/dom/Range/range-comparePoint.html
-/sdcard/android/layout_tests/fast/dom/Range/range-compareNode.html
-/sdcard/android/layout_tests/fast/dom/Range/range-clone-empty.html
-/sdcard/android/layout_tests/fast/dom/Range/mutation.html
-/sdcard/android/layout_tests/fast/dom/Range/compareBoundaryPoints-2.html
-/sdcard/android/layout_tests/fast/dom/Range/compareBoundaryPoints-1.html
-/sdcard/android/layout_tests/fast/dom/Range/acid3-surround-contents.html
-/sdcard/android/layout_tests/fast/dom/Range/13000.html
-/sdcard/android/layout_tests/fast/dom/NodeList/item-by-id-with-no-document.html
-/sdcard/android/layout_tests/fast/dom/NodeList/invalidate-node-lists-when-parsing.html
-/sdcard/android/layout_tests/fast/dom/NodeList/childNodes-reset-cache.html
-/sdcard/android/layout_tests/fast/dom/NodeList/5725058-crash-scenario-3.html
-/sdcard/android/layout_tests/fast/dom/NodeList/5725058-crash-scenario-2.html
-/sdcard/android/layout_tests/fast/dom/NodeList/5725058-crash-scenario-1.html
-/sdcard/android/layout_tests/fast/dom/Node/initial-values.html
-/sdcard/android/layout_tests/fast/dom/Node/DOMNodeRemovedEvent.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableSectionElement/rows.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableRowElement/insertCell.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableRowElement/cells.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableElement/tBodies.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableElement/rows.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableElement/insert-row.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableElement/early-acid3-66-excerpt.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableElement/early-acid3-65-excerpt.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableElement/cellpadding-attribute.html
-/sdcard/android/layout_tests/fast/dom/HTMLSelectElement/options-collection-set-string-length.html
-/sdcard/android/layout_tests/fast/dom/HTMLSelectElement/options-collection-detached.html
-/sdcard/android/layout_tests/fast/dom/HTMLScriptElement/script-set-src.html
-/sdcard/android/layout_tests/fast/dom/HTMLScriptElement/script-reexecution.html
-/sdcard/android/layout_tests/fast/dom/HTMLScriptElement/script-load-events.html
-/sdcard/android/layout_tests/fast/dom/HTMLScriptElement/script-decoding-error-after-setting-src.html
-/sdcard/android/layout_tests/fast/dom/HTMLOptionElement/set-option-index-text.html
-/sdcard/android/layout_tests/fast/dom/HTMLOptionElement/option-text.html
-/sdcard/android/layout_tests/fast/dom/HTMLOptionElement/option-prototype.html
-/sdcard/android/layout_tests/fast/dom/HTMLObjectElement/form/test1.html
-/sdcard/android/layout_tests/fast/dom/HTMLMetaElement/meta-attributes.html
-/sdcard/android/layout_tests/fast/dom/HTMLLabelElement/form/test1.html
-/sdcard/android/layout_tests/fast/dom/HTMLInputElement/size-attribute.html
-/sdcard/android/layout_tests/fast/dom/HTMLInputElement/size-as-number.html
-/sdcard/android/layout_tests/fast/dom/HTMLInputElement/input-text-reset.html
-/sdcard/android/layout_tests/fast/dom/HTMLInputElement/input-hidden-value.html
-/sdcard/android/layout_tests/fast/dom/HTMLInputElement/input-checked-reset.html
-/sdcard/android/layout_tests/fast/dom/HTMLInputElement/checked-pseudo-selector.html
-/sdcard/android/layout_tests/fast/dom/HTMLImageElement/image-without-renderer-width.html
-/sdcard/android/layout_tests/fast/dom/HTMLImageElement/image-src-absolute-url.html
-/sdcard/android/layout_tests/fast/dom/HTMLImageElement/image-natural-width-height.html
-/sdcard/android/layout_tests/fast/dom/HTMLImageElement/image-lowsrc-getset.html
-/sdcard/android/layout_tests/fast/dom/HTMLImageElement/image-longdesc-absolute-url.html
-/sdcard/android/layout_tests/fast/dom/HTMLImageElement/image-loading-gc.html
-/sdcard/android/layout_tests/fast/dom/HTMLImageElement/constructor-mutation-event-dispatch.html
-/sdcard/android/layout_tests/fast/dom/HTMLHtmlElement/set-version.html
-/sdcard/android/layout_tests/fast/dom/HTMLHtmlElement/duplicate-html-element-crash.html
-/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/head-check.html
-/sdcard/android/layout_tests/fast/dom/HTMLFormElement/elements-not-in-document.html
-/sdcard/android/layout_tests/fast/dom/HTMLFontElement/size-attribute.html
-/sdcard/android/layout_tests/fast/dom/HTMLElement/set-inner-outer-optimization.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/writeln-multiple-calls.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/writeln-call.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/write-multiple-calls.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/write-call.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/url-getset.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/title-set.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/title-get.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/object-by-name-unknown-child-element.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/object-by-name-or-id.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/document-special-properties.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/document-plugins.html
-/sdcard/android/layout_tests/fast/dom/HTMLDivElement/align/getset.html
-/sdcard/android/layout_tests/fast/dom/HTMLButtonElement/value/getset.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/array/004.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/array/003.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/array/002.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/array/001.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/dumpNodeList.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/015.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/014.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/013.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/012.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/009.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/008.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/007.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/006.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/005.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/004.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/003.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/002.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/001.html
-/sdcard/android/layout_tests/fast/dom/EntityReference/readonly-exceptions.html
-/sdcard/android/layout_tests/fast/dom/Element/setAttribute-with-colon.html
-/sdcard/android/layout_tests/fast/dom/Element/setAttribute-case-insensitivity.html
-/sdcard/android/layout_tests/fast/dom/Element/onclick-case.html
-/sdcard/android/layout_tests/fast/dom/Element/offsetTop-table-cell.html
-/sdcard/android/layout_tests/fast/dom/Element/getAttribute-check-case-sensitivity.html
-/sdcard/android/layout_tests/fast/dom/Element/element-traversal.html
-/sdcard/android/layout_tests/fast/dom/Element/dimension-properties-unrendered.html
-/sdcard/android/layout_tests/fast/dom/Element/contains-method.html
-/sdcard/android/layout_tests/fast/dom/Element/attribute-uppercase.html
-/sdcard/android/layout_tests/fast/dom/Element/attr-param-typechecking.html
-/sdcard/android/layout_tests/fast/dom/DOMImplementation/createDocumentType-err.html
-/sdcard/android/layout_tests/fast/dom/DOMException/RangeException.html
-/sdcard/android/layout_tests/fast/dom/DOMException/prototype-object.html
-/sdcard/android/layout_tests/fast/dom/DOMException/EventException.html
-/sdcard/android/layout_tests/fast/dom/Document/title-property-set-multiple-times.html
-/sdcard/android/layout_tests/fast/dom/Document/title-property-creates-title-element.html
-/sdcard/android/layout_tests/fast/dom/Document/replaceChild-null-oldChild.html
-/sdcard/android/layout_tests/fast/dom/Document/replace-child.html
-/sdcard/android/layout_tests/fast/dom/Document/open-with-pending-load.html
-/sdcard/android/layout_tests/fast/dom/Document/document-reopen.html
-/sdcard/android/layout_tests/fast/dom/Document/document-charset.html
-/sdcard/android/layout_tests/fast/dom/Document/doc-open-while-parsing.html
-/sdcard/android/layout_tests/fast/dom/Document/createElementNS-namespace-err.html
-/sdcard/android/layout_tests/fast/dom/Document/createAttributeNS-namespace-err.html
-/sdcard/android/layout_tests/fast/dom/CSSStyleDeclaration/transition-property-names.html
-/sdcard/android/layout_tests/fast/dom/CSSStyleDeclaration/empty-string-property.html
-/sdcard/android/layout_tests/fast/dom/CSSStyleDeclaration/css-properties-case-sensitive.html
-/sdcard/android/layout_tests/fast/dom/XMLSerializer.html
-/sdcard/android/layout_tests/fast/dom/XMLSerializer-doctype2.html
-/sdcard/android/layout_tests/fast/dom/XMLSerializer-doctype.html
-/sdcard/android/layout_tests/fast/dom/xmlhttprequest-invalid-values.html
-/sdcard/android/layout_tests/fast/dom/xmlhttprequest-html-response-encoding.html
-/sdcard/android/layout_tests/fast/dom/wrapper-identity.html
-/sdcard/android/layout_tests/fast/dom/undetectable-style-filter.html
-/sdcard/android/layout_tests/fast/dom/undetectable-document-all.html
-/sdcard/android/layout_tests/fast/dom/title-text-property.html
-/sdcard/android/layout_tests/fast/dom/title-text-property-2.html
-/sdcard/android/layout_tests/fast/dom/timer-clear-interval-in-handler.html
-/sdcard/android/layout_tests/fast/dom/space-to-text.html
-/sdcard/android/layout_tests/fast/dom/setAttributeNS.html
-/sdcard/android/layout_tests/fast/dom/setAttribute-using-initial-input-value.html
-/sdcard/android/layout_tests/fast/dom/set-inner-text-newlines.html
-/sdcard/android/layout_tests/fast/dom/serialize-cdata.html
-/sdcard/android/layout_tests/fast/dom/select-selectedIndex-multiple.html
-/sdcard/android/layout_tests/fast/dom/select-selectedIndex-bug-12942.html
-/sdcard/android/layout_tests/fast/dom/script-element-without-frame-crash.html
-/sdcard/android/layout_tests/fast/dom/script-element-remove-self.html
-/sdcard/android/layout_tests/fast/dom/script-element-gc.html
-/sdcard/android/layout_tests/fast/dom/script-add.html
-/sdcard/android/layout_tests/fast/dom/resource-locations-in-created-html-document.html
-/sdcard/android/layout_tests/fast/dom/replace-first-child.html
-/sdcard/android/layout_tests/fast/dom/replace-child-siblings.html
-/sdcard/android/layout_tests/fast/dom/remove-style-element.html
-/sdcard/android/layout_tests/fast/dom/remove-named-attribute-crash.html
-/sdcard/android/layout_tests/fast/dom/Range-insertNode-crash.html
-/sdcard/android/layout_tests/fast/dom/prototypes.html
-/sdcard/android/layout_tests/fast/dom/prototype-chain.html
-/sdcard/android/layout_tests/fast/dom/plugin-attributes-enumeration.html
-/sdcard/android/layout_tests/fast/dom/outerText-no-element.html
-/sdcard/android/layout_tests/fast/dom/option-properties.html
-/sdcard/android/layout_tests/fast/dom/objc-big-method-name.html
-/sdcard/android/layout_tests/fast/dom/null-document-xmlhttprequest-open.html
-/sdcard/android/layout_tests/fast/dom/location-assign.html
-/sdcard/android/layout_tests/fast/dom/javascript-backslash.html
-/sdcard/android/layout_tests/fast/dom/innerHTML-nbsp.html
-/sdcard/android/layout_tests/fast/dom/innerHTML-escaping-attribute.html
-/sdcard/android/layout_tests/fast/dom/inner-width-height.html
-/sdcard/android/layout_tests/fast/dom/inner-text-with-no-renderer.html
-/sdcard/android/layout_tests/fast/dom/inner-text-rtl.html
-/sdcard/android/layout_tests/fast/dom/importNode-prefix.html
-/sdcard/android/layout_tests/fast/dom/importNode-null.html
-/sdcard/android/layout_tests/fast/dom/import-document-fragment.html
-/sdcard/android/layout_tests/fast/dom/import-attribute-node.html
-/sdcard/android/layout_tests/fast/dom/implementation-createHTMLDocument.html
-/sdcard/android/layout_tests/fast/dom/ImageDocument-image-deletion.html
-/sdcard/android/layout_tests/fast/dom/image-object.html
-/sdcard/android/layout_tests/fast/dom/iframe-document.html
-/sdcard/android/layout_tests/fast/dom/iframe-contentWindow-crash.html
-/sdcard/android/layout_tests/fast/dom/html-attribute-types.html
-/sdcard/android/layout_tests/fast/dom/getter-on-window-object2.html
-/sdcard/android/layout_tests/fast/dom/getter-on-window-object.html
-/sdcard/android/layout_tests/fast/dom/getelementbyname-invalidation.html
-/sdcard/android/layout_tests/fast/dom/generic-form-element-assert.html
-/sdcard/android/layout_tests/fast/dom/gc-7.html
-/sdcard/android/layout_tests/fast/dom/gc-6.html
-/sdcard/android/layout_tests/fast/dom/gc-5.html
-/sdcard/android/layout_tests/fast/dom/gc-4.html
-/sdcard/android/layout_tests/fast/dom/gc-3.html
-/sdcard/android/layout_tests/fast/dom/gc-2.html
-/sdcard/android/layout_tests/fast/dom/gc-11.html
-/sdcard/android/layout_tests/fast/dom/gc-1.html
-/sdcard/android/layout_tests/fast/dom/frame-contentWindow-crash.html
-/sdcard/android/layout_tests/fast/dom/features.html
-/sdcard/android/layout_tests/fast/dom/exception-no-frame-timeout-crash.html
-/sdcard/android/layout_tests/fast/dom/exception-no-frame-inline-script-crash.html
-/sdcard/android/layout_tests/fast/dom/everything-to-string.html
-/sdcard/android/layout_tests/fast/dom/element-attribute-js-null.html
-/sdcard/android/layout_tests/fast/dom/early-frame-url.html
-/sdcard/android/layout_tests/fast/dom/duplicate-ids.html
-/sdcard/android/layout_tests/fast/dom/duplicate-ids-document-order.html
-/sdcard/android/layout_tests/fast/dom/DOMParser-assign-variable.html
-/sdcard/android/layout_tests/fast/dom/domListEnumeration.html
-/sdcard/android/layout_tests/fast/dom/dom-instanceof.html
-/sdcard/android/layout_tests/fast/dom/documenturi-loses-to-base-tag.html
-/sdcard/android/layout_tests/fast/dom/documenturi-assigned-junk-implies-relative-urls-do-not-resolve.html
-/sdcard/android/layout_tests/fast/dom/documenturi-assigned-junk-implies-baseuri-null.html
-/sdcard/android/layout_tests/fast/dom/documenturi-affects-relative-paths.html
-/sdcard/android/layout_tests/fast/dom/documentElement-null.html
-/sdcard/android/layout_tests/fast/dom/document-scripts.html
-/sdcard/android/layout_tests/fast/dom/document-dir-property.html
-/sdcard/android/layout_tests/fast/dom/document-attribute-js-null.html
-/sdcard/android/layout_tests/fast/dom/document-all-select.html
-/sdcard/android/layout_tests/fast/dom/document-all-input.html
-/sdcard/android/layout_tests/fast/dom/dir-no-body.html
-/sdcard/android/layout_tests/fast/dom/destroy-selected-radio-button-crash.html
-/sdcard/android/layout_tests/fast/dom/defaultView.html
-/sdcard/android/layout_tests/fast/dom/css-shortHands.html
-/sdcard/android/layout_tests/fast/dom/css-set-property-exception.html
-/sdcard/android/layout_tests/fast/dom/css-selectorText.html
-/sdcard/android/layout_tests/fast/dom/css-RGBValue.html
-/sdcard/android/layout_tests/fast/dom/css-mediarule-functions.html
-/sdcard/android/layout_tests/fast/dom/css-element-attribute-js-null.html
-/sdcard/android/layout_tests/fast/dom/css-dom-read.html
-/sdcard/android/layout_tests/fast/dom/css-dom-read-2.html
-/sdcard/android/layout_tests/fast/dom/createElementNS.html
-/sdcard/android/layout_tests/fast/dom/createElement.html
-/sdcard/android/layout_tests/fast/dom/createElement-with-column.xml
-/sdcard/android/layout_tests/fast/dom/createElement-with-column.html
-/sdcard/android/layout_tests/fast/dom/createDocumentType2.html
-/sdcard/android/layout_tests/fast/dom/createDocument.html
-/sdcard/android/layout_tests/fast/dom/createDocument-empty.html
-/sdcard/android/layout_tests/fast/dom/createAttribute-exception.html
-/sdcard/android/layout_tests/fast/dom/constructors-overriding.html
-/sdcard/android/layout_tests/fast/dom/constants.html
-/sdcard/android/layout_tests/fast/dom/computed-style-set-property.html
-/sdcard/android/layout_tests/fast/dom/compatMode-Strict.html
-/sdcard/android/layout_tests/fast/dom/compatMode-Compat.html
-/sdcard/android/layout_tests/fast/dom/compatMode-AlmostStrict.html
-/sdcard/android/layout_tests/fast/dom/comment-dom-node.html
-/sdcard/android/layout_tests/fast/dom/comment-document-fragment.html
-/sdcard/android/layout_tests/fast/dom/collection-null-like-arguments.html
-/sdcard/android/layout_tests/fast/dom/collection-namedItem-via-item.html
-/sdcard/android/layout_tests/fast/dom/clone-node-style.html
-/sdcard/android/layout_tests/fast/dom/clone-node-form-elements.html
-/sdcard/android/layout_tests/fast/dom/clone-node-form-elements-with-attr.html
-/sdcard/android/layout_tests/fast/dom/class-all-whitespace.html
-/sdcard/android/layout_tests/fast/dom/capturing-event-listeners.html
-/sdcard/android/layout_tests/fast/dom/canvasContext2d-element-attribute-js-null.html
-/sdcard/android/layout_tests/fast/dom/background-shorthand-csstext.html
-/sdcard/android/layout_tests/fast/dom/attribute-namespaces-get-set.html
-/sdcard/android/layout_tests/fast/dom/attribute-empty-value-no-children.html
-/sdcard/android/layout_tests/fast/dom/attribute-downcast-right.html
-/sdcard/android/layout_tests/fast/dom/attribute-case-sensitivity.html
-/sdcard/android/layout_tests/fast/dom/array-special-accessors-should-ignore-items.html
-/sdcard/android/layout_tests/fast/dom/anchor-toString.html
-/sdcard/android/layout_tests/fast/dom/anchor-backslash.html
-/sdcard/android/layout_tests/fast/doctypes/html-doctype.html
-/sdcard/android/layout_tests/fast/doctypes/doctype-parsing.html
-/sdcard/android/layout_tests/fast/doctypes/doctype-in-element.html
-/sdcard/android/layout_tests/fast/doctypes/doctype-at-end.html
-/sdcard/android/layout_tests/fast/doctypes/doctype-after-comment.html
-/sdcard/android/layout_tests/fast/doctypes/005-case-preserving.html
-/sdcard/android/layout_tests/fast/css-generated-content/reset-content-to-initial.html
-/sdcard/android/layout_tests/fast/css-generated-content/empty-content-with-float-crash.html
-/sdcard/android/layout_tests/fast/css/variables/invalid-identifier.html
-/sdcard/android/layout_tests/fast/css/counters/counter-number-input.html
-/sdcard/android/layout_tests/fast/css/counters/counter-function-input.html
-/sdcard/android/layout_tests/fast/css/counters/counter-function-input-2.html
-/sdcard/android/layout_tests/fast/css/word-break-user-modify-allowed-values.html
-/sdcard/android/layout_tests/fast/css/transition_shorthand_parsing.html
-/sdcard/android/layout_tests/fast/css/transition-timing-function.html
-/sdcard/android/layout_tests/fast/css/transform-function-lowercase-assert.html
-/sdcard/android/layout_tests/fast/css/stale-style-selector-crash-2.html
-/sdcard/android/layout_tests/fast/css/stale-style-selector-crash-1.html
-/sdcard/android/layout_tests/fast/css/sheet-title.html
-/sdcard/android/layout_tests/fast/css/remove-shorthand.html
-/sdcard/android/layout_tests/fast/css/readonly-pseudoclass-opera-005.html
-/sdcard/android/layout_tests/fast/css/readonly-pseudoclass-opera-004.html
-/sdcard/android/layout_tests/fast/css/readonly-pseudoclass-opera-003.html
-/sdcard/android/layout_tests/fast/css/readonly-pseudoclass-opera-002.html
-/sdcard/android/layout_tests/fast/css/readonly-pseudoclass-opera-001.html
-/sdcard/android/layout_tests/fast/css/pseudostyle-anonymous-text.html
-/sdcard/android/layout_tests/fast/css/parse-timing-function-crash.html
-/sdcard/android/layout_tests/fast/css/padding-no-renderer.html
-/sdcard/android/layout_tests/fast/css/overflow-property.html
-/sdcard/android/layout_tests/fast/css/outline-hidden-illegal-value.html
-/sdcard/android/layout_tests/fast/css/orphaned_units_crash.html
-/sdcard/android/layout_tests/fast/css/nested-rule-parent-sheet.html
-/sdcard/android/layout_tests/fast/css/min-device-aspect-ratio.html
-/sdcard/android/layout_tests/fast/css/media-rule-dyn.html
-/sdcard/android/layout_tests/fast/css/max-height-and-max-width.html
-/sdcard/android/layout_tests/fast/css/max-device-aspect-ratio.html
-/sdcard/android/layout_tests/fast/css/legacy-opacity-styles.html
-/sdcard/android/layout_tests/fast/css/invalid-rule-value.html
-/sdcard/android/layout_tests/fast/css/invalid-cursor-property-crash.html
-/sdcard/android/layout_tests/fast/css/insertRule-media.html
-/sdcard/android/layout_tests/fast/css/insertRule-font-face.html
-/sdcard/android/layout_tests/fast/css/import-style-update.html
-/sdcard/android/layout_tests/fast/css/hexColor-isDigit-assert.html
-/sdcard/android/layout_tests/fast/css/getPropertyValue-clip.html
-/sdcard/android/layout_tests/fast/css/getPropertyValue-border.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle-zIndex-auto.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle-relayout.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle-borderRadius.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle-border-spacing.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle-border-image.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle-border-box.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle-background-size.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle-background-position.html
-/sdcard/android/layout_tests/fast/css/font-property-priority.html
-/sdcard/android/layout_tests/fast/css/font-family-initial.html
-/sdcard/android/layout_tests/fast/css/font-face-multiple-families.html
-/sdcard/android/layout_tests/fast/css/font-face-descriptor-multiple-values-parsing.html
-/sdcard/android/layout_tests/fast/css/emptyStyleTag.html
-/sdcard/android/layout_tests/fast/css/empty-script.html
-/sdcard/android/layout_tests/fast/css/display-none-inline-style-change-crash.html
-/sdcard/android/layout_tests/fast/css/device-aspect-ratio.html
-/sdcard/android/layout_tests/fast/css/dashboard-regions-attr-crash.html
-/sdcard/android/layout_tests/fast/css/CSSPrimitiveValue-exceptions.html
-/sdcard/android/layout_tests/fast/css/css-selector-text.html
-/sdcard/android/layout_tests/fast/css/css-properties-case-insensitive.html
-/sdcard/android/layout_tests/fast/css/computed-style-negative-top.html
-/sdcard/android/layout_tests/fast/css/computed-style-display-none.html
-/sdcard/android/layout_tests/fast/css/child-selector-implicit-tbody.html
-/sdcard/android/layout_tests/fast/css/case-transform.html
-/sdcard/android/layout_tests/fast/css/border-image-crash.html
-/sdcard/android/layout_tests/fast/css/background-position-serialize.html
-/sdcard/android/layout_tests/fast/css/background-position-inherit.html
-/sdcard/android/layout_tests/fast/css/background-currentcolor.html
-/sdcard/android/layout_tests/fast/cookies/local-file-can-set-cookies.html
-/sdcard/android/layout_tests/fast/canvas/unclosed-canvas-4.html
-/sdcard/android/layout_tests/fast/canvas/unclosed-canvas-3.html
-/sdcard/android/layout_tests/fast/canvas/unclosed-canvas-2.html
-/sdcard/android/layout_tests/fast/canvas/unclosed-canvas-1.html
-/sdcard/android/layout_tests/fast/canvas/toDataURL-noData.html
-/sdcard/android/layout_tests/fast/canvas/script-inside-canvas-fallback.html
-/sdcard/android/layout_tests/fast/canvas/radialGradient-infinite-values.html
-/sdcard/android/layout_tests/fast/canvas/pointInPath.html
-/sdcard/android/layout_tests/fast/canvas/linearGradient-infinite-values.html
-/sdcard/android/layout_tests/fast/canvas/pattern-with-transform.html
-/sdcard/android/layout_tests/fast/canvas/gradient-with-clip.html
-/sdcard/android/layout_tests/fast/canvas/gradient-addColorStop-with-invalid-color.html
-/sdcard/android/layout_tests/fast/canvas/drawImage-with-negative-source-destination.html
-/sdcard/android/layout_tests/fast/canvas/drawImage-with-invalid-args.html
-/sdcard/android/layout_tests/fast/canvas/create-pattern-does-not-crash.html
-/sdcard/android/layout_tests/fast/canvas/canvas-with-incorrect-args.html
-/sdcard/android/layout_tests/fast/canvas/canvas-putImageData.html
-/sdcard/android/layout_tests/fast/canvas/canvas-pattern-behaviour.html
-/sdcard/android/layout_tests/fast/canvas/canvas-path-with-inf-nan-dimensions.html
-/sdcard/android/layout_tests/fast/canvas/canvas-invalid-strokestyle.html
-/sdcard/android/layout_tests/fast/canvas/canvas-invalid-fillstyle.html
-/sdcard/android/layout_tests/fast/canvas/canvas-ImageData-behaviour.html
-/sdcard/android/layout_tests/fast/canvas/canvas-hides-fallback.html
-/sdcard/android/layout_tests/fast/canvas/arc-crash.html
-/sdcard/android/layout_tests/fast/canvas/access-zero-sized-canvas.html
diff --git a/tests/DumpRenderTree/run_layout_tests.py b/tests/DumpRenderTree/run_layout_tests.py
deleted file mode 100755
index 433271e..0000000
--- a/tests/DumpRenderTree/run_layout_tests.py
+++ /dev/null
@@ -1,274 +0,0 @@
-#!/usr/bin/python
-
-"""Run layout tests using Android emulator and instrumentation.
-
- First, you need to get an SD card or sdcard image that has layout tests on it.
- Layout tests are in following directory:
- /sdcard/android/layout_tests
- For example, /sdcard/android/layout_tests/fast
-
- Usage:
- Run all tests under fast/ directory:
- run_layout_tests.py, or
- run_layout_tests.py fast
-
- Run all tests under a sub directory:
- run_layout_tests.py fast/dom
-
- Run a single test:
- run_layout_tests.py fast/dom/
-
- After a merge, if there are changes of layout tests in SD card, you need to
- use --refresh-test-list option *once* to re-generate test list on the card.
-
- Some other options are:
- --time-out-ms (default is 8000 millis) for each test
- --adb-options="-e" passes option string to adb
- --results-directory=..., (default is ./layout-test-results) directory name under which results are stored.
-"""
-
-import logging
-import optparse
-import os
-import subprocess
-import sys
-import time
-
-def CountLineNumber(filename):
- """Compute the number of lines in a given file.
-
- Args:
- filename: a file name related to the current directory.
- """
-
- fp = open(os.path.abspath(filename), "r");
- lines = 0
- for line in fp.readlines():
- lines = lines + 1
- fp.close()
- return lines
-
-def DumpRenderTreeFinished(adb_cmd):
- """ Check if DumpRenderTree finished running tests
-
- Args:
- output: adb_cmd string
- """
-
- # pull /sdcard/running_test.txt, if the content is "#DONE", it's done
- shell_cmd_str = adb_cmd + " shell cat /sdcard/running_test.txt"
- adb_output = subprocess.Popen(shell_cmd_str, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0]
- return adb_output.strip() == "#DONE"
-
-def DiffResults(marker, new_results, old_results, diff_results, strip_reason):
- """ Given two result files, generate diff and
- write to diff_results file. All arguments are absolute paths
- to files.
- """
- old_file = open(old_results, "r")
- new_file = open(new_results, "r")
- diff_file = open(diff_results, "a")
-
- # Read lines from each file
- ndict = new_file.readlines()
- cdict = old_file.readlines()
-
- # Write marker to diff file
- diff_file.writelines(marker + "\n")
- diff_file.writelines("###############\n")
-
- # Strip reason from result lines
- if strip_reason is True:
- for i in range(0, len(ndict)):
- ndict[i] = ndict[i].split(' ')[0] + "\n"
- for i in range(0, len(cdict)):
- cdict[i] = cdict[i].split(' ')[0] + "\n"
-
- # Find results in new_results missing in old_results
- new_count=0
- for line in ndict:
- if line not in cdict:
- diff_file.writelines("+ " + line)
- new_count += 1
-
- # Find results in old_results missing in new_results
- missing_count=0
- for line in cdict:
- if line not in ndict:
- diff_file.writelines("- " + line)
- missing_count += 1
-
- logging.info(marker + " >>> " + str(new_count) + " new, " + str(missing_count) + " misses")
-
- diff_file.writelines("\n\n")
-
- old_file.close()
- new_file.close()
- diff_file.close()
- return
-
-def CompareResults(ref_dir, results_dir):
- """Compare results in two directories
-
- Args:
- ref_dir: the reference directory having layout results as references
- results_dir: the results directory
- """
- logging.info("Comparing results to " + ref_dir)
-
- diff_result = os.path.join(results_dir, "layout_tests_diff.txt")
- if os.path.exists(diff_result):
- os.remove(diff_result)
-
- files=["passed", "failed", "nontext", "crashed"]
- for f in files:
- result_file_name = "layout_tests_" + f + ".txt"
- DiffResults(f, os.path.join(results_dir, result_file_name),
- os.path.join(ref_dir, result_file_name), diff_result,
- f == "failed")
- logging.info("Detailed diffs are in " + diff_result)
-
-def main(options, args):
- """Run the tests. Will call sys.exit when complete.
-
- Args:
- options: a dictionary of command line options
- args: a list of sub directories or files to test
- """
-
- # Set up logging format.
- log_level = logging.INFO
- if options.verbose:
- log_level = logging.DEBUG
- logging.basicConfig(level=log_level,
- format='%(message)s')
-
- # Include all tests if none are specified.
- if not args:
- path = 'fast';
- else:
- path = ' '.join(args);
-
- adb_cmd = "adb ";
- if options.adb_options:
- adb_cmd += options.adb_options
-
- # Re-generate the test list if --refresh-test-list is on
- if options.refresh_test_list:
- logging.info("Generating test list.");
- shell_cmd_str = adb_cmd + " shell am instrument -e class com.android.dumprendertree.LayoutTestsAutoTest#generateTestList -e path fast -w com.android.dumprendertree/.LayoutTestsAutoRunner"
- adb_output = subprocess.Popen(shell_cmd_str, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0]
-
- if adb_output.find('Process crashed') != -1:
- logging.info("Aborting because cannot generate test list.\n" + adb_output)
- sys.exit(1)
-
-
- logging.info("Running tests")
-
- # Count crashed tests.
- crashed_tests = []
-
- timeout_ms = '8000'
- if options.time_out_ms:
- timeout_ms = options.time_out_ms
-
- # Run test until it's done
-
- # Call LayoutTestsAutoTest::startLayoutTests.
- shell_cmd_str = adb_cmd + " shell am instrument -e class com.android.dumprendertree.LayoutTestsAutoTest#startLayoutTests -e path \"" + path + "\" -e timeout " + timeout_ms + " -w com.android.dumprendertree/.LayoutTestsAutoRunner"
- adb_output = subprocess.Popen(shell_cmd_str, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0]
- while not DumpRenderTreeFinished(adb_cmd):
- # Get the running_test.txt
- logging.error("DumpRenderTree crashed, output:\n" + adb_output)
-
- shell_cmd_str = adb_cmd + " shell cat /sdcard/running_test.txt"
- crashed_test = subprocess.Popen(shell_cmd_str, shell=True, stdout=subprocess.PIPE).communicate()[0]
-
- logging.info(crashed_test + " CRASHED");
- crashed_tests.append(crashed_test);
-
- logging.info("Resuming layout test runner...");
- # Call LayoutTestsAutoTest::resumeLayoutTests
- shell_cmd_str = adb_cmd + " shell am instrument -e class com.android.dumprendertree.LayoutTestsAutoTest#resumeLayoutTests -e path \"" + path + "\" -e timeout " + timeout_ms + " -w com.android.dumprendertree/.LayoutTestsAutoRunner"
-
- adb_output = subprocess.Popen(shell_cmd_str, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0]
-
- if adb_output.find('INSTRUMENTATION_FAILED') != -1:
- logging.error("Error happened : " + adb_output)
- sys.exit(1)
-
- logging.debug(adb_output);
- logging.info("Done\n");
-
- # Pull results from /sdcard
- results_dir = options.results_directory
- if not os.path.exists(results_dir):
- os.makedirs(results_dir)
- if not os.path.isdir(results_dir):
- logging.error("Cannot create results dir: " + results_dir);
- sys.exit(1);
-
- result_files = ["/sdcard/layout_tests_passed.txt",
- "/sdcard/layout_tests_failed.txt",
- "/sdcard/layout_tests_nontext.txt"]
- for file in result_files:
- shell_cmd_str = adb_cmd + " pull " + file + " " + results_dir
- adb_output = subprocess.Popen(shell_cmd_str, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0]
- logging.debug(adb_output)
-
- # Create the crash list.
- fp = open(results_dir + "/layout_tests_crashed.txt", "w");
- fp.writelines(crashed_tests)
- fp.close()
-
- # Count the number of tests in each category.
- passed_tests = CountLineNumber(results_dir + "/layout_tests_passed.txt")
- logging.info(str(passed_tests) + " passed")
- failed_tests = CountLineNumber(results_dir + "/layout_tests_failed.txt")
- logging.info(str(failed_tests) + " failed")
- crashed_tests = CountLineNumber(results_dir + "/layout_tests_crashed.txt")
- logging.info(str(crashed_tests) + " crashed")
- nontext_tests = CountLineNumber(results_dir + "/layout_tests_nontext.txt")
- logging.info(str(nontext_tests) + " no dumpAsText")
-
- logging.info("Results are stored under: " + results_dir + "\n")
-
- # Comparing results to references to find new fixes and regressions.
- results_dir = os.path.abspath(options.results_directory)
- ref_dir = options.ref_directory
-
- # if ref_dir is null, cannonify ref_dir to the script dir.
- if not ref_dir:
- script_self = sys.argv[0]
- script_dir = os.path.dirname(script_self)
- ref_dir = os.path.join(script_dir, "results")
-
- ref_dir = os.path.abspath(ref_dir)
-
- CompareResults(ref_dir, results_dir)
-
-if '__main__' == __name__:
- option_parser = optparse.OptionParser()
- option_parser.add_option("", "--time-out-ms",
- default=None,
- help="set the timeout for each test")
- option_parser.add_option("", "--verbose", action="store_true",
- default=False,
- help="include debug-level logging")
- option_parser.add_option("", "--refresh-test-list", action="store_true",
- default=False,
- help="re-generate test list, it may take some time.")
- option_parser.add_option("", "--adb-options",
- default=None,
- help="pass options to adb, such as -d -e, etc");
- option_parser.add_option("", "--results-directory",
- default="layout-test-results",
- help="directory which results are stored.")
- option_parser.add_option("", "--ref-directory",
- default=None,
- dest="ref_directory",
- help="directory where reference results are stored.")
-
- options, args = option_parser.parse_args();
- main(options, args)
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java b/tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java
deleted file mode 100644
index a389461..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java
+++ /dev/null
@@ -1,328 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree;
-
-import android.os.Handler;
-import android.os.Message;
-
-import java.util.HashMap;
-
-public class CallbackProxy extends Handler implements EventSender, LayoutTestController {
-
- private EventSender mEventSender;
- private LayoutTestController mLayoutTestController;
-
- private static final int EVENT_DOM_LOG = 1;
- private static final int EVENT_FIRE_KBD = 2;
- private static final int EVENT_KEY_DOWN_1 = 3;
- private static final int EVENT_KEY_DOWN_2 = 4;
- private static final int EVENT_LEAP = 5;
- private static final int EVENT_MOUSE_CLICK = 6;
- private static final int EVENT_MOUSE_DOWN = 7;
- private static final int EVENT_MOUSE_MOVE = 8;
- private static final int EVENT_MOUSE_UP = 9;
-
- private static final int LAYOUT_CLEAR_LIST = 20;
- private static final int LAYOUT_DISPLAY = 21;
- private static final int LAYOUT_DUMP_TEXT = 22;
- private static final int LAYOUT_DUMP_HISTORY = 23;
- private static final int LAYOUT_DUMP_CHILD_SCROLL = 24;
- private static final int LAYOUT_DUMP_EDIT_CB = 25;
- private static final int LAYOUT_DUMP_SEL_RECT = 26;
- private static final int LAYOUT_DUMP_TITLE_CHANGES = 27;
- private static final int LAYOUT_KEEP_WEB_HISTORY = 28;
- private static final int LAYOUT_NOTIFY_DONE = 29;
- private static final int LAYOUT_QUEUE_BACK_NAV = 30;
- private static final int LAYOUT_QUEUE_FWD_NAV = 31;
- private static final int LAYOUT_QUEUE_LOAD = 32;
- private static final int LAYOUT_QUEUE_RELOAD = 33;
- private static final int LAYOUT_QUEUE_SCRIPT = 34;
- private static final int LAYOUT_REPAINT_HORZ = 35;
- private static final int LAYOUT_SET_ACCEPT_EDIT = 36;
- private static final int LAYOUT_MAIN_FIRST_RESP = 37;
- private static final int LAYOUT_SET_WINDOW_KEY = 38;
- private static final int LAYOUT_TEST_REPAINT = 39;
- private static final int LAYOUT_WAIT_UNTIL_DONE = 40;
-
- CallbackProxy(EventSender eventSender,
- LayoutTestController layoutTestController) {
- mEventSender = eventSender;
- mLayoutTestController = layoutTestController;
- }
-
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case EVENT_DOM_LOG:
- mEventSender.enableDOMUIEventLogging(msg.arg1);
- break;
- case EVENT_FIRE_KBD:
- mEventSender.fireKeyboardEventsToElement(msg.arg1);
- break;
- case EVENT_KEY_DOWN_1:
- HashMap map = (HashMap) msg.obj;
- mEventSender.keyDown((String) map.get("character"),
- (String[]) map.get("withModifiers"));
- break;
-
- case EVENT_KEY_DOWN_2:
- mEventSender.keyDown((String)msg.obj);
- break;
-
- case EVENT_LEAP:
- mEventSender.leapForward(msg.arg1);
- break;
-
- case EVENT_MOUSE_CLICK:
- mEventSender.mouseClick();
- break;
-
- case EVENT_MOUSE_DOWN:
- mEventSender.mouseDown();
- break;
-
- case EVENT_MOUSE_MOVE:
- mEventSender.mouseMoveTo(msg.arg1, msg.arg2);
- break;
-
- case EVENT_MOUSE_UP:
- mEventSender.mouseUp();
- break;
-
- case LAYOUT_CLEAR_LIST:
- mLayoutTestController.clearBackForwardList();
- break;
-
- case LAYOUT_DISPLAY:
- mLayoutTestController.display();
- break;
-
- case LAYOUT_DUMP_TEXT:
- mLayoutTestController.dumpAsText();
- break;
-
- case LAYOUT_DUMP_HISTORY:
- mLayoutTestController.dumpBackForwardList();
- break;
-
- case LAYOUT_DUMP_CHILD_SCROLL:
- mLayoutTestController.dumpChildFrameScrollPositions();
- break;
-
- case LAYOUT_DUMP_EDIT_CB:
- mLayoutTestController.dumpEditingCallbacks();
- break;
-
- case LAYOUT_DUMP_SEL_RECT:
- mLayoutTestController.dumpSelectionRect();
- break;
-
- case LAYOUT_DUMP_TITLE_CHANGES:
- mLayoutTestController.dumpTitleChanges();
- break;
-
- case LAYOUT_KEEP_WEB_HISTORY:
- mLayoutTestController.keepWebHistory();
- break;
-
- case LAYOUT_NOTIFY_DONE:
- mLayoutTestController.notifyDone();
- break;
-
- case LAYOUT_QUEUE_BACK_NAV:
- mLayoutTestController.queueBackNavigation(msg.arg1);
- break;
-
- case LAYOUT_QUEUE_FWD_NAV:
- mLayoutTestController.queueForwardNavigation(msg.arg1);
- break;
-
- case LAYOUT_QUEUE_LOAD:
- HashMap<String, String> loadMap =
- (HashMap<String, String>) msg.obj;
- mLayoutTestController.queueLoad(loadMap.get("Url"),
- loadMap.get("frameTarget"));
- break;
-
- case LAYOUT_QUEUE_RELOAD:
- mLayoutTestController.queueReload();
- break;
-
- case LAYOUT_QUEUE_SCRIPT:
- mLayoutTestController.queueScript((String)msg.obj);
- break;
-
- case LAYOUT_REPAINT_HORZ:
- mLayoutTestController.repaintSweepHorizontally();
- break;
-
- case LAYOUT_SET_ACCEPT_EDIT:
- mLayoutTestController.setAcceptsEditing(
- msg.arg1 == 1 ? true : false);
- break;
- case LAYOUT_MAIN_FIRST_RESP:
- mLayoutTestController.setMainFrameIsFirstResponder(
- msg.arg1 == 1 ? true : false);
- break;
-
- case LAYOUT_SET_WINDOW_KEY:
- mLayoutTestController.setWindowIsKey(
- msg.arg1 == 1 ? true : false);
- break;
-
- case LAYOUT_TEST_REPAINT:
- mLayoutTestController.testRepaint();
- break;
-
- case LAYOUT_WAIT_UNTIL_DONE:
- mLayoutTestController.waitUntilDone();
- break;
- }
- }
-
- // EventSender Methods
-
- public void enableDOMUIEventLogging(int DOMNode) {
- obtainMessage(EVENT_DOM_LOG, DOMNode, 0).sendToTarget();
- }
-
- public void fireKeyboardEventsToElement(int DOMNode) {
- obtainMessage(EVENT_FIRE_KBD, DOMNode, 0).sendToTarget();
- }
-
- public void keyDown(String character, String[] withModifiers) {
- // TODO Auto-generated method stub
- HashMap map = new HashMap();
- map.put("character", character);
- map.put("withModifiers", withModifiers);
- obtainMessage(EVENT_KEY_DOWN_1, map).sendToTarget();
- }
-
- public void keyDown(String character) {
- obtainMessage(EVENT_KEY_DOWN_2, character).sendToTarget();
- }
-
- public void leapForward(int milliseconds) {
- obtainMessage(EVENT_LEAP, milliseconds, 0).sendToTarget();
- }
-
- public void mouseClick() {
- obtainMessage(EVENT_MOUSE_CLICK).sendToTarget();
- }
-
- public void mouseDown() {
- obtainMessage(EVENT_MOUSE_DOWN).sendToTarget();
- }
-
- public void mouseMoveTo(int X, int Y) {
- obtainMessage(EVENT_MOUSE_MOVE, X, Y).sendToTarget();
- }
-
- public void mouseUp() {
- obtainMessage(EVENT_MOUSE_UP).sendToTarget();
- }
-
- // LayoutTestController Methods
-
- public void clearBackForwardList() {
- obtainMessage(LAYOUT_CLEAR_LIST).sendToTarget();
- }
-
- public void display() {
- obtainMessage(LAYOUT_DISPLAY).sendToTarget();
- }
-
- public void dumpAsText() {
- obtainMessage(LAYOUT_DUMP_TEXT).sendToTarget();
- }
-
- public void dumpBackForwardList() {
- obtainMessage(LAYOUT_DUMP_HISTORY).sendToTarget();
- }
-
- public void dumpChildFrameScrollPositions() {
- obtainMessage(LAYOUT_DUMP_CHILD_SCROLL).sendToTarget();
- }
-
- public void dumpEditingCallbacks() {
- obtainMessage(LAYOUT_DUMP_EDIT_CB).sendToTarget();
- }
-
- public void dumpSelectionRect() {
- obtainMessage(LAYOUT_DUMP_SEL_RECT).sendToTarget();
- }
-
- public void dumpTitleChanges() {
- obtainMessage(LAYOUT_DUMP_TITLE_CHANGES).sendToTarget();
- }
-
- public void keepWebHistory() {
- obtainMessage(LAYOUT_KEEP_WEB_HISTORY).sendToTarget();
- }
-
- public void notifyDone() {
- obtainMessage(LAYOUT_NOTIFY_DONE).sendToTarget();
- }
-
- public void queueBackNavigation(int howfar) {
- obtainMessage(LAYOUT_QUEUE_BACK_NAV, howfar, 0).sendToTarget();
- }
-
- public void queueForwardNavigation(int howfar) {
- obtainMessage(LAYOUT_QUEUE_FWD_NAV, howfar, 0).sendToTarget();
- }
-
- public void queueLoad(String Url, String frameTarget) {
- HashMap <String, String>map = new HashMap<String, String>();
- map.put("Url", Url);
- map.put("frameTarget", frameTarget);
- obtainMessage(LAYOUT_QUEUE_LOAD, map).sendToTarget();
- }
-
- public void queueReload() {
- obtainMessage(LAYOUT_QUEUE_RELOAD).sendToTarget();
- }
-
- public void queueScript(String scriptToRunInCurrentContext) {
- obtainMessage(LAYOUT_QUEUE_SCRIPT,
- scriptToRunInCurrentContext).sendToTarget();
- }
-
- public void repaintSweepHorizontally() {
- obtainMessage(LAYOUT_REPAINT_HORZ).sendToTarget();
- }
-
- public void setAcceptsEditing(boolean b) {
- obtainMessage(LAYOUT_SET_ACCEPT_EDIT, b ? 1 : 0, 0).sendToTarget();
- }
-
- public void setMainFrameIsFirstResponder(boolean b) {
- obtainMessage(LAYOUT_MAIN_FIRST_RESP, b ? 1 : 0, 0).sendToTarget();
- }
-
- public void setWindowIsKey(boolean b) {
- obtainMessage(LAYOUT_SET_WINDOW_KEY,b ? 1 : 0, 0).sendToTarget();
- }
-
- public void testRepaint() {
- obtainMessage(LAYOUT_TEST_REPAINT).sendToTarget();
- }
-
- public void waitUntilDone() {
- obtainMessage(LAYOUT_WAIT_UNTIL_DONE).sendToTarget();
- }
-
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/EventSender.java b/tests/DumpRenderTree/src/com/android/dumprendertree/EventSender.java
deleted file mode 100644
index 82fd8d8..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/EventSender.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree;
-
-public interface EventSender {
- public void mouseDown();
- public void mouseUp();
- public void mouseClick();
- public void mouseMoveTo(int X, int Y);
- public void leapForward(int milliseconds);
- public void keyDown (String character, String[] withModifiers);
- public void keyDown (String character);
- public void enableDOMUIEventLogging(int DOMNode);
- public void fireKeyboardEventsToElement(int DOMNode);
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/FileFilter.java b/tests/DumpRenderTree/src/com/android/dumprendertree/FileFilter.java
deleted file mode 100644
index 9be33db..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/FileFilter.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree;
-
-import java.util.HashSet;
-import java.util.Hashtable;
-import android.util.*;
-
-public class FileFilter {
-
- public static boolean ignoreTest(String file) {
- // treat files like directories for the time being.
- for (int i = 0; i < ignoreTestList.length; i ++) {
- if (file.endsWith(ignoreTestList[i])) {
- Log.e("FileFilter", "File path in IgnoreTest: " + file);
- return true;
- }
- }
- for (int i = 0; i < ignoreTestDirs.length; i++) {
- if (file.endsWith(ignoreTestDirs[i])) {
- Log.e("FileFilter", "File path in ignore list: " + file);
- return true;
- }
- }
-
- return false;
- }
-
- public static boolean ignoreResults(String file) {
- int index = file.indexOf("fast");
- if (index != -1) {
- String sub = file.substring(index);
- if (ignoreResultList.contains(sub))
- return true;
- }
- return false;
-
- }
-
- public static String isKnownBug(String file) {
- int index = file.indexOf("fast");
- if (index != -1) {
- String sub = file.substring(index);
- // Log.e("FileFilter", "Looking for:"+sub);
- if (bugList.containsKey(sub))
- return bugList.get(sub);
- }
- return null;
- }
-
- final static HashSet<String> ignoreResultList = new HashSet<String>();
- final static Hashtable<String, String> bugList =
- new Hashtable<String, String>();
-
- static {
- fillIgnoreResultSet();
- fillBugTable();
- }
-
- static final String[] ignoreTestDirs = {
- ".", // ignore hidden directories and files
- "resources", // ignore resource directories
- "AppleScript", // AppleScript not supported
- "xpath", // xpath requires libxml2, not supported
- "xsl", //xsl requires libxml2 & libxslt, not sup.
- "kde", // don't run kde tests.
- ".svn", // don't run anything under .svn folder
- "gradients", // known crash
- "profiler" // profiler is not supported
- };
-
- static final String [] ignoreTestList = {
- "toString-stack-overflow.html", // Crashes #606688
- "frame-limit.html", // generates too many GREFs
- "css-insert-import-rule.html", // Crashes, #717414
- "input-text-enter.html", // Crashes. #735088
- "text-shadow-extreme-value.html", // Crashes #571671
- "reflection-masks.html",
- "frame-creation-removal.html",
- "large-expressions.html",
- "null-page-show-modal-dialog-crash.html",
- "font-face-implicit-local-font.html",
- "font-face-locally-installed.html",
- "beforeSelectorOnCodeElement.html",
- "cssTarget-crash.html",
- "searchfield-heights.html", // Bug 1570692
- "tabindex-focus-blur-all.html",
- "search-rtl.html" // fast/forms/search-rtl.html
- };
-
- static void fillIgnoreResultSet() {
- // need test plugin
- ignoreResultList.add("fast/dom/Window/Plug-ins.html");
- // pixel depth
- ignoreResultList.add("fast/dom/Window/window-screen-properties.html");
- // missing space in textrun, ok as text is wrapped. ignore. #714933
- ignoreResultList.add("fast/events/onload-webkit-before-webcore.html");
- // missing support for textInputController.makeAttributedString()
- ignoreResultList.add("fast/forms/attributed-strings.html");
- // charset convert. #516936 ignore, won't fix
- ignoreResultList.add("fast/forms/form-data-encoding-2.html");
- // charset convert. #516936 ignore, won't fix
- ignoreResultList.add("fast/forms/form-data-encoding.html");
- // execCommand "insertText" not supported
- ignoreResultList.add("fast/forms/input-appearance-maxlength.html");
- // Copy&Paste commands not supported
- ignoreResultList.add("fast/forms/input-truncate-newline.html");
- ignoreResultList.add("fast/forms/textarea-paste-newline.html");
- // requires eventSender.mouseMoveTo, mouseDown & mouseUp and
- // abs. position of mouse to select a word. ignore, won't fix #716583
- ignoreResultList.add("fast/forms/onselect-textarea.html");
- // requires eventSender.mouseMoveTo, mouseDown & mouseUp and
- // abs. position of mouse to select a word. ignore, won't fix #716583
- ignoreResultList.add("fast/forms/onselect-textfield.html");
- // not implemented queryCommandEnabled:BackColor, Undo & Redo
- ignoreResultList.add("fast/forms/plaintext-mode-1.html");
- // Our text areas are a little thinner than Apples. Also RTL test failes
- ignoreResultList.add("fast/forms/textarea-appearance-wrap.html");
- // Our text areas are a little thinner than Apples
- ignoreResultList.add("fast/forms/textarea-hard-linewrap.html");
- // screen width&height are different
- ignoreResultList.add("fast/frames/frameElement-widthheight.html");
- ignoreResultList.add("fast/frames/frame-js-url-clientWidth.html");
- // requires JS test API, textInputController
- ignoreResultList.add("fast/text/attributed-substring-from-range.html");
- ignoreResultList.add("fast/text/attributed-substring-from-range-001.html");
- // will not fix #619707
- ignoreResultList.add("fast/css/case-transform.html");
- // different platform defaults for font and different screen size
- ignoreResultList.add("fast/css/computed-style.html");
- // different screen size result in extra spaces in Apple compared to us
- ignoreResultList.add("fast/dom/Element/offsetLeft-offsetTop-body-quirk.html");
- // xslt and xpath elements missing from property list
- ignoreResultList.add("fast/dom/Window/window-properties.html");
- // requires textInputController.characterIndexForPoint
- ignoreResultList.add("fast/dom/character-index-for-point.html");
- // requires xpath support
- ignoreResultList.add("fast/dom/gc-9.html");
- // requires xslt and xpath support
- ignoreResultList.add("fast/dom/global-constructors.html");
- // dynamic plugins not supported
- ignoreResultList.add("fast/dom/object-embed-plugin-scripting.html");
- ignoreResultList.add("fast/js/navigator-mimeTypes-length.html");
- // there is extra spacing in the file due to multiple input boxes
- // fitting on one line on Apple, ours are wrapped. Space at line ends
- // are stripped.
- ignoreResultList.add("fast/dom/tabindex-clamp.html");
-
- // requires eventSender.mouseDown(),mouseUp()
- ignoreResultList.add("fast/dom/Window/window-xy-properties.html");
- ignoreResultList.add("fast/events/window-events-bubble.html");
- ignoreResultList.add("fast/events/window-events-bubble2.html");
- ignoreResultList.add("fast/events/window-events-capture.html");
- ignoreResultList.add("fast/forms/select-empty-list.html");
- ignoreResultList.add("fast/replaced/image-map.html");
- ignoreResultList.add("fast/events/capture-on-target.html");
- ignoreResultList.add("fast/events/dblclick-addEventListener.html");
- ignoreResultList.add("fast/events/drag-in-frames.html");
- ignoreResultList.add("fast/events/drag-outside-window.html");
- ignoreResultList.add("fast/events/event-sender-mouse-click.html");
- ignoreResultList.add("fast/events/event-view-toString.html");
- ignoreResultList.add("fast/events/frame-click-focus.html");
- ignoreResultList.add("fast/events/input-image-scrolled-x-y.html");
- ignoreResultList.add("fast/events/anchor-image-scrolled-x-y.html");
- ignoreResultList.add("fast/events/mouseclick-target-and-positioning.html");
- ignoreResultList.add("fast/events/mouseover-mouseout.html");
- ignoreResultList.add("fast/events/mouseover-mouseout2.html");
- ignoreResultList.add("fast/events/mouseup-outside-button.html");
- ignoreResultList.add("fast/events/mouseup-outside-document.html");
- ignoreResultList.add("fast/events/onclick-list-marker.html");
- ignoreResultList.add("fast/events/ondragenter.html");
- ignoreResultList.add("fast/forms/drag-into-textarea.html");
- ignoreResultList.add("fast/forms/input-select-on-click.html");
- ignoreResultList.add("fast/forms/listbox-onchange.html");
- ignoreResultList.add("fast/forms/search-cancel-button-mouseup.html");
- ignoreResultList.add("fast/forms/textarea-scrolled-endline-caret.html");
-
- // there is extra spacing in the file due to multiple frame boxes
- // fitting on one line on Apple, ours are wrapped. Space at line ends
- // are stripped.
- ignoreResultList.add("fast/events/iframe-object-onload.html");
- // eventSender.mouseDown(), mouseUp() and objc API missing
- ignoreResultList.add("fast/events/mouseup-outside-document.html");
- ignoreResultList.add("fast/events/objc-keyboard-event-creation.html");
- ignoreResultList.add("fast/events/objc-event-api.html");
- // not capturing the console messages
- ignoreResultList.add("fast/forms/selected-index-assert.html");
- ignoreResultList.add("fast/parser/script-tag-with-trailing-slash.html");
- // there is extra spacing as the text areas and input boxes fit next
- // to each other on Apple, but are wrapped on our screen.
- ignoreResultList.add("fast/forms/selection-functions.html");
- // Text selection done differently on our platform. When a inputbox
- // gets focus, the entire block is selected.
- ignoreResultList.add("fast/forms/textarea-initial-caret-position.html");
- ignoreResultList.add("fast/forms/textarea-no-scroll-on-blur.html");
- // Requires LayoutTests to exist at /tmp/LayoutTests
- ignoreResultList.add("fast/loader/local-JavaScript-from-local.html");
- ignoreResultList.add("fast/loader/local-iFrame-source-from-local.html");
- // extra spacing because iFrames rendered next to each other on Apple
- ignoreResultList.add("fast/loader/opaque-base-url.html");
- // RegExp is too large, causing OOM
- ignoreResultList.add("fast/js/regexp-charclass-crash.html");
- ignoreResultList.add("fast/text/plain-text-line-breaks.html");
-
-
- }
-
- static void fillBugTable() {
- bugList.put("fast/forms/check-box-enter-key.html", "716715");
- bugList.put("fast/forms/focus-control-to-page.html", "716638");
- bugList.put("fast/html/tab-order.html", "719289");
- bugList.put("fast/dom/attribute-namespaces-get-set.html", "733229");
- bugList.put("fast/dom/location-hash.html", "733822");
- bugList.put("fast/dom/set-innerHTML.html", "733823");
- bugList.put("fast/dom/xmlhttprequest-get.html", "733846");
- bugList.put("fast/encoding/css-charset-default.html", "733856");
- bugList.put("fast/encoding/default-xhtml-encoding.html", "733882");
- bugList.put("fast/encoding/meta-in-xhtml.html", "733882");
- bugList.put("fast/events/frame-tab-focus.html", "734308");
- bugList.put("fast/events/keydown-keypress-focus-change.html", "653224");
- bugList.put("fast/events/keypress-focus-change.html", "653224");
- bugList.put("fast/events/option-tab.html", "734308");
- bugList.put("fast/forms/focus2.html", "735111");
- bugList.put("fast/forms/listbox-selection.html", "735116");
- bugList.put("fast/forms/search-event-delay.html", "735120");
- bugList.put("fast/frames/iframe-window-focus.html", "735140");
- bugList.put("fast/innerHTML/004.html", "733882");
- bugList.put("fast/js/date-DST-time-cusps.html", "735144");
- bugList.put("fast/js/string-capitalization.html", "516936");
- bugList.put("fast/js/string-concatenate-outofmemory.html","735152");
- bugList.put("fast/parser/external-entities.html", "735176");
- bugList.put("fast/events/div-focus.html", "735185");
- bugList.put("fast/overflow/scroll-vertical-not-horizontal.html", "735196");
- bugList.put("fast/events/arrow-navigation.html", "735233");
- bugList.put("fast/forms/select-type-ahead-non-latin.html", "735244");
- bugList.put("fast/events/js-keyboard-event-creation.html", "735255");
-
- }
-
-
-
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/FileList.java b/tests/DumpRenderTree/src/com/android/dumprendertree/FileList.java
deleted file mode 100644
index d685f5d..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/FileList.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.io.File;
-
-import android.app.ListActivity;
-import android.view.KeyEvent;
-import android.view.View;
-import android.widget.ListView;
-import android.widget.SimpleAdapter;
-import android.os.Bundle;
-
-
-public abstract class FileList extends ListActivity
-{
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- switch (keyCode)
- {
- case KeyEvent.KEYCODE_DPAD_LEFT:
- if (mPath.length() > mBaseLength) {
- File f = new File(mPath);
- mFocusFile = f.getName();
- mFocusIndex = 0;
- f = f.getParentFile();
- mPath = f.getPath();
- updateList();
- return true;
- }
- break;
-
- case KeyEvent.KEYCODE_DPAD_RIGHT:
- {
- Map map = (Map) getListView().getItemAtPosition(getListView().getSelectedItemPosition());
- String path = (String)map.get("path");
- if ((new File(path)).isDirectory()) {
- mPath = path;
- mFocusFile = null;
- updateList();
- } else {
- processFile(path, false);
- }
- return true;
- }
-
- default:
- break;
- }
- return super.onKeyDown(keyCode, event);
- }
-
- public void onCreate(Bundle icicle)
- {
- super.onCreate(icicle);
- setupPath();
- updateList();
- }
-
- protected List getData()
- {
- List myData = new ArrayList<HashMap>();
-
- File f = new File(mPath);
- if (!f.exists()) {
- addItem(myData, "!LayoutTests path missing!", "");
- return myData;
- }
- String[] files = f.list();
-
- for (int i = 0; i < files.length; i++) {
- StringBuilder sb = new StringBuilder(mPath);
- sb.append(File.separatorChar);
- sb.append(files[i]);
- String path = sb.toString();
- File c = new File(path);
- if (fileFilter(c)) {
- if (c.isDirectory()) {
- addItem(myData, "<"+files[i]+">", path);
- if (mFocusFile != null && mFocusFile.equals(files[i]))
- mFocusIndex = myData.size()-1;
- }
- else
- addItem(myData, files[i], path);
- }
- }
-
- return myData;
- }
-
- protected void addItem(List<Map> data, String name, String path)
- {
- HashMap temp = new HashMap();
- temp.put("title", name);
- temp.put("path", path);
- data.add(temp);
- }
-
- protected void onListItemClick(ListView l, View v, int position, long id)
- {
- Map map = (Map) l.getItemAtPosition(position);
- String path = (String)map.get("path");
-
- if ((new File(path)).isDirectory()) {
- mPath = path;
- mFocusFile = null;
- updateList();
- } else {
- processFile(path, false);
- }
- }
-
- /*
- * This function is called when the user has selected a file in the
- * file list. The selected file could be a file or a directory.
- * The flag indicates if this was from a selection or not.
- */
- abstract void processFile(String filename, boolean selection);
-
- /*
- * This function is called when the file list is being built. Return
- * true if the file is to be added to the file list.
- */
- abstract boolean fileFilter(File f);
-
- protected void updateList() {
- setListAdapter(new SimpleAdapter(this,
- getData(),
- android.R.layout.simple_list_item_1,
- new String[] {"title"},
- new int[] {android.R.id.text1}));
- String title = mPath; //.substring(mBaseLength-11); // show the word LayoutTests
- setTitle(title);
- getListView().setSelection(mFocusIndex);
- }
-
- protected void setupPath()
- {
- mPath = "/sdcard/android/layout_tests";
- mBaseLength = mPath.length();
- }
-
- protected String mPath;
- protected int mBaseLength;
- protected String mFocusFile;
- protected int mFocusIndex;
-
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/HTMLHostActivity.java b/tests/DumpRenderTree/src/com/android/dumprendertree/HTMLHostActivity.java
deleted file mode 100644
index 86bfad7..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/HTMLHostActivity.java
+++ /dev/null
@@ -1,726 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.BufferedOutputStream;
-import java.io.FileInputStream;
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.List;
-import java.util.Vector;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.KeyEvent;
-import android.view.ViewGroup;
-import android.webkit.JsPromptResult;
-import android.webkit.JsResult;
-import android.webkit.WebChromeClient;
-import android.webkit.WebSettings;
-import android.webkit.WebView;
-import android.widget.LinearLayout;
-import android.os.*;
-
-// TestRecorder creates two files, one for passing tests
-// and another for failing tests and writes the paths to
-// layout tests one line at a time. TestRecorder does not
-// have ability to clear the results.
-class TestRecorder {
- public void passed(String layout_file) {
- try {
- mBufferedOutputPassedStream.write(layout_file.getBytes());
- mBufferedOutputPassedStream.write('\n');
- mBufferedOutputPassedStream.flush();
- } catch(Exception e) {
- e.printStackTrace();
- }
- }
-
- public void failed(String layout_file, String reason) {
- try {
- mBufferedOutputFailedStream.write(layout_file.getBytes());
- mBufferedOutputFailedStream.write(" : ".getBytes());
- mBufferedOutputFailedStream.write(reason.getBytes());
- mBufferedOutputFailedStream.write('\n');
- mBufferedOutputFailedStream.flush();
- } catch(Exception e) {
- e.printStackTrace();
- }
- }
-
- public void nontext(String layout_file, boolean has_results) {
- try {
- mBufferedOutputNontextStream.write(layout_file.getBytes());
- if (has_results) {
- mBufferedOutputNontextStream.write(" : has expected results".getBytes());
- }
- mBufferedOutputNontextStream.write('\n');
- mBufferedOutputNontextStream.flush();
- } catch(Exception e) {
- e.printStackTrace();
- }
- }
-
- public TestRecorder(boolean resume) {
- try {
- File resultsPassedFile = new File("/sdcard/layout_tests_passed.txt");
- File resultsFailedFile = new File("/sdcard/layout_tests_failed.txt");
- File resultsNontextFile = new File("/sdcard/layout_tests_nontext.txt");
-
- mBufferedOutputPassedStream =
- new BufferedOutputStream(new FileOutputStream(resultsPassedFile, resume));
- mBufferedOutputFailedStream =
- new BufferedOutputStream(new FileOutputStream(resultsFailedFile, resume));
- mBufferedOutputNontextStream =
- new BufferedOutputStream(new FileOutputStream(resultsNontextFile, resume));
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- public void close() {
- try {
- mBufferedOutputPassedStream.close();
- mBufferedOutputFailedStream.close();
- mBufferedOutputNontextStream.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- private BufferedOutputStream mBufferedOutputPassedStream;
- private BufferedOutputStream mBufferedOutputFailedStream;
- private BufferedOutputStream mBufferedOutputNontextStream;
-}
-
-public class HTMLHostActivity extends Activity
- implements LayoutTestController {
-
- public class AsyncHandler extends Handler {
- @Override
- public void handleMessage(Message msg) {
- if (msg.what == MSG_TIMEOUT) {
- mTimedOut = true;
- requestWebKitData();
- return;
- } else if (msg.what == MSG_WEBKIT_DATA) {
- HTMLHostActivity.this.dump(mTimedOut, (String)msg.obj);
- return;
- }
-
- super.handleMessage(msg);
- }
- }
-
- public void requestWebKitData() {
- Message callback = mHandler.obtainMessage(MSG_WEBKIT_DATA);
-
- if (mRequestedWebKitData)
- throw new AssertionError("Requested webkit data twice: " + mWebView.getUrl());
-
- mRequestedWebKitData = true;
- if (mDumpAsText) {
- mWebView.documentAsText(callback);
- } else {
- mWebView.externalRepresentation(callback);
- }
- }
- // Activity methods
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- LinearLayout contentView = new LinearLayout(this);
- contentView.setOrientation(LinearLayout.VERTICAL);
- setContentView(contentView);
-
- mWebView = new WebView(this);
- mWebView.getSettings().setJavaScriptEnabled(true);
- mWebView.setWebChromeClient(mChromeClient);
- mEventSender = new WebViewEventSender(mWebView);
- mCallbackProxy = new CallbackProxy(mEventSender, this);
- mFinishedRunning = false;
-
- mWebView.addJavascriptInterface(mCallbackProxy, "layoutTestController");
- mWebView.addJavascriptInterface(mCallbackProxy, "eventSender");
- contentView.addView(mWebView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT, 0.0f));
-
- mHandler = new AsyncHandler();
- }
-
- @Override
- protected void onRestoreInstanceState(Bundle savedInstanceState) {
- super.onRestoreInstanceState(savedInstanceState);
- }
-
- private void getTestList() {
- // Read test list.
- try {
- BufferedReader inReader = new BufferedReader(new FileReader(LAYOUT_TESTS_LIST_FILE));
- String line = inReader.readLine();
- while (line != null) {
- if (line.startsWith(mTestPathPrefix))
- mTestList.add(line);
- line = inReader.readLine();
- }
- inReader.close();
- Log.v(LOGTAG, "Test list has " + mTestList.size() + " test(s).");
- } catch (Exception e) {
- Log.e(LOGTAG, "Error while reading test list : " + e.getMessage());
- }
- }
-
- private void resumeTestList() {
- // read out the test name it stoped last time.
- try {
- BufferedReader inReader = new BufferedReader(new FileReader(TEST_STATUS_FILE));
- String line = inReader.readLine();
- for (int i = 0; i < mTestList.size(); i++) {
- if (mTestList.elementAt(i).equals(line)) {
- mTestList = new Vector<String>(mTestList.subList(i+1, mTestList.size()));
- break;
- }
- }
- inReader.close();
- } catch (Exception e) {
- Log.e(LOGTAG, "Error reading " + TEST_STATUS_FILE);
- }
- }
-
- private void clearTestStatus() {
- // Delete TEST_STATUS_FILE
- try {
- File f = new File(TEST_STATUS_FILE);
- if (f.delete())
- Log.v(LOGTAG, "Deleted " + TEST_STATUS_FILE);
- else
- Log.e(LOGTAG, "Fail to delete " + TEST_STATUS_FILE);
- } catch (Exception e) {
- Log.e(LOGTAG, "Fail to delete " + TEST_STATUS_FILE + " : " + e.getMessage());
- }
- }
-
- private void updateTestStatus(String s) {
- // Write TEST_STATUS_FILE
- try {
- BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(TEST_STATUS_FILE));
- bos.write(s.getBytes());
- bos.close();
- } catch (Exception e) {
- Log.e(LOGTAG, "Cannot update file " + TEST_STATUS_FILE);
- }
- }
-
- protected void onResume() {
- super.onResume();
- if (mTestList == null)
- mTestList = new Vector<String>();
-
- if (mTestList.isEmpty()) {
- // Read settings
- Intent intent = getIntent();
- mTestPathPrefix = intent.getStringExtra(TEST_PATH_PREFIX);
- mSingleTestMode = intent.getBooleanExtra(SINGLE_TEST_MODE, false);
- boolean resume = intent.getBooleanExtra(RESUME_FROM_CRASH, false);
- mTimeoutInMillis = intent.getIntExtra(TIMEOUT_IN_MILLIS, 8000);
-
- mWebView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);
-
- if (mTestPathPrefix == null)
- throw new AssertionError("mTestPathPrefix cannot be null");
-
- Log.v(LOGTAG, "Run tests with prefix: " + mTestPathPrefix);
-
- mResultRecorder = new TestRecorder(resume);
-
- if (!resume)
- clearTestStatus();
-
- if (!mSingleTestMode) {
- getTestList();
- if (resume)
- resumeTestList();
- } else {
- mTestList.add(mTestPathPrefix);
- }
-
- if (!mTestList.isEmpty())
- runTestAtIndex(0);
- else
- mWebView.loadUrl("about:");
- }
- }
-
- protected void onStop() {
- super.onStop();
- mWebView.stopLoading();
- }
-
- protected void onDestroy() {
- super.onDestroy();
- mResultRecorder.close();
- mWebView.destroy();
- mWebView = null;
- }
-
- public void onLowMemory() {
- super.onLowMemory();
- // Simulate a crash
- Log.e(LOGTAG, "Low memory, killing self");
- System.exit(1);
- }
-
- public boolean dispatchKeyEvent(KeyEvent event) {
- // Log key strokes as they don't seem to be matched
- //Log.e(LOGTAG, "Event: "+event);
- return super.dispatchKeyEvent(event);
- }
-
- // Run a test at specified index in the test list.
- // Stops activity if run out of tests.
- protected void runTestAtIndex(int testIndex) {
- mTestIndex = testIndex;
-
- resetTestStatus();
-
- if (testIndex == mTestList.size()) {
- if (!mSingleTestMode) {
- updateTestStatus("#DONE");
- }
- finished();
- return;
- }
- String s = mTestList.elementAt(testIndex);
- if (!mSingleTestMode)
- updateTestStatus(s);
-
- Log.v(LOGTAG, " Running test: "+s);
- mWebView.loadUrl("file://"+s);
-
- if (!mSingleTestMode) {
- // Create a timeout timer
- Message m = mHandler.obtainMessage(MSG_TIMEOUT);
- mHandler.sendMessageDelayed(m, mTimeoutInMillis);
- }
- }
-
- // Dump the page
- public void dump(boolean timeout, String webkitData) {
- String currentTest = mTestList.elementAt(mTestIndex);
- String resultFile = currentTest.substring(0, currentTest.lastIndexOf('.'));
-
- // dumpAsText version can be directly compared to expected results
- if (mDumpAsText) {
- resultFile += "-results.txt";
- } else {
- resultFile += "-android-results.txt";
- }
-
- try {
- FileOutputStream os = new FileOutputStream(resultFile);
- if (timeout) {
- Log.w("Layout test: Timeout", resultFile);
- os.write(TIMEOUT_STR.getBytes());
- os.write('\n');
- }
- if (mDumpTitleChanges)
- os.write(mTitleChanges.toString().getBytes());
- if (mDialogStrings != null)
- os.write(mDialogStrings.toString().getBytes());
- mDialogStrings = null;
- os.write(webkitData.getBytes());
- os.flush();
- os.close();
- } catch (FileNotFoundException ex) {
- ex.printStackTrace();
- } catch (IOException ex) {
- ex.printStackTrace();
- }
-
- processResult(timeout, currentTest);
- runTestAtIndex(mTestIndex + 1);
- }
-
- // Wrap up
- public void failedCase(String file, String reason) {
- Log.w("Layout test: ", file + " failed " + reason);
- mResultRecorder.failed(file, reason);
-
- String bugNumber = FileFilter.isKnownBug(file);
- if (bugNumber != null) {
- System.out.println("FAIL known:"+bugNumber+ " "+file+reason);
- return;
- }
- if (FileFilter.ignoreResults(file)) {
- return;
- }
- System.out.println("FAIL: "+file+reason);
- }
-
- public void passedCase(String file) {
- Log.v("Layout test:", file + " passed");
- mResultRecorder.passed(file);
-
- String bugNumber = FileFilter.isKnownBug(file);
- if (bugNumber != null) {
- System.out.println("Bug Fixed: "+bugNumber+ " "+file);
- return;
- }
-
- if (FileFilter.ignoreResults(file)) {
- System.out.println("Ignored test passed: "+file);
- return;
- }
- }
-
- public void nontextCase(String file, boolean has_expected_results) {
- Log.v("Layout test:", file + " nontext");
- mResultRecorder.nontext(file, has_expected_results);
- }
-
- public void setCallback(HTMLHostCallbackInterface callback) {
- mCallback = callback;
- }
-
- public void processResult(boolean timeout, String test_path) {
- Log.v(LOGTAG, " Processing result: " + test_path);
- // remove the extension
- String short_file = test_path.substring(0, test_path.lastIndexOf('.'));
- if (timeout) {
- failedCase(test_path, "TIMEDOUT");
- return;
- }
- // Only check results that we can check, ie dumpAsText results
- String dumpFile = short_file + "-results.txt";
- File f = new File(dumpFile);
- if (f.exists()) {
- try {
- FileInputStream fr = new FileInputStream(short_file+"-results.txt");
- FileInputStream fe = new FileInputStream(short_file+"-expected.txt");
-
- // If the length is different then they are different
- int diff = fe.available() - fr.available();
- if (diff > 1 || diff < 0) {
- failedCase(test_path, " different length");
- fr.close();
- fe.close();
- return;
- }
- byte[] br = new byte[fr.available()];
- byte[] be = new byte[fe.available()];
- fr.read(br);
- fe.read(be);
- boolean fail = false;
- for (int i = 0; i < br.length; i++) {
- if (br[i] != be[i]) {
- failedCase(test_path, " @offset: "+i);
- fr.close();
- fe.close();
- return;
- }
- }
- if (br.length != be.length && be[be.length-1] == '\n') {
- Log.d(LOGTAG, "Extra new line being ignore:" + test_path);
- }
- fr.close();
- fe.close();
- passedCase(test_path);
- } catch (FileNotFoundException ex) {
- // TODO do something here
- } catch (IOException ex) {
- // Failed on available() or read()
- }
-
- return;
- }
-
- File nontext_result = new File(short_file + "-android-results.txt");
- if (nontext_result.exists()) {
- // Check if the test has expected results.
- File expected = new File(short_file + "-expected.txt");
- nontextCase(test_path, expected.exists());
- }
- }
-
- public void finished() {
- if (mCallback != null) {
- mCallback.waitForFinish();
- }
-
- mFinishedRunning = true;
- finish();
- }
-
- // LayoutTestController Functions
- public void dumpAsText() {
- mDumpAsText = true;
- if (mWebView != null) {
- String url = mWebView.getUrl();
- Log.v(LOGTAG, "dumpAsText called: "+url);
- }
- }
-
- public void waitUntilDone() {
- mWaitUntilDone = true;
- String url = mWebView.getUrl();
- Log.v(LOGTAG, "waitUntilDone called: " + url);
- }
- public void notifyDone() {
- String url = mWebView.getUrl();
- Log.v(LOGTAG, "notifyDone called: " + url);
- if (mWaitUntilDone) {
- mWaitUntilDone = false;
- mChromeClient.onProgressChanged(mWebView, 100);
- }
- }
-
- public void display() {
- mWebView.invalidate();
- }
-
- public void clearBackForwardList() {
- mWebView.clearHistory();
-
- }
-
- public void dumpBackForwardList() {
- //printf("\n============== Back Forward List ==============\n");
- // mWebHistory
- //printf("===============================================\n");
-
- }
-
- public void dumpChildFrameScrollPositions() {
- // TODO Auto-generated method stub
-
- }
-
- public void dumpEditingCallbacks() {
- // TODO Auto-generated method stub
-
- }
-
- public void dumpSelectionRect() {
- // TODO Auto-generated method stub
-
- }
-
- public void dumpTitleChanges() {
- if (!mDumpTitleChanges) {
- mTitleChanges = new StringBuffer();
- }
- mDumpTitleChanges = true;
- }
-
- public void keepWebHistory() {
- if (!mKeepWebHistory) {
- mWebHistory = new Vector();
- }
- mKeepWebHistory = true;
- }
-
- public void queueBackNavigation(int howfar) {
- // TODO Auto-generated method stub
-
- }
-
- public void queueForwardNavigation(int howfar) {
- // TODO Auto-generated method stub
-
- }
-
- public void queueLoad(String Url, String frameTarget) {
- // TODO Auto-generated method stub
-
- }
-
- public void queueReload() {
- mWebView.reload();
- }
-
- public void queueScript(String scriptToRunInCurrentContext) {
- mWebView.loadUrl("javascript:"+scriptToRunInCurrentContext);
- }
-
- public void repaintSweepHorizontally() {
- // TODO Auto-generated method stub
-
- }
-
- public void setAcceptsEditing(boolean b) {
- // TODO Auto-generated method stub
-
- }
-
- public void setMainFrameIsFirstResponder(boolean b) {
- // TODO Auto-generated method stub
-
- }
-
- public void setWindowIsKey(boolean b) {
- // This is meant to show/hide the window. The best I can find
- // is setEnabled()
- mWebView.setEnabled(b);
- }
-
- public void testRepaint() {
- mWebView.invalidate();
- }
-
- // Instrumentation calls this to find
- // if the activity has finished running the layout tests
- // TODO(fqian): need to sync on mFinisheRunning
- public boolean hasFinishedRunning() {
- return mFinishedRunning;
- }
-
- private final WebChromeClient mChromeClient = new WebChromeClient() {
- @Override
- public void onProgressChanged(WebView view, int newProgress) {
- if (newProgress == 100) {
- if (!mSingleTestMode && !mTimedOut && !mWaitUntilDone && !mRequestedWebKitData) {
- String url = mWebView.getUrl();
- Log.v(LOGTAG, "Finished: "+ url);
- mHandler.removeMessages(MSG_TIMEOUT);
- requestWebKitData();
- } else {
- String url = mWebView.getUrl();
- if (mSingleTestMode) {
- Log.v(LOGTAG, "Single test mode: " + url);
- } else if (mTimedOut) {
- Log.v(LOGTAG, "Timed out before finishing: " + url);
- } else if (mWaitUntilDone) {
- Log.v(LOGTAG, "Waiting for notifyDone: " + url);
- } else if (mRequestedWebKitData) {
- Log.v(LOGTAG, "Requested webkit data ready: " + url);
- }
- }
- }
- }
-
- @Override
- public void onReceivedTitle(WebView view, String title) {
- if (title.length() > 30)
- title = "..."+title.substring(title.length()-30);
- setTitle(title);
- if (mDumpTitleChanges) {
- mTitleChanges.append("TITLE CHANGED: ");
- mTitleChanges.append(title);
- mTitleChanges.append("\n");
- }
- }
-
- @Override
- public boolean onJsAlert(WebView view, String url, String message,
- JsResult result) {
- if (mDialogStrings == null) {
- mDialogStrings = new StringBuffer();
- }
- mDialogStrings.append("ALERT: ");
- mDialogStrings.append(message);
- mDialogStrings.append('\n');
- result.confirm();
- return true;
- }
-
- @Override
- public boolean onJsConfirm(WebView view, String url, String message,
- JsResult result) {
- if (mDialogStrings == null) {
- mDialogStrings = new StringBuffer();
- }
- mDialogStrings.append("CONFIRM: ");
- mDialogStrings.append(message);
- mDialogStrings.append('\n');
- result.confirm();
- return true;
- }
-
- @Override
- public boolean onJsPrompt(WebView view, String url, String message,
- String defaultValue, JsPromptResult result) {
- if (mDialogStrings == null) {
- mDialogStrings = new StringBuffer();
- }
- mDialogStrings.append("PROMPT: ");
- mDialogStrings.append(message);
- mDialogStrings.append(", default text: ");
- mDialogStrings.append(defaultValue);
- mDialogStrings.append('\n');
- result.confirm();
- return true;
- }
- };
-
- private void resetTestStatus() {
- mWaitUntilDone = false;
- mDumpAsText = false;
- mTimedOut = false;
- mDumpTitleChanges = false;
- mRequestedWebKitData = false;
- mEventSender.resetMouse();
- }
-
- private TestRecorder mResultRecorder;
- private HTMLHostCallbackInterface mCallback = null;
- private CallbackProxy mCallbackProxy;
-
- private WebView mWebView;
- private WebViewEventSender mEventSender;
-
- private Vector<String> mTestList;
- private int mTestIndex;
-
- private int mTimeoutInMillis;
- private String mTestPathPrefix;
- private boolean mSingleTestMode;
-
- private AsyncHandler mHandler;
- private boolean mFinishedRunning;
-
- private boolean mTimedOut;
- private boolean mRequestedWebKitData;
- private boolean mDumpAsText;
- private boolean mWaitUntilDone;
- private boolean mDumpTitleChanges;
-
- private StringBuffer mTitleChanges;
- private StringBuffer mDialogStrings;
-
- private boolean mKeepWebHistory;
- private Vector mWebHistory;
-
- static final String TIMEOUT_STR = "**Test timeout";
-
- static final int MSG_TIMEOUT = 0;
- static final int MSG_WEBKIT_DATA = 1;
-
- static final String LOGTAG="DumpRenderTree";
-
- static final String LAYOUT_TESTS_ROOT = "/sdcard/android/layout_tests/";
- static final String LAYOUT_TESTS_LIST_FILE = "/sdcard/layout_tests_list.txt";
- static final String TEST_STATUS_FILE = "/sdcard/running_test.txt";
-
- static final String RESUME_FROM_CRASH = "ResumeFromCrash";
- static final String TEST_PATH_PREFIX = "TestPathPrefix";
- static final String TIMEOUT_IN_MILLIS = "TimeoutInMillis";
- static final String SINGLE_TEST_MODE = "SingleTestMode";
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/HTMLHostApp.java b/tests/DumpRenderTree/src/com/android/dumprendertree/HTMLHostApp.java
deleted file mode 100644
index f610f5a..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/HTMLHostApp.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree;
-
-import android.app.Application;
-
-public class HTMLHostApp extends Application {
-
- public HTMLHostApp() {
- }
-
- public void onCreate() {
- }
-
- public void onTerminate() {
- }
-
-}
-
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/HTMLHostCallbackInterface.java b/tests/DumpRenderTree/src/com/android/dumprendertree/HTMLHostCallbackInterface.java
deleted file mode 100644
index 60a2915..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/HTMLHostCallbackInterface.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree;
-
-public interface HTMLHostCallbackInterface {
- public void waitForFinish();
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestController.java b/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestController.java
deleted file mode 100644
index 6166dd0..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestController.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree;
-
-public interface LayoutTestController {
-
- public void dumpAsText();
- public void waitUntilDone();
- public void notifyDone();
-
- // Force a redraw of the page
- public void display();
- // Used with pixel dumps of content
- public void testRepaint();
-
- // If the page title changes, add the information to the output.
- public void dumpTitleChanges();
- public void dumpBackForwardList();
- public void dumpChildFrameScrollPositions();
- public void dumpEditingCallbacks();
-
- // Show/Hide window for window.onBlur() testing
- public void setWindowIsKey(boolean b);
- // Mac function, used to disable events going to the window
- public void setMainFrameIsFirstResponder(boolean b);
-
- public void dumpSelectionRect();
-
- // invalidate and draw one line at a time of the web view.
- public void repaintSweepHorizontally();
-
- // History testing functions
- public void keepWebHistory();
- public void clearBackForwardList();
- // navigate after page load has finished
- public void queueBackNavigation(int howfar);
- public void queueForwardNavigation(int howfar);
-
- // Reload when the page load has finished
- public void queueReload();
- // Execute the provided script in current context when page load has finished.
- public void queueScript(String scriptToRunInCurrentContext);
- // Load the provided URL into the provided frame
- public void queueLoad(String Url, String frameTarget);
-
- public void setAcceptsEditing(boolean b);
-
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoRunner.java b/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoRunner.java
deleted file mode 100755
index 1f37405..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoRunner.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree;
-
-import junit.framework.TestSuite;
-import com.android.dumprendertree.LayoutTestsAutoTest;
-
-import android.test.InstrumentationTestRunner;
-import android.test.InstrumentationTestSuite;
-import android.util.Log;
-import android.content.Intent;
-import android.os.Bundle;
-
-
-/**
- * Instrumentation Test Runner for all MediaPlayer tests.
- *
- * Running all tests:
- *
- * adb shell am instrument \
- * -w com.android.dumprendertree.LayoutTestsAutoRunner
- */
-
-public class LayoutTestsAutoRunner extends InstrumentationTestRunner {
- @Override
- public TestSuite getAllTests() {
- TestSuite suite = new InstrumentationTestSuite(this);
- suite.addTestSuite(LayoutTestsAutoTest.class);
- return suite;
- }
-
- @Override
- public ClassLoader getLoader() {
- return LayoutTestsAutoRunner.class.getClassLoader();
- }
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- String path = (String) icicle.get("path");
- LayoutTestsAutoTest.setLayoutTestDir(path);
- String timeout_str = (String) icicle.get("timeout");
- int timeout = 0; // default value
- if (timeout_str != null) {
- try {
- timeout = Integer.parseInt(timeout_str);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- LayoutTestsAutoTest.setTimeoutInMillis(timeout);
- }
-}
-
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoTest.java b/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoTest.java
deleted file mode 100644
index 3e65f03..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoTest.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree;
-
-import android.app.Activity;
-import android.app.Instrumentation;
-import android.app.Instrumentation.ActivityMonitor;
-import android.content.ContentResolver;
-import android.content.ContentValues;
-import android.content.Intent;
-
-import android.util.Log;
-import android.view.KeyEvent;
-
-import android.os.Bundle;
-import android.os.Message;
-import android.test.ActivityInstrumentationTestCase;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-
-import com.android.dumprendertree.HTMLHostActivity;
-
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-
-public class LayoutTestsAutoTest extends ActivityInstrumentationTestCase<Menu> {
-
- private final static String LOGTAG = "LayoutTests";
- private final static int DEFAULT_TIMEOUT_IN_MILLIS = 6000;
- private static String layoutTestDir = null;
- private static int mTimeoutInMillis = 0;
-
- public LayoutTestsAutoTest() {
- super("com.android.dumprendertree", Menu.class);
- }
-
- // This function writes the result of the layout test to
- // Am status so that it can be picked up from a script.
- public void passOrFailCallback(String file, boolean result) {
- Instrumentation inst = getInstrumentation();
- Bundle bundle = new Bundle();
- bundle.putBoolean(file, result);
- inst.sendStatus(0, bundle);
- }
-
- public static void setTimeoutInMillis(int millis) {
- mTimeoutInMillis = (millis > 0) ? millis : DEFAULT_TIMEOUT_IN_MILLIS;
- }
-
- public static void setLayoutTestDir(String name) {
- if (name == null)
- throw new AssertionError("Layout test directory cannot be null.");
- layoutTestDir = HTMLHostActivity.LAYOUT_TESTS_ROOT + name;
- Log.v("LayoutTestsAutoTest", " Only running the layout tests : " + layoutTestDir);
- }
-
- // Invokes running of layout tests
- // and waits till it has finished running.
- public void executeLayoutTests(boolean resume) {
- Instrumentation inst = getInstrumentation();
-
- {
- Activity activity = getActivity();
- Intent intent = new Intent();
- intent.setClass(activity, HTMLHostActivity.class);
- intent.putExtra(HTMLHostActivity.RESUME_FROM_CRASH, resume);
- intent.putExtra(HTMLHostActivity.SINGLE_TEST_MODE, false);
- intent.putExtra(HTMLHostActivity.TEST_PATH_PREFIX, layoutTestDir);
- intent.putExtra(HTMLHostActivity.TIMEOUT_IN_MILLIS, mTimeoutInMillis);
- activity.startActivity(intent);
- }
-
- ActivityMonitor htmlHostActivityMonitor =
- inst.addMonitor("com.android.dumprendertree.HTMLHostActivity", null, false);
-
- HTMLHostActivity activity =
- (HTMLHostActivity) htmlHostActivityMonitor.waitForActivity();
-
- while (!activity.hasFinishedRunning()) {
- // Poll every 5 seconds to determine if the layout
- // tests have finished running
- try {Thread.sleep(5000); } catch(Exception e){}
- }
-
- // Wait few more seconds so that results are
- // flushed to the /sdcard
- try {Thread.sleep(5000); } catch(Exception e){}
-
- // Clean up the HTMLHostActivity activity
- activity.finish();
- }
-
- public void generateTestList() {
- try {
- File tests_list = new File(HTMLHostActivity.LAYOUT_TESTS_LIST_FILE);
- BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(tests_list, false));
- findTestsRecursively(bos, layoutTestDir);
- bos.flush();
- bos.close();
- } catch (Exception e) {
- Log.e(LOGTAG, "Error when creating test list: " + e.getMessage());
- }
- }
-
- private void findTestsRecursively(BufferedOutputStream bos, String dir) throws IOException {
- Log.v(LOGTAG, "Searching tests under " + dir);
-
- File d = new File(dir);
- if (!d.isDirectory()) {
- throw new AssertionError("A directory expected, but got " + dir);
- }
-
- String[] files = d.list();
- for (int i = 0; i < files.length; i++) {
- String s = dir + "/" + files[i];
- if (FileFilter.ignoreTest(s)) {
- Log.v(LOGTAG, " Ignoring: " + s);
- continue;
- }
- if (s.toLowerCase().endsWith(".html")
- || s.toLowerCase().endsWith(".xml")) {
- bos.write(s.getBytes());
- bos.write('\n');
- continue;
- }
-
- File f = new File(s);
- if (f.isDirectory()) {
- findTestsRecursively(bos, s);
- continue;
- }
-
- Log.v(LOGTAG, "Skipping " + s);
- }
- }
-
- // Running all the layout tests at once sometimes
- // causes the dumprendertree to run out of memory.
- // So, additional tests are added to run the tests
- // in chunks.
- public void startLayoutTests() {
- try {
- File tests_list = new File(HTMLHostActivity.LAYOUT_TESTS_LIST_FILE);
- if (!tests_list.exists())
- generateTestList();
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- executeLayoutTests(false);
- }
-
- public void resumeLayoutTests() {
- executeLayoutTests(true);
- }
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/Menu.java b/tests/DumpRenderTree/src/com/android/dumprendertree/Menu.java
deleted file mode 100644
index de0da61..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/Menu.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree;
-
-import android.content.Intent;
-import android.net.Uri;
-import android.os.Bundle;
-
-import java.io.File;
-
-public class Menu extends FileList {
-
- public void onCreate(Bundle icicle)
- {
- super.onCreate(icicle);
- }
-
- boolean fileFilter(File f) {
- if (f.getName().startsWith("."))
- return false;
- if (f.getName().equalsIgnoreCase("resources"))
- return false;
- if (f.isDirectory())
- return true;
- if (f.getPath().toLowerCase().endsWith("ml"))
- return true;
- return false;
- }
-
- void processFile(String filename, boolean selection)
- {
- Intent result = new Intent();
- result.setClass(this, HTMLHostActivity.class);
- result.putExtra(HTMLHostActivity.RESUME_FROM_CRASH, false);
- result.putExtra(HTMLHostActivity.SINGLE_TEST_MODE, true);
- result.putExtra(HTMLHostActivity.TEST_PATH_PREFIX, filename);
- result.putExtra(HTMLHostActivity.TIMEOUT_IN_MILLIS, 8000);
- startActivity(result);
- }
-
-}
-
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/WebViewEventSender.java b/tests/DumpRenderTree/src/com/android/dumprendertree/WebViewEventSender.java
deleted file mode 100644
index eea6346..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/WebViewEventSender.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree;
-
-import android.webkit.WebView;
-import android.view.KeyEvent;
-import android.util.*;
-
-import java.util.Arrays;
-
-public class WebViewEventSender implements EventSender {
-
- WebViewEventSender(WebView webView) {
- mWebView = webView;
- }
-
- public void resetMouse() {
- mouseX = mouseY = 0;
- }
-
- public void enableDOMUIEventLogging(int DOMNode) {
- // TODO Auto-generated method stub
-
- }
-
- public void fireKeyboardEventsToElement(int DOMNode) {
- // TODO Auto-generated method stub
-
- }
-
- public void keyDown(String character, String[] withModifiers) {
- Log.e("EventSender", "KeyDown: " + character + "("
- + character.getBytes()[0] + ") Modifiers: "
- + Arrays.toString(withModifiers));
- KeyEvent modifier = null;
- if (withModifiers != null && withModifiers.length > 0) {
- for (int i = 0; i < withModifiers.length; i++) {
- int keyCode = modifierMapper(withModifiers[i]);
- modifier = new KeyEvent(KeyEvent.ACTION_DOWN, keyCode);
- mWebView.onKeyDown(modifier.getKeyCode(), modifier);
- }
- }
- int keyCode = keyMapper(character.toLowerCase().toCharArray()[0]);
- KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, keyCode);
- mWebView.onKeyDown(event.getKeyCode(), event);
-
- }
-
- public void keyDown(String character) {
- keyDown(character, null);
- }
-
- public void leapForward(int milliseconds) {
- // TODO Auto-generated method stub
-
- }
-
- public void mouseClick() {
- mouseDown();
- mouseUp();
- }
-
- public void mouseDown() {
- /* KeyEvent event = new KeyEvent(
- KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_CENTER);
- mWebView.onKeyDown(event.getKeyCode(), event); */
- }
-
- public void mouseMoveTo(int X, int Y) {
- if (X > mouseX) {
- KeyEvent event = new KeyEvent(
- KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_RIGHT);
- mWebView.onKeyDown(event.getKeyCode(), event);
- mWebView.onKeyUp(event.getKeyCode(), event);
- } else if ( X < mouseX ) {
- KeyEvent event = new KeyEvent(
- KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_LEFT);
- mWebView.onKeyDown(event.getKeyCode(), event);
- mWebView.onKeyUp(event.getKeyCode(), event);
- }
- if (Y > mouseY) {
- KeyEvent event = new KeyEvent(
- KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_DOWN);
- mWebView.onKeyDown(event.getKeyCode(), event);
- mWebView.onKeyUp(event.getKeyCode(), event);
- } else if (Y < mouseY ) {
- KeyEvent event = new KeyEvent(
- KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_UP);
- mWebView.onKeyDown(event.getKeyCode(), event);
- mWebView.onKeyUp(event.getKeyCode(), event);
- }
- mouseX= X;
- mouseY= Y;
-
- }
-
- public void mouseUp() {
- /* KeyEvent event = new KeyEvent(
- KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DPAD_CENTER);
- mWebView.onKeyDown(event.getKeyCode(), event);*/
-
- }
-
- // Assumes lowercase chars, case needs to be
- // handled by calling function.
- static int keyMapper(char c) {
- // handle numbers
- if (c >= '0' && c<= '9') {
- int offset = c - '0';
- return KeyEvent.KEYCODE_0 + offset;
- }
-
- // handle characters
- if (c >= 'a' && c <= 'z') {
- int offset = c - 'a';
- return KeyEvent.KEYCODE_A + offset;
- }
-
- // handle all others
- switch (c) {
- case '*':
- return KeyEvent.KEYCODE_STAR;
- case '#':
- return KeyEvent.KEYCODE_POUND;
- case ',':
- return KeyEvent.KEYCODE_COMMA;
- case '.':
- return KeyEvent.KEYCODE_PERIOD;
- case '\t':
- return KeyEvent.KEYCODE_TAB;
- case ' ':
- return KeyEvent.KEYCODE_SPACE;
- case '\n':
- return KeyEvent.KEYCODE_ENTER;
- case '\b':
- case 0x7F:
- return KeyEvent.KEYCODE_DEL;
- case '~':
- return KeyEvent.KEYCODE_GRAVE;
- case '-':
- return KeyEvent.KEYCODE_MINUS;
- case '=':
- return KeyEvent.KEYCODE_EQUALS;
- case '(':
- return KeyEvent.KEYCODE_LEFT_BRACKET;
- case ')':
- return KeyEvent.KEYCODE_RIGHT_BRACKET;
- case '\\':
- return KeyEvent.KEYCODE_BACKSLASH;
- case ';':
- return KeyEvent.KEYCODE_SEMICOLON;
- case '\'':
- return KeyEvent.KEYCODE_APOSTROPHE;
- case '/':
- return KeyEvent.KEYCODE_SLASH;
- default:
- break;
- }
-
- return c;
- }
-
- static int modifierMapper(String modifier) {
- if (modifier.equals("ctrlKey")) {
- return KeyEvent.KEYCODE_ALT_LEFT;
- } else if (modifier.equals("shiftKey")) {
- return KeyEvent.KEYCODE_SHIFT_LEFT;
- } else if (modifier.equals("altKey")) {
- return KeyEvent.KEYCODE_SYM;
- } else if (modifier.equals("metaKey")) {
- return KeyEvent.KEYCODE_UNKNOWN;
- }
- return KeyEvent.KEYCODE_UNKNOWN;
- }
-
- private WebView mWebView = null;
- private int mouseX;
- private int mouseY;
-
-}
diff --git a/tests/FrameworkTest/Android.mk b/tests/FrameworkTest/Android.mk
deleted file mode 100644
index 61cdbfa..0000000
--- a/tests/FrameworkTest/Android.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := tests
-
-# Only compile source java files in this apk.
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_JAVA_LIBRARIES := android.test.runner
-
-LOCAL_PACKAGE_NAME := FrameworkTest
-
-include $(BUILD_PACKAGE)
-# Use the following include to make our test apk.
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/tests/FrameworkTest/AndroidManifest.xml b/tests/FrameworkTest/AndroidManifest.xml
deleted file mode 100644
index c70302b..0000000
--- a/tests/FrameworkTest/AndroidManifest.xml
+++ /dev/null
@@ -1,952 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.frameworktest">
-
- <uses-permission android:name="android.permission.READ_CONTACTS" />
- <uses-permission android:name="android.permission.HARDWARE_TEST" />
- <uses-permission android:name="android.permission.WRITE_SETTINGS" />
-
- <application android:theme="@style/Theme">
- <uses-library android:name="android.test.runner" />
-
- <activity android:name=".FrameworkTestApplication" android:label="FrameworkTestApplication">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
-
- <activity android:name=".performance.InvalidateCycle" android:label="InvalidateCycle">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".focus.DescendantFocusability" android:label="DescendantFocusability">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".focus.FocusAfterRemoval" android:label="FocusAfterRemoval">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".focus.RequestFocus" android:label="RequestFocus">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />V
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".focus.ListOfButtons" android:label="ListOfButtons">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".focus.LinearLayoutGrid" android:label="LinearLayoutGrid">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".focus.ListOfEditTexts" android:label="ListOfEditTexts">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".focus.ListOfInternalSelectionViews" android:label="ListOfInternalSelectionViews">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".focus.ListWithFooterViewAndNewLabels" android:label="FocusListWithFooter">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".focus.ListWithMailMessages" android:label="ListWithMailMessages">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".focus.HorizontalFocusSearch" android:label="HorizontalFocusSearch">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".focus.VerticalFocusSearch" android:label="VerticalFocusSearch">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".focus.AdjacentVerticalRectLists" android:label="AdjacentVerticalRectLists">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".focus.GoneParentFocusedChild" android:label="GoneParentFocusedChild">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".layout.frame.FrameLayoutGravity" android:label="FrameLayoutGravity">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".layout.frame.FrameLayoutMargin" android:label="FrameLayoutMargin">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".layout.linear.BaselineAlignmentCenterGravity" android:label="BaselineAlignmentCenterGravity">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".layout.linear.BaselineButtons" android:label="BaselineButtons">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".layout.linear.FillInWrap" android:label="FillInWrap">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".layout.linear.BaselineAlignmentZeroWidthAndWeight" android:label="Baseline0WidthAndWeight">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".layout.linear.HorizontalOrientationVerticalAlignment" android:label="HorizontalOrientationVerticalAlignment">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".layout.linear.LLEditTextThenButton" android:label="LLEditTextThenButton">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".layout.linear.LLOfButtons1" android:label="LLOfButtons1">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".layout.linear.LinearLayoutEditTexts" android:label="LinearLayoutEditTexts">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".layout.linear.LLOfButtons2" android:label="LLOfButtons2">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".layout.linear.LLOfTwoFocusableInTouchMode" android:label="LLOfTwoFocusableInTouchMode">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".layout.linear.Weight" android:label="Weight">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".layout.linear.WeightSum" android:label="WeightSum">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.AdjacentListsWithAdjacentISVsInside" android:label="AdjacentListsWithAdjacentISVsInside">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListDividers" android:label="ListDividers">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListViewHeight" android:label="ListViewHeight">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".layout.table.FixedWidth" android:label="CellFixedWidth">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".layout.table.Weight" android:label="CellWeight">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".layout.table.HorizontalGravity" android:label="CellHorizontalGravity">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".layout.table.VerticalGravity" android:label="CellVerticalGravity">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".layout.table.AddColumn" android:label="AddColumnInTable">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".layout.table.CellSpan" android:label="CellSpan">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".scroll.ButtonAboveTallInternalSelectionView" android:label="ButtonAboveTallInternalSelectionView">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".scroll.ButtonsWithTallTextViewInBetween" android:label="scrollButtonsWithTallTextViewInBetween">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".scroll.RequestRectangleVisible" android:label="ScrollToChildRect">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".scroll.RequestRectangleVisibleWithInternalScroll" android:label="ScrollToChildRectWithInternalScroll">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".scroll.ScrollViewButtonsAndLabels" android:label="ScrollViewButtonsAndLabels">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".scroll.ShortButtons" android:label="scrollShortButtons">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".scroll.TallTextAboveButton" android:label="scrollTallTextAboveButton">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".view.Include" android:label="IncludeTag">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".view.Merge" android:label="MergeTag">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".view.StubbedView" android:label="ViewStub">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".view.RunQueue" android:label="RunQueue">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".view.Visibility" android:label="Visibility">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".view.BigCache" android:label="BigCache">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".view.ZeroSized" android:label="ZeroSized">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".view.Disabled" android:label="Disabled">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".view.PopupWindowVisibility" android:label="PopupWindowVisibility">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".view.PreDrawListener" android:label="PreDrawListener">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".view.GlobalFocusChange" android:label="GlobalFocusChange">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListSetSelection" android:label="ListSetSelection">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListSimple" android:label="ListSimple">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListFilter" android:label="ListFilter">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListScrollListener" android:label="ListScrollListener">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListThrasher" android:label="ListThrasher">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListTakeFocusFromSide" android:label="ListTakeFocusFromSide">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListBottomGravity" android:label="ListBottomGravity">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListBottomGravityMany" android:label="ListBottomGravityMany">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
-
- <activity android:name=".listview.ListButtonsDiagonalAcrossItems" android:label="ListButtonsDiagonalAcrossItems">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListTopGravity" android:label="ListTopGravity">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListTopGravityMany" android:label="ListTopGravityMany">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListEndingWithMultipleSeparators" android:label="ListEndingWithMultipleSeparators">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListGetSelectedView" android:label="ListGetSelectedView">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListInHorizontal" android:label="ListInHorizontal">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListInVertical" android:label="ListInVertical">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListInterleaveFocusables" android:label="ListInterleaveFocusables">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListOfItemsShorterThanScreen" android:label="ListOfItemsShorterThanScreen">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListOfItemsTallerThanScreen" android:label="ListOfItemsTallerThanScreen">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListOfThinItems" android:label="ListOfThinItems">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListOfShortTallShort" android:label="ListOfShortTallShort">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListOfShortShortTallShortShort" android:label="ListOfShortShortTallShortShort">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListWithOffScreenNextSelectable" android:label="ListWithOffScreenNextSelectable">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListWithFirstScreenUnSelectable" android:label="ListWithFirstScreenUnSelectable">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
-
- <activity android:name=".listview.ListWithSeparators" android:label="ListWithSeparators">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListWithHeaders" android:label="ListWithHeaders">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListWithEditTextHeader" android:label="ListWithEditTextHeader">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
-
- <activity android:name=".listview.ListWithNoFadingEdge" android:label="ListWithNoFadingEdge">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListWithScreenOfNoSelectables" android:label="ListWithScreenOfNoSelectables">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListItemFocusablesFarApart" android:label="ListItemFocusablesFarApart">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListItemFocusableAboveUnfocusable" android:label="ListItemFocusableAboveUnfocusable">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListItemFocusablesClose" android:label="ListItemFocusablesClose">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListLastItemPartiallyVisible" android:label="ListLastItemPartiallyVisible">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListItemsExpandOnSelection" android:label="ListItemsExpandOnSelection">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListWithOnItemSelectedAction" android:label="ListWithOnItemSelectedAction">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListItemISVAndButton" android:label="ListItemISVAndButton">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListOfTouchables" android:label="ListOfTouchables">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListRecyclerProfiling" android:label="ListRecyclerProfiling">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListHeterogeneous" android:label="ListHeterogeneous">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListHorizontalFocusWithinItemWins" android:label="ListHorizontalFocusWithinItemWins">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListManagedCursor" android:label="ListManagedCursor">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListWithEmptyView" android:label="ListWithEmptyView">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".gridview.GridInHorizontal" android:label="GridInHorizontal">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".gridview.GridPadding" android:label="GridPadding">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".gridview.GridInVertical" android:label="GridInVertical">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".gridview.GridScrollListener" android:label="GridScrollListener">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".gridview.GridThrasher" android:label="GridThrasher">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".gridview.GridSimple" android:label="GridSimple">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".gridview.GridDelete" android:label="GridDelete">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".gridview.GridSetSelection" android:label="GridSetSelection">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".gridview.GridSetSelectionMany" android:label="GridSetSelectionMany">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".gridview.GridSetSelectionStackFromBottom" android:label="GridSetSelectionStackFromBottom">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".gridview.GridSetSelectionStackFromBottomMany" android:label="GridSetSelectionStackFromBottomMany">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".gridview.GridStackFromBottom" android:label="GridStackFromBottom">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".gridview.GridStackFromBottomMany" android:label="GridStackFromBottomMany">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".gridview.GridVerticalSpacing" android:label="GridVerticalSpacing">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".gridview.GridVerticalSpacingStackFromBottom" android:label="GridVerticalSpacingStackFromBottom">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".gridview.GridSingleColumn" android:label="GridSingleColumn">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".menus.ListContextMenu" android:label="ListContextMenu">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".view.ViewGroupChildren" android:label="ViewGroup Children">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".view.RemoteViewsActivity" android:label="RemoteViewsActicity">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".drawable.BitmapDrawable" android:label="BitmapDrawable">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".drawable.DrawableBgMinSize" android:label="DrawableBgMinSize">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".drawable.MutateDrawable" android:label="MutateDrawable">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".activity.TranslucentFancyActivity" android:label="TranslucentFancyActivity">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".view.Longpress" android:label="Longpress">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".expandablelistview.ExpandableListWithHeaders" android:label="ExpandableListWithHeaders">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".listview.ListWithDisappearingItemBug" android:label="ListWithDisappearingItemBug">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".menus.MenuWith1Item" android:label="MenuWith1Item">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".menus.MenuLayoutPortrait" android:label="MenuLayoutPortrait"
- android:screenOrientation="portrait">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".menus.MenuLayoutLandscape" android:label="MenuLayoutLandscape"
- android:screenOrientation="landscape">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".expandablelistview.InflatedExpandableListView" android:label="ExpandableListView Inflated">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".expandablelistview.ExpandableListSimple" android:label="ExpandableListSimple">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".settings.RingtonePickerActivityLauncher" android:label="RingtonePickerActivityLauncher">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".settings.BrightnessLimit" android:label="BrightnessLimit">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name="android.widget.AutoCompleteTextViewSimple"
- android:label="AutoCompleteTextViewSimple">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
- </intent-filter>
- </activity>
-
- </application>
-
-</manifest>
diff --git a/tests/FrameworkTest/README b/tests/FrameworkTest/README
deleted file mode 100644
index d6d0042..0000000
--- a/tests/FrameworkTest/README
+++ /dev/null
@@ -1,8 +0,0 @@
-FrameworkTestApplication should hold snippets of functionality that are
-helpful for testing the UI framework code, but not appropriate for
-sample code. For instance, a layout contrived to exercise an edge case
-of scrolling behavior.
-
-InstrumentationTestCases should be added under tests and added to the
-list of tests in FrameworkInstrumentationTestRunner.
-
diff --git a/tests/FrameworkTest/res/drawable/big_drawable_background.9.png b/tests/FrameworkTest/res/drawable/big_drawable_background.9.png
deleted file mode 100644
index aded635..0000000
--- a/tests/FrameworkTest/res/drawable/big_drawable_background.9.png
+++ /dev/null
Binary files differ
diff --git a/tests/FrameworkTest/res/drawable/bitmap_drawable.xml b/tests/FrameworkTest/res/drawable/bitmap_drawable.xml
deleted file mode 100644
index 35673ec..0000000
--- a/tests/FrameworkTest/res/drawable/bitmap_drawable.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
- android:src="@drawable/sym_now_playing_pause_1"
- android:gravity="top|right" />
diff --git a/tests/FrameworkTest/res/drawable/black_square.png b/tests/FrameworkTest/res/drawable/black_square.png
deleted file mode 100644
index 1bfe0a2..0000000
--- a/tests/FrameworkTest/res/drawable/black_square.png
+++ /dev/null
Binary files differ
diff --git a/tests/FrameworkTest/res/drawable/black_square_stretchable.9.png b/tests/FrameworkTest/res/drawable/black_square_stretchable.9.png
deleted file mode 100644
index 1fcbeb1..0000000
--- a/tests/FrameworkTest/res/drawable/black_square_stretchable.9.png
+++ /dev/null
Binary files differ
diff --git a/tests/FrameworkTest/res/drawable/box.xml b/tests/FrameworkTest/res/drawable/box.xml
deleted file mode 100644
index 6849bd3..0000000
--- a/tests/FrameworkTest/res/drawable/box.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/* //device/apps/common/res/drawable/box.xml
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<shape xmlns:android="http://schemas.android.com/apk/res/android">
- <solid android:color="#00000000"/>
- <stroke android:width="1dp" color="#ff000000"/>
- <padding android:left="1dp" android:top="1dp"
- android:right="1dp" android:bottom="1dp" />
-</shape>
diff --git a/tests/FrameworkTest/res/drawable/drawable_background.9.png b/tests/FrameworkTest/res/drawable/drawable_background.9.png
deleted file mode 100644
index 1337ba9..0000000
--- a/tests/FrameworkTest/res/drawable/drawable_background.9.png
+++ /dev/null
Binary files differ
diff --git a/tests/FrameworkTest/res/drawable/sym_now_playing_pause_1.png b/tests/FrameworkTest/res/drawable/sym_now_playing_pause_1.png
deleted file mode 100644
index 2f19d08..0000000
--- a/tests/FrameworkTest/res/drawable/sym_now_playing_pause_1.png
+++ /dev/null
Binary files differ
diff --git a/tests/FrameworkTest/res/drawable/sym_now_playing_skip_backward_1.png b/tests/FrameworkTest/res/drawable/sym_now_playing_skip_backward_1.png
deleted file mode 100644
index f945a81..0000000
--- a/tests/FrameworkTest/res/drawable/sym_now_playing_skip_backward_1.png
+++ /dev/null
Binary files differ
diff --git a/tests/FrameworkTest/res/drawable/sym_now_playing_skip_forward_1.png b/tests/FrameworkTest/res/drawable/sym_now_playing_skip_forward_1.png
deleted file mode 100644
index da9361a..0000000
--- a/tests/FrameworkTest/res/drawable/sym_now_playing_skip_forward_1.png
+++ /dev/null
Binary files differ
diff --git a/tests/FrameworkTest/res/layout/add_column_in_table.xml b/tests/FrameworkTest/res/layout/add_column_in_table.xml
deleted file mode 100644
index 62c27f3..0000000
--- a/tests/FrameworkTest/res/layout/add_column_in_table.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <TableLayout android:id="@+id/table"
- android:layout_width="fill_parent"
- android:layout_height="0dip"
- android:layout_weight="1.0">
-
- <TableRow>
- <TextView
- android:text="@string/table_layout_a"
- android:padding="3dip" />
- <TextView
- android:text="@string/table_layout_b"
- android:padding="3dip" />
- <TextView
- android:text="@string/table_layout_c"
- android:padding="3dip" />
- </TableRow>
-
- </TableLayout>
-
- <Button android:id="@+id/add_row_button"
- android:text="@string/add_row_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/autocompletetextview_simple.xml b/tests/FrameworkTest/res/layout/autocompletetextview_simple.xml
deleted file mode 100644
index d408a86..0000000
--- a/tests/FrameworkTest/res/layout/autocompletetextview_simple.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/* //device/samples/SampleCode/res/layout/baseline_1.xml
-**
-** Copyright 2008, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/layout"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <AutoCompleteTextView
- android:id="@+id/autocompletetextview1"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:inputType="text|textAutoComplete"
- android:completionThreshold="1" />
- />
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/baseline_0width_and_weight.xml b/tests/FrameworkTest/res/layout/baseline_0width_and_weight.xml
deleted file mode 100644
index 83f3fcb..0000000
--- a/tests/FrameworkTest/res/layout/baseline_0width_and_weight.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-*
-**
-** Copyright 2008, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <LinearLayout android:id="@+id/layout"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:visibility="gone">
- <com.android.frameworktest.layout.linear.ExceptionTextView
- android:id="@+id/routeToField"
- android:textSize="16sp"
- android:layout_width="0dip"
- android:layout_weight="1"
- android:layout_height="wrap_content"
- android:lines="2"
- android:autoText="false"
- android:capitalize="none"
- android:maxLines="1" />
- <Button
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:layout_gravity="fill_vertical"
- android:text="@string/side_button_label" />
- </LinearLayout>
- <Button android:id="@+id/show"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:text="@string/show" />
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/baseline_buttons.xml b/tests/FrameworkTest/res/layout/baseline_buttons.xml
deleted file mode 100644
index ae94201..0000000
--- a/tests/FrameworkTest/res/layout/baseline_buttons.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-*
-**
-** Copyright 2008, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/layout"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal">
-
- <TextView android:id="@+id/currenttime"
- android:text="@string/time"
- android:textSize="12sp"
- android:textStyle="bold"
- android:layout_gravity="bottom"
- android:layout_weight="1"
- android:layout_width="0dip"
- android:layout_height="wrap_content" />
-
- <LinearLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:gravity="center">
-
- <ImageButton android:id="@+id/prev"
- android:src="@drawable/sym_now_playing_skip_backward_1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <ImageButton android:id="@+id/pause"
- android:src="@drawable/sym_now_playing_pause_1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <ImageButton android:id="@+id/next"
- android:src="@drawable/sym_now_playing_skip_forward_1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- </LinearLayout>
-
- <TextView android:id="@+id/totaltime"
- android:textSize="12sp"
- android:textStyle="bold"
- android:gravity="right"
- android:text="@string/time"
- android:layout_gravity="bottom"
- android:layout_weight="1"
- android:layout_width="0dip"
- android:layout_height="wrap_content" />
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/baseline_center_gravity.xml b/tests/FrameworkTest/res/layout/baseline_center_gravity.xml
deleted file mode 100644
index 9793ab4..0000000
--- a/tests/FrameworkTest/res/layout/baseline_center_gravity.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-*
-**
-** Copyright 2008, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
- <Button android:id="@+id/button1"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:layout_gravity="center"
- android:text="@string/side_button_label" />
- <Button android:id="@+id/button2"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:layout_gravity="center"
- android:text="@string/side_button_label" />
- <Button android:id="@+id/button3"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:layout_gravity="center"
- android:text="@string/side_button_label" />
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/brightness_limit.xml b/tests/FrameworkTest/res/layout/brightness_limit.xml
deleted file mode 100644
index 46e5767..0000000
--- a/tests/FrameworkTest/res/layout/brightness_limit.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2008, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<!-- Tries to set brightness to 0. See corresponding Java code. -->
-
-
-<Button xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/go"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/go"/>
-
diff --git a/tests/FrameworkTest/res/layout/descendant_focusability.xml b/tests/FrameworkTest/res/layout/descendant_focusability.xml
deleted file mode 100644
index 6a30d50..0000000
--- a/tests/FrameworkTest/res/layout/descendant_focusability.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
-
- <LinearLayout
- android:id="@+id/beforeDescendants"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:descendantFocusability="beforeDescendants"
- >
- <Button
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- />
- </LinearLayout>
-
- <LinearLayout
- android:id="@+id/afterDescendants"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:descendantFocusability="afterDescendants"
- >
- <Button
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- />
- </LinearLayout>
-
- <LinearLayout
- android:id="@+id/blocksDescendants"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:descendantFocusability="blocksDescendants"
- >
- <Button
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- />
- </LinearLayout>
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/disabled.xml b/tests/FrameworkTest/res/layout/disabled.xml
deleted file mode 100644
index ed7ff06..0000000
--- a/tests/FrameworkTest/res/layout/disabled.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<!-- Demonstrates changing view visibility. See corresponding Java code. -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/clickableParent"
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <Button android:id="@+id/disabledButton"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/disabled_button"/>
-
- <Button android:id="@+id/disabledButtonA"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/disabled_button"/>
-
- <Button android:id="@+id/disabledButtonB"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/disabled_button"/>
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/drawable_background_minimum_size.xml b/tests/FrameworkTest/res/layout/drawable_background_minimum_size.xml
deleted file mode 100644
index ea0cbfa..0000000
--- a/tests/FrameworkTest/res/layout/drawable_background_minimum_size.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content">
-
- <LinearLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="vertical">
-
- <Button
- android:id="@+id/change_backgrounds"
- android:text="@string/change_backgrounds"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <!-- Different views and layouts that should initially be small but still contain
- some content (hence the minimal text inside each of the layouts). Each of these
- will each be tested to make sure they expand to at least the minimum size
- recommended by different backgrounds -->
-
- <TextView
- android:id="@+id/text_view"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/minimal_text" />
-
- <LinearLayout
- android:id="@+id/linear_layout"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content">
-
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/minimal_text" />
-
- </LinearLayout>
-
- <RelativeLayout
- android:id="@+id/relative_layout"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content">
-
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/minimal_text" />
-
- </RelativeLayout>
-
- <FrameLayout
- android:id="@+id/frame_layout"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content">
-
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/minimal_text" />
-
- </FrameLayout>
-
- <AbsoluteLayout
- android:id="@+id/absolute_layout"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content">
-
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/minimal_text" />
-
- </AbsoluteLayout>
-
- </LinearLayout>
-
-</ScrollView>
diff --git a/tests/FrameworkTest/res/layout/fill_in_wrap.xml b/tests/FrameworkTest/res/layout/fill_in_wrap.xml
deleted file mode 100644
index b61fd30..0000000
--- a/tests/FrameworkTest/res/layout/fill_in_wrap.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="?android:attr/listPreferredItemHeight"
- android:orientation="horizontal"
- android:baselineAligned="false"
- android:gravity="center_vertical">
-
- <Button
- android:layout_width="100dip"
- android:layout_height="wrap_content"
- android:gravity="left|center_vertical"
- />
-
- <LinearLayout android:id="@+id/layout"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:paddingLeft="0dip"
- android:paddingRight="0dip"
- android:paddingTop="2dip"
- android:paddingBottom="2dip"
- android:orientation="horizontal"
- android:baselineAligned="false"
- android:addStatesFromChildren="true"
- android:background="@android:drawable/edit_text"
- android:gravity="center_vertical">
-
- <EditText android:id="@+id/data"
- android:layout_width="0dip"
- android:layout_weight="1"
- android:layout_height="fill_parent"
- android:layout_marginLeft="8dip"
- android:paddingBottom="4dip"
- android:layout_gravity="center_vertical"
- android:background="@null"
- />
-
- <ImageButton
- style="@android:style/Widget.Button.Inset"
- android:src="@android:drawable/ic_delete"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginRight="2dip"
- android:gravity="center"
- />
-
- </LinearLayout>
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/focus_after_removal.xml b/tests/FrameworkTest/res/layout/focus_after_removal.xml
deleted file mode 100644
index 7cf6cbe..0000000
--- a/tests/FrameworkTest/res/layout/focus_after_removal.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/* //device/samples/SampleCode/res/layout/baseline_1.xml
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
-
- <LinearLayout android:id="@+id/leftLayout"
- android:orientation="vertical"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content">
-
- <Button android:id="@+id/topLeftButton"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginRight="3dip"
- android:text="@string/left_top" />
- <Button android:id="@+id/bottomLeftButton"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginRight="3dip"
- android:text="@string/left_bottom" />
- </LinearLayout>
-
- <LinearLayout
- android:orientation="vertical"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content">
-
- <Button android:id="@+id/topRightButton"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginRight="3dip"
- android:text="@string/right_top" />
- <Button android:id="@+id/bottomRightButton"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginRight="3dip"
- android:text="@string/right_bottom" />
- </LinearLayout>
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/focus_listener.xml b/tests/FrameworkTest/res/layout/focus_listener.xml
deleted file mode 100644
index a838205..0000000
--- a/tests/FrameworkTest/res/layout/focus_listener.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/* //device/samples/SampleCode/res/layout/baseline_1.xml
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
-
- <Button android:id="@+id/left"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginRight="3dip"
- android:text="@string/left_top" />
-
- <Button android:id="@+id/right"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginRight="3dip"
- android:text="@string/left_bottom" />
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/framelayout_gravity.xml b/tests/FrameworkTest/res/layout/framelayout_gravity.xml
deleted file mode 100644
index ce48825..0000000
--- a/tests/FrameworkTest/res/layout/framelayout_gravity.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/parent"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <Button android:id="@+id/left"
- android:layout_gravity="left"
- android:text="@string/view"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <Button android:id="@+id/right"
- android:layout_gravity="right"
- android:text="@string/view"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <Button android:id="@+id/center_horizontal"
- android:layout_gravity="center_horizontal"
- android:text="@string/view"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <Button android:id="@+id/left_center_vertical"
- android:layout_gravity="center_vertical|left"
- android:text="@string/view"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <Button android:id="@+id/right_center_vertical"
- android:layout_gravity="center_vertical|right"
- android:text="@string/view"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <Button android:id="@+id/center"
- android:layout_gravity="center"
- android:text="@string/view"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <Button android:id="@+id/left_bottom"
- android:layout_gravity="bottom|left"
- android:text="@string/view"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <Button android:id="@+id/right_bottom"
- android:layout_gravity="bottom|right"
- android:text="@string/view"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <Button android:id="@+id/center_horizontal_bottom"
- android:layout_gravity="bottom|center_horizontal"
- android:text="@string/view"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
-</FrameLayout>
diff --git a/tests/FrameworkTest/res/layout/framelayout_margin.xml b/tests/FrameworkTest/res/layout/framelayout_margin.xml
deleted file mode 100644
index 1e14899..0000000
--- a/tests/FrameworkTest/res/layout/framelayout_margin.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/parent"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <Button android:id="@+id/left"
- android:layout_gravity="left"
- android:layout_marginLeft="12dip"
- android:text="@string/view"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <Button android:id="@+id/right"
- android:layout_gravity="right"
- android:layout_marginRight="12dip"
- android:text="@string/view"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <Button android:id="@+id/top"
- android:layout_gravity="top|center_horizontal"
- android:layout_marginTop="12dip"
- android:text="@string/view"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <Button android:id="@+id/bottom"
- android:layout_gravity="bottom|center_horizontal"
- android:layout_marginBottom="12dip"
- android:text="@string/view"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
-</FrameLayout>
diff --git a/tests/FrameworkTest/res/layout/grid_in_horizontal.xml b/tests/FrameworkTest/res/layout/grid_in_horizontal.xml
deleted file mode 100644
index 835dce3..0000000
--- a/tests/FrameworkTest/res/layout/grid_in_horizontal.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <GridView android:id="@+id/grid"
- android:layout_width="0dip"
- android:layout_height="fill_parent"
- android:layout_weight="1"
- android:padding="10dip"
- android:verticalSpacing="10dp"
- android:horizontalSpacing="10dp"
- android:numColumns="auto_fit"
- android:columnWidth="60dp"
- android:stretchMode="columnWidth" />
-
- <ImageButton
- android:src="@drawable/sym_now_playing_pause_1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/grid_in_vertical.xml b/tests/FrameworkTest/res/layout/grid_in_vertical.xml
deleted file mode 100644
index 731bc54..0000000
--- a/tests/FrameworkTest/res/layout/grid_in_vertical.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <GridView android:id="@+id/grid"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:numColumns="auto_fit" />
-
- <ImageButton
- android:src="@drawable/sym_now_playing_pause_1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <ImageButton
- android:src="@drawable/sym_now_playing_pause_1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <ImageButton
- android:src="@drawable/sym_now_playing_pause_1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/grid_padding.xml b/tests/FrameworkTest/res/layout/grid_padding.xml
deleted file mode 100644
index bd666e1..0000000
--- a/tests/FrameworkTest/res/layout/grid_padding.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/grid"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:padding="10dip"
- android:verticalSpacing="10dp"
- android:horizontalSpacing="10dp"
- android:numColumns="auto_fit"
- android:columnWidth="50dp" />
diff --git a/tests/FrameworkTest/res/layout/grid_scroll_listener.xml b/tests/FrameworkTest/res/layout/grid_scroll_listener.xml
deleted file mode 100644
index c02aed9..0000000
--- a/tests/FrameworkTest/res/layout/grid_scroll_listener.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <GridView android:id="@+id/grid"
- android:layout_width="fill_parent"
- android:layout_height="0dip"
- android:layout_weight="1"
- android:padding="10dip"
- android:verticalSpacing="10dp"
- android:horizontalSpacing="10dp"
- android:numColumns="auto_fit"
- android:columnWidth="60dp"
- android:stretchMode="columnWidth"
- android:gravity="center"/>
-
- <TextView android:id="@+id/text"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:gravity="center_horizontal"/>
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/grid_thrasher.xml b/tests/FrameworkTest/res/layout/grid_thrasher.xml
deleted file mode 100644
index 1a260df..0000000
--- a/tests/FrameworkTest/res/layout/grid_thrasher.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <GridView android:id="@+id/grid"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:padding="10dip"
- android:verticalSpacing="10dp"
- android:horizontalSpacing="10dp"
- android:numColumns="auto_fit"
- android:columnWidth="60dp"
- android:stretchMode="columnWidth"
- android:gravity="center"/>
-
- <TextView android:id="@+id/text"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:gravity="center_horizontal"/>
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/include_button.xml b/tests/FrameworkTest/res/layout/include_button.xml
deleted file mode 100644
index 5857fa3..0000000
--- a/tests/FrameworkTest/res/layout/include_button.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<Button xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/included_button"
- android:text="@string/include_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
diff --git a/tests/FrameworkTest/res/layout/include_button_with_size.xml b/tests/FrameworkTest/res/layout/include_button_with_size.xml
deleted file mode 100644
index 0cd8eaa..0000000
--- a/tests/FrameworkTest/res/layout/include_button_with_size.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<Button xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/included_button"
- android:text="@string/include_button"
- android:layout_width="23dip"
- android:layout_height="23dip" />
diff --git a/tests/FrameworkTest/res/layout/include_tag.xml b/tests/FrameworkTest/res/layout/include_tag.xml
deleted file mode 100644
index d1047f1..0000000
--- a/tests/FrameworkTest/res/layout/include_tag.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <TextView
- android:text="@string/include_label"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <include
- layout="@layout/include_button" />
-
- <include
- layout="@layout/include_button"
- android:id="@+id/included_button_overriden"
- android:layout_width="237dip"
- android:layout_height="123dip" />
-
- <include
- layout="@layout/include_button"
- android:id="@+id/included_button_visibility"
- android:visibility="invisible" />
-
- <include
- layout="@layout/include_button_with_size"
- android:id="@+id/included_button_with_size" />
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/inflated_expandablelistview.xml b/tests/FrameworkTest/res/layout/inflated_expandablelistview.xml
deleted file mode 100644
index d01e7c5..0000000
--- a/tests/FrameworkTest/res/layout/inflated_expandablelistview.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<ExpandableListView xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/elv"
- android:layout_height="fill_parent"
- android:layout_width="fill_parent" />
diff --git a/tests/FrameworkTest/res/layout/linear_layout_buttons.xml b/tests/FrameworkTest/res/layout/linear_layout_buttons.xml
deleted file mode 100644
index f60692a..0000000
--- a/tests/FrameworkTest/res/layout/linear_layout_buttons.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/* //device/samples/SampleCode/res/layout/baseline_1.xml
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/layout"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <Button
- android:id="@+id/button1"
- android:layout_width="fill_parent"
- android:layout_height="0sp"
- android:layout_weight="1"
- android:text="@string/keypad_one"/>
-
- <Button
- android:id="@+id/button2"
- android:layout_width="fill_parent"
- android:layout_height="0sp"
- android:layout_weight="1"
- android:text="@string/keypad_two"/>
-
- <Button
- android:id="@+id/button3"
- android:layout_width="fill_parent"
- android:layout_height="0sp"
- android:layout_weight="1"
- android:text="@string/keypad_three"/>
-
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/linear_layout_edittext_then_button.xml b/tests/FrameworkTest/res/layout/linear_layout_edittext_then_button.xml
deleted file mode 100644
index 21e7399..0000000
--- a/tests/FrameworkTest/res/layout/linear_layout_edittext_then_button.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/* //device/samples/SampleCode/res/layout/baseline_1.xml
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/layout"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <EditText
- android:id="@+id/editText"
- android:layout_width="fill_parent"
- android:layout_height="0sp"
- android:layout_weight="1"/>
-
- <Button
- android:id="@+id/button"
- android:layout_width="fill_parent"
- android:layout_height="0sp"
- android:layout_weight="1"
- android:text="@string/keypad_one"/>
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/linear_layout_grid.xml b/tests/FrameworkTest/res/layout/linear_layout_grid.xml
deleted file mode 100644
index 81f7b15..0000000
--- a/tests/FrameworkTest/res/layout/linear_layout_grid.xml
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/* //device/samples/SampleCode/res/layout/baseline_1.xml
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/layout"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <LinearLayout android:id="@+id/column1"
- android:layout_width="fill_parent"
- android:layout_height="0sp"
- android:layout_weight="1"
- android:orientation="horizontal">
-
- <Button
- android:layout_width="0sp"
- android:layout_height="fill_parent"
- android:layout_weight="1"
- android:text="@string/keypad_one"/>
-
- <Button
- android:layout_width="0sp"
- android:layout_height="fill_parent"
- android:layout_weight="1"
- android:text="@string/keypad_two"/>
-
- <Button
- android:layout_width="0sp"
- android:layout_height="fill_parent"
- android:layout_weight="1"
- android:text="@string/keypad_three"/>
- </LinearLayout>
-
- <LinearLayout android:id="@+id/column2"
- android:layout_width="fill_parent"
- android:layout_height="0sp"
- android:layout_weight="1"
- android:orientation="horizontal">
-
- <Button
- android:layout_width="0sp"
- android:layout_height="fill_parent"
- android:layout_weight="1"
- android:text="@string/keypad_four"/>
-
- <Button
- android:layout_width="0sp"
- android:layout_height="fill_parent"
- android:layout_weight="1"
- android:text="@string/keypad_five"/>
-
- <Button
- android:layout_width="0sp"
- android:layout_height="fill_parent"
- android:layout_weight="1"
- android:text="@string/keypad_six"/>
- </LinearLayout>
-
- <LinearLayout android:id="@+id/column3"
- android:layout_width="fill_parent"
- android:layout_height="0sp"
- android:layout_weight="1"
- android:orientation="horizontal">
-
- <Button
- android:layout_width="0sp"
- android:layout_height="fill_parent"
- android:layout_weight="1"
- android:text="@string/keypad_seven"/>
-
- <Button
- android:layout_width="0sp"
- android:layout_height="fill_parent"
- android:layout_weight="1"
- android:text="@string/keypad_eight"/>
-
- <Button
- android:layout_width="0sp"
- android:layout_height="fill_parent"
- android:layout_weight="1"
- android:text="@string/keypad_nine"/>
- </LinearLayout>
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/linear_layout_listview_height.xml b/tests/FrameworkTest/res/layout/linear_layout_listview_height.xml
deleted file mode 100644
index 10ef2ce..0000000
--- a/tests/FrameworkTest/res/layout/linear_layout_listview_height.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2008, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/layout"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <!-- Outer linear layout providing vertical layout -->
- <LinearLayout
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content" >
-
- <!-- The control buttons -->
- <LinearLayout
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content" >
-
- <Button
- android:id="@+id/button1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/linear_listheight_fixed"/>
-
- <Button
- android:id="@+id/button2"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/linear_listheight_fill"/>
-
- <Button
- android:id="@+id/button3"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/linear_listheight_hide"/>
- </LinearLayout>
-
- <!-- The list view -->
- <ListView
- android:id="@+id/inner_list"
- android:layout_width="200dip"
- android:layout_height="fill_parent"
- android:background="@android:drawable/spinner_dropdown_background"
- android:divider="@android:drawable/divider_horizontal_bright" />
-
- </LinearLayout>
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/linear_layout_spinner_then_button.xml b/tests/FrameworkTest/res/layout/linear_layout_spinner_then_button.xml
deleted file mode 100644
index 7ed245b..0000000
--- a/tests/FrameworkTest/res/layout/linear_layout_spinner_then_button.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2008, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
-
- <Spinner android:id="@+id/reminder_value"
- android:layout_width="0dip"
- android:layout_height="wrap_content"
- android:layout_weight="0.7"
- android:entries="@array/reminder_minutes_labels"/>
-
- <Button android:id="@+id/reminder_remove"
- android:layout_width="0dip"
- android:layout_height="wrap_content"
- android:layout_weight="0.3"
- android:text="@string/show" />
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/linear_layout_textviews.xml b/tests/FrameworkTest/res/layout/linear_layout_textviews.xml
deleted file mode 100644
index 84a898c..0000000
--- a/tests/FrameworkTest/res/layout/linear_layout_textviews.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2008, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/layout"
- android:background="#FFFF0000"
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
-
- <EditText
- android:id="@+id/editText1"
- android:text="@string/text"
- android:layout_width="0dip"
- android:layout_height="wrap_content"
- android:layout_weight="1.0" />
-
- <EditText
- android:id="@+id/editText2"
- android:text="@string/text"
- android:layout_width="0dip"
- android:layout_height="wrap_content"
- android:layout_weight="1.0" />
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/linear_layout_weight.xml b/tests/FrameworkTest/res/layout/linear_layout_weight.xml
deleted file mode 100644
index bb138df..0000000
--- a/tests/FrameworkTest/res/layout/linear_layout_weight.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2008, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/layout"
- android:background="#FFFFFFFF"
- android:orientation="horizontal"
- android:layout_width="87dip"
- android:layout_height="wrap_content">
-
- <View
- android:id="@+id/child1"
- android:background="#FFFF0000"
- android:layout_width="20dip"
- android:layout_height="wrap_content"
- android:layout_weight="1.0" />
-
- <View
- android:id="@+id/child2"
- android:background="#FF00FF00"
- android:layout_width="20dip"
- android:layout_height="wrap_content"
- android:layout_weight="1.0" />
-
- <View
- android:background="#FF0000FF"
- android:id="@+id/child3"
- android:layout_width="20dip"
- android:layout_height="wrap_content"
- android:layout_weight="1.0" />
-
- <View
- android:background="#FFFF00FF"
- android:id="@+id/child4"
- android:layout_width="20dip"
- android:layout_height="wrap_content"
- android:layout_weight="1.0" />
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/list_dividers.xml b/tests/FrameworkTest/res/layout/list_dividers.xml
deleted file mode 100644
index b56511e..0000000
--- a/tests/FrameworkTest/res/layout/list_dividers.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <ListView android:id="@android:id/list"
- android:paddingRight="15dip"
- android:layout_marginLeft="50dip"
- android:layout_width="150dip"
- android:layout_height="300dip" />
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/list_filter.xml b/tests/FrameworkTest/res/layout/list_filter.xml
deleted file mode 100644
index cea518c..0000000
--- a/tests/FrameworkTest/res/layout/list_filter.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <FrameLayout android:id="@+id/frame"
- android:layout_width="fill_parent"
- android:layout_height="0dip"
- android:layout_weight="1">
-
- <ListView android:id="@android:id/list"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:drawSelectorOnTop="false" />
-
- </FrameLayout>
-
- <LinearLayout
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
-
- <Button android:id="@+id/hide"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/hide" />
-
- <Button android:id="@+id/show"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/show" />
-
- </LinearLayout>
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/list_in_horizontal.xml b/tests/FrameworkTest/res/layout/list_in_horizontal.xml
deleted file mode 100644
index 371cb84..0000000
--- a/tests/FrameworkTest/res/layout/list_in_horizontal.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <TableRow>
-
- <ListView android:id="@+id/list" />
-
- <ImageButton android:src="@drawable/sym_now_playing_pause_1" />
-
- </TableRow>
-
-</TableLayout>
diff --git a/tests/FrameworkTest/res/layout/list_in_vertical.xml b/tests/FrameworkTest/res/layout/list_in_vertical.xml
deleted file mode 100644
index 0ea2475..0000000
--- a/tests/FrameworkTest/res/layout/list_in_vertical.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <LinearLayout
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
-
- <ListView android:id="@+id/list"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content" />
-
- <ImageButton
- android:src="@drawable/sym_now_playing_pause_1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <ImageButton
- android:src="@drawable/sym_now_playing_pause_1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <ImageButton
- android:src="@drawable/sym_now_playing_pause_1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- </LinearLayout>
-</ScrollView>
diff --git a/tests/FrameworkTest/res/layout/list_recycler_profiling.xml b/tests/FrameworkTest/res/layout/list_recycler_profiling.xml
deleted file mode 100644
index 9678eb7..0000000
--- a/tests/FrameworkTest/res/layout/list_recycler_profiling.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <ListView android:id="@+id/list"
- android:layout_width="fill_parent"
- android:layout_height="0dip"
- android:layout_weight="1.0" />
-
- <ImageButton android:id="@+id/pause"
- android:src="@drawable/sym_now_playing_pause_1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/list_scroll_listener.xml b/tests/FrameworkTest/res/layout/list_scroll_listener.xml
deleted file mode 100644
index 001296a..0000000
--- a/tests/FrameworkTest/res/layout/list_scroll_listener.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <ListView android:id="@android:id/list"
- android:layout_width="fill_parent"
- android:layout_height="0dip"
- android:layout_weight="1"
- android:drawSelectorOnTop="false"/>
-
- <TextView android:id="@+id/text"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:gravity="center_horizontal"/>
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/list_take_focus_from_side.xml b/tests/FrameworkTest/res/layout/list_take_focus_from_side.xml
deleted file mode 100644
index cf141cc..0000000
--- a/tests/FrameworkTest/res/layout/list_take_focus_from_side.xml
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <ListView android:id="@android:id/list"
- android:layout_width="0dip"
- android:layout_weight="1"
- android:layout_height="fill_parent"
- android:drawSelectorOnTop="false"/>
-
- <LinearLayout
- android:orientation="vertical"
- android:layout_width="wrap_content"
- android:layout_height="fill_parent">
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/side_button_label" />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/side_button_label" />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/side_button_label" />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/side_button_label" />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/side_button_label" />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/side_button_label" />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/side_button_label" />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/side_button_label" />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/side_button_label" />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/side_button_label" />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/side_button_label" />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/side_button_label" />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/side_button_label" />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/side_button_label" />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/side_button_label" />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/side_button_label" />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/side_button_label" />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/side_button_label" />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/side_button_label" />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/side_button_label" />
- </LinearLayout>
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/list_thrasher.xml b/tests/FrameworkTest/res/layout/list_thrasher.xml
deleted file mode 100644
index 001296a..0000000
--- a/tests/FrameworkTest/res/layout/list_thrasher.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <ListView android:id="@android:id/list"
- android:layout_width="fill_parent"
- android:layout_height="0dip"
- android:layout_weight="1"
- android:drawSelectorOnTop="false"/>
-
- <TextView android:id="@+id/text"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:gravity="center_horizontal"/>
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/list_with_button_above.xml b/tests/FrameworkTest/res/layout/list_with_button_above.xml
deleted file mode 100644
index 25db016..0000000
--- a/tests/FrameworkTest/res/layout/list_with_button_above.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<!-- Simple layout with a button and a list below, can be used to build more
- sophisticated test cases by adding stuff to the list programatically.-->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/layout"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
-
- <Button android:id="@+id/button"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/button_above_list_label"/>
-
-
- <ListView android:id="@android:id/list"
- android:layout_width="fill_parent"
- android:layout_height="0dip"
- android:layout_weight="1"
- android:paddingTop="2dip"
- android:drawSelectorOnTop="false"/>
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/list_with_disappearing_item_bug_item.xml b/tests/FrameworkTest/res/layout/list_with_disappearing_item_bug_item.xml
deleted file mode 100644
index 0163d96..0000000
--- a/tests/FrameworkTest/res/layout/list_with_disappearing_item_bug_item.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2006 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<!-- A layout is needed to reprod the bug. -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="?android:attr/listPreferredItemHeight">
-
- <TextView
- android:id="@+id/text1"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:textAppearance="?android:attr/textAppearanceLarge"
- android:gravity="center_vertical"
- android:paddingLeft="27dip"
- />
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/list_with_empty_view.xml b/tests/FrameworkTest/res/layout/list_with_empty_view.xml
deleted file mode 100644
index 00d81a7..0000000
--- a/tests/FrameworkTest/res/layout/list_with_empty_view.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent" >
-
- <ListView android:id="@android:id/list"
- android:drawSelectorOnTop="false"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"/>
-
- <TextView android:id="@+id/empty"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:gravity="center"
- android:textSize="36sp"
- android:textColor="#999"
- android:visibility="gone"
- android:text="@string/empty_list" />
-
-</FrameLayout>
diff --git a/tests/FrameworkTest/res/layout/longpress.xml b/tests/FrameworkTest/res/layout/longpress.xml
deleted file mode 100644
index ef3672c..0000000
--- a/tests/FrameworkTest/res/layout/longpress.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <View android:id="@+id/simple_view"
- android:background="@drawable/blue"
- android:layout_width="20dip"
- android:layout_height="20dip"
- android:focusable="true" />
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/mail_message.xml b/tests/FrameworkTest/res/layout/mail_message.xml
deleted file mode 100644
index ed52751..0000000
--- a/tests/FrameworkTest/res/layout/mail_message.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<!-- A layout similar to a gmail message. useful for setting up tests, like
- a list with a list of messages.-->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
-
- <TextView android:id="@+id/subject"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"/>
-
- <WebView android:id="@+id/body"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/merge_child.xml b/tests/FrameworkTest/res/layout/merge_child.xml
deleted file mode 100644
index 9972924..0000000
--- a/tests/FrameworkTest/res/layout/merge_child.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<merge xmlns:android="http://schemas.android.com/apk/res/android">
-
- <TextView
- android:text="@string/include_label"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <TextView
- android:text="@string/include_label"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <TextView
- android:text="@string/include_label"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
-</merge>
diff --git a/tests/FrameworkTest/res/layout/merge_tag.xml b/tests/FrameworkTest/res/layout/merge_tag.xml
deleted file mode 100644
index 9eec493..0000000
--- a/tests/FrameworkTest/res/layout/merge_tag.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<merge xmlns:android="http://schemas.android.com/apk/res/android">
-
- <TextView
- android:text="@string/include_label"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <TextView
- android:text="@string/include_label"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <TextView
- android:text="@string/include_label"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <TextView
- android:text="@string/include_label"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <include layout="@layout/merge_child" />
-
-</merge>
diff --git a/tests/FrameworkTest/res/layout/popup_window_visibility.xml b/tests/FrameworkTest/res/layout/popup_window_visibility.xml
deleted file mode 100644
index 21c94bb..0000000
--- a/tests/FrameworkTest/res/layout/popup_window_visibility.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <FrameLayout android:id="@+id/frame"
- android:layout_width="fill_parent"
- android:layout_height="0dip"
- android:layout_weight="1">
-
- <LinearLayout
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <Spinner android:id="@+id/spinner"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content" />
-
- <AutoCompleteTextView android:id="@+id/auto"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"/>
-
- </LinearLayout>
-
- </FrameLayout>
-
- <LinearLayout
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
-
- <Button android:id="@+id/hide"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/hide" />
-
- <Button android:id="@+id/show"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/show" />
-
- </LinearLayout>
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/pre_draw_listener.xml b/tests/FrameworkTest/res/layout/pre_draw_listener.xml
deleted file mode 100644
index d348d9f..0000000
--- a/tests/FrameworkTest/res/layout/pre_draw_listener.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
-
- <ScrollView
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="0dip"
- android:layout_weight="1">
-
- <view class="com.android.frameworktest.view.PreDrawListener$MyLinearLayout" android:id="@+id/frame"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent" />
-
- </ScrollView>
-
- <Button android:id="@+id/go"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/go" />
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/remote_view_host.xml b/tests/FrameworkTest/res/layout/remote_view_host.xml
deleted file mode 100644
index dc52181..0000000
--- a/tests/FrameworkTest/res/layout/remote_view_host.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2008, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/remote_view_test_bad_1.xml b/tests/FrameworkTest/res/layout/remote_view_test_bad_1.xml
deleted file mode 100644
index 6a65976..0000000
--- a/tests/FrameworkTest/res/layout/remote_view_test_bad_1.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2008, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/linear"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <EditText android:id="@+id/edit"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/remote_view_test_bad_2.xml b/tests/FrameworkTest/res/layout/remote_view_test_bad_2.xml
deleted file mode 100644
index 70613c3..0000000
--- a/tests/FrameworkTest/res/layout/remote_view_test_bad_2.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2008, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/linear"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <WebView android:id="@+id/web"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/remote_view_test_good.xml b/tests/FrameworkTest/res/layout/remote_view_test_good.xml
deleted file mode 100644
index 54f4db9..0000000
--- a/tests/FrameworkTest/res/layout/remote_view_test_good.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2008, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/linear"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <TextView android:id="@+id/text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <ImageView android:id="@+id/image"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <FrameLayout android:id="@+id/frame"
- android:layout_width="10dip"
- android:layout_height="10dip" />
-
- <RelativeLayout android:id="@+id/relative"
- android:layout_width="10dip"
- android:layout_height="10dip" />
-
- <AbsoluteLayout android:id="@+id/absolute"
- android:layout_width="10dip"
- android:layout_height="10dip" />
-
- <ProgressBar android:id="@+id/progress"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <ImageButton android:id="@+id/image_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <Button android:id="@+id/button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/scroll_to_rect_with_internal_scroll.xml b/tests/FrameworkTest/res/layout/scroll_to_rect_with_internal_scroll.xml
deleted file mode 100644
index d22122d..0000000
--- a/tests/FrameworkTest/res/layout/scroll_to_rect_with_internal_scroll.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/* //device/samples/SampleCode/res/layout/scroll_view_1.xml
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<!-- Demonstrates scrolling with a ScrollView. -->
-
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/scrollView"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:scrollbars="none">
-
- <LinearLayout
- android:id="@+id/layout"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
-
-
- <Button android:id="@+id/scrollToBlob"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/scroll_top_button"/>
-
- <TextView android:id="@+id/blob"
- android:layout_width="fill_parent"
- android:layout_height="80dip"
- android:layout_marginTop="500dip"
- android:layout_marginBottom="5dip"/>
-
-
- </LinearLayout>
-</ScrollView>
diff --git a/tests/FrameworkTest/res/layout/scroll_to_rectangle.xml b/tests/FrameworkTest/res/layout/scroll_to_rectangle.xml
deleted file mode 100644
index 0839b1a..0000000
--- a/tests/FrameworkTest/res/layout/scroll_to_rectangle.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/* //device/samples/SampleCode/res/layout/scroll_view_1.xml
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<!-- Demonstrates scrolling with a ScrollView. -->
-
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/scrollView"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:scrollbars="none">
-
- <LinearLayout
- android:id="@+id/layout"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
-
-
- <Button android:id="@+id/scrollToRectFromTop"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/scroll_top_button"/>
-
- <Button android:id="@+id/scrollToRectFromTop2"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:paddingBottom="10dip"
- android:text="@string/scroll_top_button2"/>
-
- <TextView android:id="@+id/topBlob"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="5dip"
- android:layout_marginBottom="5dip"/>
-
- <TextView android:id="@+id/childToMakeVisible"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="5dip"
- android:layout_marginBottom="5dip"
- android:text="@string/scroll_to_me"/>
-
- <TextView android:id="@+id/bottomBlob"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="5dip"
- android:layout_marginBottom="5dip"/>
-
- <Button android:id="@+id/scrollToRectFromBottom2"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:paddingTop="10dip"
- android:text="@string/scroll_bottom_button2"/>
-
- <Button android:id="@+id/scrollToRectFromBottom"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/scroll_bottom_button"/>
-
-
- </LinearLayout>
-</ScrollView>
diff --git a/tests/FrameworkTest/res/layout/scrollview_linear_layout.xml b/tests/FrameworkTest/res/layout/scrollview_linear_layout.xml
deleted file mode 100644
index 536d2ed..0000000
--- a/tests/FrameworkTest/res/layout/scrollview_linear_layout.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/scrollView"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:scrollbars="none">
-
- <LinearLayout
- android:id="@+id/layout"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
-
- </LinearLayout>
-
-
-</ScrollView>
diff --git a/tests/FrameworkTest/res/layout/scrollview_with_webviews.xml b/tests/FrameworkTest/res/layout/scrollview_with_webviews.xml
deleted file mode 100644
index 7963475..0000000
--- a/tests/FrameworkTest/res/layout/scrollview_with_webviews.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/scrollView"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:scrollbars="none">
-
- <LinearLayout
- android:id="@+id/layout"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
-
-
- <WebView android:id="@+id/wb1"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"/>
-
- <Button android:id="@+id/button"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"/>
-
- <WebView android:id="@+id/wb2"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"/>
-
- </LinearLayout>
-
-
-</ScrollView>
diff --git a/tests/FrameworkTest/res/layout/table_layout_cell_span.xml b/tests/FrameworkTest/res/layout/table_layout_cell_span.xml
deleted file mode 100644
index 26831e4..0000000
--- a/tests/FrameworkTest/res/layout/table_layout_cell_span.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
-
- <TableRow>
- <TextView android:id="@+id/a"
- android:text="@string/table_layout_a"
- android:background="#FFFF0000"
- android:padding="3dip" />
- <TextView android:id="@+id/b"
- android:text="@string/table_layout_b"
- android:background="#FF00FF00"
- android:padding="3dip" />
- <TextView android:id="@+id/c"
- android:text="@string/table_layout_c"
- android:background="#FF0000FF"
- android:padding="3dip" />
- </TableRow>
-
- <TableRow>
- <TextView android:id="@+id/spanThenCell"
- android:text="@string/table_layout_d"
- android:layout_span="2"
- android:gravity="center_horizontal"
- android:background="#FF0000FF"
- android:padding="3dip" />
- <TextView
- android:text="@string/table_layout_e"
- android:background="#FF00FF00"
- android:padding="3dip" />
- </TableRow>
-
- <TableRow>
- <TextView
- android:text="@string/table_layout_f"
- android:background="#FFFF00FF"
- android:padding="3dip" />
- <TextView
- android:text="@string/table_layout_g"
- android:background="#FF00FF00"
- android:padding="3dip" />
- <TextView
- android:text="@string/table_layout_h"
- android:background="#FFFF0000"
- android:padding="3dip" />
- </TableRow>
-
- <TableRow>
- <TextView
- android:text="@string/table_layout_a"
- android:background="#FF00FF00"
- android:padding="3dip" />
- <TextView android:id="@+id/cellThenSpan"
- android:text="@string/table_layout_b"
- android:layout_span="2"
- android:gravity="center_horizontal"
- android:background="#FF0000FF"
- android:padding="3dip" />
- </TableRow>
-
- <TableRow>
- <TextView android:id="@+id/span"
- android:text="@string/table_layout_g"
- android:layout_span="3"
- android:gravity="center_horizontal"
- android:background="#FFC0C0C0"
- android:padding="3dip" />
- </TableRow>
-</TableLayout>
diff --git a/tests/FrameworkTest/res/layout/table_layout_fixed_width.xml b/tests/FrameworkTest/res/layout/table_layout_fixed_width.xml
deleted file mode 100644
index 91d9128..0000000
--- a/tests/FrameworkTest/res/layout/table_layout_fixed_width.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
-
- <TableRow>
- <View android:id="@+id/fixed_height"
- android:layout_height="48dip"
- android:background="#FF909090" />
- <TextView android:id="@+id/fixed_width"
- android:layout_width="150dip"
- android:text="@string/table_layout_export"
- android:background="#FFFF0000"
- android:padding="3dip" />
- <TextView
- android:text="@string/table_layout_export_shortcut"
- android:background="#FF00FFFF"
- android:gravity="right"
- android:padding="3dip" />
- </TableRow>
-
- <TableRow>
- <View
- android:layout_height="48dip"
- android:background="#FF909090" />
- <TextView android:id="@+id/non_fixed_width"
- android:text="@string/table_layout_export"
- android:background="#FFFF0000"
- android:padding="3dip" />
- <TextView
- android:text="@string/table_layout_export_shortcut"
- android:background="#FF00FFFF"
- android:gravity="right"
- android:padding="3dip" />
- </TableRow>
-
-</TableLayout>
diff --git a/tests/FrameworkTest/res/layout/table_layout_horizontal_gravity.xml b/tests/FrameworkTest/res/layout/table_layout_horizontal_gravity.xml
deleted file mode 100644
index dee81a5..0000000
--- a/tests/FrameworkTest/res/layout/table_layout_horizontal_gravity.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:stretchColumns="1">
-
- <TableRow>
- <TextView android:id="@+id/reference"
- android:layout_column="1"
- android:background="#FF0000FF"
- android:text="@string/table_layout_open"
- android:padding="3dip" />
- <TextView
- android:text="@string/table_layout_open_shortcut"
- android:gravity="right"
- android:padding="3dip" />
- </TableRow>
-
- <TableRow>
- <!-- Horizontally centers the content of the cell -->
- <TextView android:id="@+id/center"
- android:layout_column="1"
- android:text="@string/table_layout_save_as"
- android:background="#FFFF0000"
- android:layout_gravity="center_horizontal"
- android:padding="3dip" />
- <TextView
- android:text="@string/table_layout_save_as_shortcut"
- android:background="#FFFF00FF"
- android:gravity="right"
- android:padding="3dip" />
- </TableRow>
-
- <TableRow>
- <View
- android:layout_height="24dip"
- android:background="#FF909090" />
- <!-- Aligns the content of the cell to the bottom right -->
- <TextView android:id="@+id/bottomRight"
- android:text="@string/table_layout_export"
- android:background="#FFFF0000"
- android:layout_gravity="right|bottom"
- android:padding="3dip" />
- <TextView
- android:text="@string/table_layout_export_shortcut"
- android:background="#FF00FFFF"
- android:gravity="right"
- android:padding="3dip" />
- </TableRow>
-
-
- <TableRow>
- <TextView android:id="@+id/left"
- android:layout_column="1"
- android:background="#FF0000FF"
- android:text="@string/table_layout_open"
- android:padding="3dip" />
- <TextView
- android:text="@string/table_layout_open_shortcut"
- android:gravity="right"
- android:padding="3dip" />
- </TableRow>
-</TableLayout>
diff --git a/tests/FrameworkTest/res/layout/table_layout_vertical_gravity.xml b/tests/FrameworkTest/res/layout/table_layout_vertical_gravity.xml
deleted file mode 100644
index 6a8b784..0000000
--- a/tests/FrameworkTest/res/layout/table_layout_vertical_gravity.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
-
- <TableRow>
- <View android:id="@+id/reference1"
- android:layout_height="96dip"
- android:background="#FF909090" />
- <TextView
- android:background="#FF0000FF"
- android:text="@string/table_layout_open"
- android:padding="3dip" />
- <TextView android:id="@+id/cell_top"
- android:background="#FF00FF00"
- android:layout_gravity="top"
- android:text="@string/table_layout_open_shortcut"
- android:padding="3dip" />
- </TableRow>
-
- <TableRow>
- <View android:id="@+id/reference2"
- android:layout_height="96dip"
- android:background="#FF909090" />
- <TextView
- android:background="#FF0000FF"
- android:text="@string/table_layout_open"
- android:padding="3dip" />
- <TextView android:id="@+id/cell_center"
- android:background="#FF00FF00"
- android:layout_gravity="center_vertical"
- android:text="@string/table_layout_open_shortcut"
- android:padding="3dip" />
- </TableRow>
-
- <TableRow>
- <View android:id="@+id/reference3"
- android:layout_height="96dip"
- android:background="#FF909090" />
- <TextView
- android:background="#FF0000FF"
- android:text="@string/table_layout_open"
- android:padding="3dip" />
- <TextView android:id="@+id/cell_bottom"
- android:background="#FF00FF00"
- android:layout_gravity="bottom"
- android:text="@string/table_layout_open_shortcut"
- android:padding="3dip" />
- </TableRow>
-
-</TableLayout>
diff --git a/tests/FrameworkTest/res/layout/table_layout_weight.xml b/tests/FrameworkTest/res/layout/table_layout_weight.xml
deleted file mode 100644
index 432c04a..0000000
--- a/tests/FrameworkTest/res/layout/table_layout_weight.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2008, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
-
- <TableRow android:id="@+id/row"
- android:weightSum="0.9">
- <View android:id="@+id/cell1"
- android:layout_width="0dip"
- android:layout_weight="0.3"
- android:layout_height="190dip"
- android:background="#FF0000FF" />
- <View android:id="@+id/cell2"
- android:layout_width="0dip"
- android:layout_weight="0.3"
- android:layout_height="190dip"
- android:background="#FFFFFFFF" />
- <View android:id="@+id/cell3"
- android:layout_width="0dip"
- android:layout_weight="0.3"
- android:layout_height="190dip"
- android:background="#FFFF0000" />
- </TableRow>
-
-</TableLayout>
diff --git a/tests/FrameworkTest/res/layout/translucent_background.xml b/tests/FrameworkTest/res/layout/translucent_background.xml
deleted file mode 100644
index 6b6e1cf..0000000
--- a/tests/FrameworkTest/res/layout/translucent_background.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<!-- Demonstrates an activity with a fancy translucent background.
- See corresponding Java code com.android.sdk.app.TranslucentBackground.java. -->
-
-<!-- This screen consists of a single text field that displays some text. -->
-<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/text"
- android:layout_width="fill_parent" android:layout_height="fill_parent"
- android:gravity="center_vertical|center_horizontal"
- android:text="@string/translucent_background"/>
diff --git a/tests/FrameworkTest/res/layout/viewgroupchildren.xml b/tests/FrameworkTest/res/layout/viewgroupchildren.xml
deleted file mode 100644
index a5bb7cb..0000000
--- a/tests/FrameworkTest/res/layout/viewgroupchildren.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<!-- Demonstrates adding/removing views from ViewGroup. See corresponding Java code. -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/group"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/viewstub.xml b/tests/FrameworkTest/res/layout/viewstub.xml
deleted file mode 100644
index 9a6f376..0000000
--- a/tests/FrameworkTest/res/layout/viewstub.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <Button android:id="@+id/vis"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/visibility_1_vis" />
-
- <ViewStub android:id="@+id/viewStub"
- android:layout="@layout/linear_layout_buttons"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <ViewStub android:id="@+id/viewStubWithId"
- android:inflatedId="@+id/stub_inflated"
- android:layout="@layout/linear_layout_buttons"
- android:layout_width="47dip"
- android:layout_height="127dip" />
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/visibility.xml b/tests/FrameworkTest/res/layout/visibility.xml
deleted file mode 100644
index b4f9d8b..0000000
--- a/tests/FrameworkTest/res/layout/visibility.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<!-- Demonstrates changing view visibility. See corresponding Java code. -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <LinearLayout
- android:orientation="vertical"
- android:background="@drawable/box"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
-
- <TextView android:id="@+id/refUp"
- android:background="@drawable/red"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/visibility_1_view_1"/>
-
- <TextView android:id="@+id/victim"
- android:background="@drawable/green"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/visibility_1_view_2"/>
-
- <TextView android:id="@+id/refDown"
- android:background="@drawable/blue"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/visibility_1_view_3"/>
-
- </LinearLayout>
-
- <LinearLayout
- android:orientation="horizontal"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content">
-
- <Button android:id="@+id/vis"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/visibility_1_vis"/>
-
- <Button android:id="@+id/invis"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/visibility_1_invis"/>
-
- <Button android:id="@+id/gone"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/visibility_1_gone"/>
-
- </LinearLayout>
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/weight_sum.xml b/tests/FrameworkTest/res/layout/weight_sum.xml
deleted file mode 100644
index 249dc68..0000000
--- a/tests/FrameworkTest/res/layout/weight_sum.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2008, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<LinearLayout android:id="@+id/container" xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="horizontal"
- android:weightSum="1.0"
- android:gravity="center_horizontal"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <Button android:id="@+id/child"
- android:layout_width="0dip"
- android:layout_weight="0.5"
- android:layout_height="wrap_content"
- android:text="@string/visibility_1_vis"/>
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/with_bitmap_background.xml b/tests/FrameworkTest/res/layout/with_bitmap_background.xml
deleted file mode 100644
index b32d99e..0000000
--- a/tests/FrameworkTest/res/layout/with_bitmap_background.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2008, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<LinearLayout android:id="@+id/container" xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:background="@drawable/bitmap_drawable">
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/layout/zero_sized.xml b/tests/FrameworkTest/res/layout/zero_sized.xml
deleted file mode 100644
index c837bf9..0000000
--- a/tests/FrameworkTest/res/layout/zero_sized.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<!-- Demonstrates changing view visibility. See corresponding Java code. -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <View android:id="@+id/dimension"
- android:background="#ffff0000"
- android:layout_width="42dip"
- android:layout_height="42dip" />
-
- <View android:id="@+id/noWidth"
- android:background="#ff00ff00"
- android:layout_width="0dip"
- android:layout_height="42dip" />
-
- <View android:id="@+id/noHeight"
- android:background="#ff0000ff"
- android:layout_width="42dip"
- android:layout_height="0dip" />
-
- <View android:id="@+id/noDimension"
- android:background="#ffffffff"
- android:layout_width="0dip"
- android:layout_height="0dip" />
-
-</LinearLayout>
diff --git a/tests/FrameworkTest/res/values/arrays.xml b/tests/FrameworkTest/res/values/arrays.xml
deleted file mode 100644
index f76da85..0000000
--- a/tests/FrameworkTest/res/values/arrays.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <string-array name="reminder_minutes_labels">
- <item>5 minutes</item>
- <item>10 minutes</item>
- <item>15 minutes</item>
- <item>20 minutes</item>
- <item>25 minutes</item>
- <item>30 minutes</item>
- <item>45 minutes</item>
- <item>1 hour</item>
- <item>2 hours</item>
- <item>3 hours</item>
- <item>12 hours</item>
- <item>24 hours</item>
- <item>2 days</item>
- <item>1 week</item>
- </string-array>
-</resources>
diff --git a/tests/FrameworkTest/res/values/attrs.xml b/tests/FrameworkTest/res/values/attrs.xml
deleted file mode 100644
index bf59e74..0000000
--- a/tests/FrameworkTest/res/values/attrs.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <declare-styleable name="SelectableRowView">
- <attr name="numRows" format="integer" />
- </declare-styleable>
-</resources>
diff --git a/tests/FrameworkTest/res/values/colors.xml b/tests/FrameworkTest/res/values/colors.xml
deleted file mode 100644
index f881660..0000000
--- a/tests/FrameworkTest/res/values/colors.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/* //device/samples/SampleCode/res/values/colors.xml
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<resources>
- <drawable name="red">#ffff0000</drawable>
- <drawable name="blue">#ff0000ff</drawable>
- <drawable name="green">#ff00ff00</drawable>
- <drawable name="yellow">#ffffff00</drawable>
-</resources>
diff --git a/tests/FrameworkTest/res/values/strings.xml b/tests/FrameworkTest/res/values/strings.xml
deleted file mode 100644
index 05b57e0..0000000
--- a/tests/FrameworkTest/res/values/strings.xml
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string name="app_name">FrameworkTestApplication</string>
-
- <!-- FocusAfterRemoval -->
- <string name="left_top">parent GONE</string>
- <string name="left_bottom">parent INVISIBLE</string>
- <string name="right_top">me GONE</string>
- <string name="right_bottom">me INVISIBLE</string>
-
- <!-- Strings for the 12 key dialer -->
- <string name="keypad_one">1</string>
- <string name="keypad_two">"2\nabc"</string>
- <string name="keypad_three">"3\ndef"</string>
- <string name="keypad_four">"4\nghi"</string>
- <string name="keypad_five">"5\njkl"</string>
- <string name="keypad_six">"6\nmno"</string>
- <string name="keypad_seven">"7\npqrs"</string>
- <string name="keypad_eight">"8\ntuv"</string>
- <string name="keypad_nine">"9\nwxyz"</string>
- <string name="keypad_zero">0</string>
- <string name="keypad_star">*</string>
- <string name="keypad_pound">"#"</string>
-
-
- <!-- HorizontalGravity -->
- <string name="table_layout_open">Open\u2026</string>
- <string name="table_layout_open_shortcut">Ctrl-O</string>
- <string name="table_layout_save_as">Save As\u2026</string>
- <string name="table_layout_save_as_shortcut">Ctrl-Shift-S</string>
- <string name="table_layout_export">Export\u2026</string>
- <string name="table_layout_export_shortcut">Ctrl-E</string>
-
- <!-- CellSpan -->
- <string name="table_layout_a">A</string>
- <string name="table_layout_b">BB</string>
- <string name="table_layout_c">CCCC</string>
- <string name="table_layout_d">D</string>
- <string name="table_layout_e">E</string>
- <string name="table_layout_f">F</string>
- <string name="table_layout_g">G</string>
- <string name="table_layout_h">H</string>
-
- <!-- scroll_to_rectangle -->
- <string name="scroll_top_button">Click to make "hi!" on screen</string>
- <string name="scroll_top_button2">Click to make blob on screen</string>
- <string name="scroll_to_me">hi!</string>
- <string name="scroll_bottom_button2">Click to make blob on screen</string>
- <string name="scroll_bottom_button">Click to make "hi!" on screen</string>
-
- <!-- Visibility -->
- <string name="visibility_1_view_1">View A</string>
- <string name="visibility_1_view_2">View B</string>
- <string name="visibility_1_view_3">View C</string>
- <string name="visibility_1_vis">Visible</string>
- <string name="visibility_1_invis">Invisible</string>
- <string name="visibility_1_gone">Gone</string>
-
- <string name="submit">submit</string>
- <string name="cancel">cancel</string>
- <string name="enter_title">enter title</string>
- <string name="enter_url">enter url</string>
-
- <!-- List with button above -->
- <string name="button_above_list_label">Button above list</string>
-
- <!-- List take focus from side -->
- <string name="side_button_label">X</string>
-
- <!-- Linear Layout show/hide & sizing -->
- <string name="linear_listheight_fixed">Fixed Size</string>
- <string name="linear_listheight_fill">Fill Screen</string>
- <string name="linear_listheight_hide">Hide</string>
-
- <!-- Baseline -->
- <string name="show">Show</string>
- <string name="time">00:00:00</string>
-
- <!-- Drawable -->
- <string name="minimal_text">a</string>
- <string name="change_backgrounds">Change backgrounds</string>
-
- <!-- List with empty view -->
- <string name="empty_list">Empty list</string>
- <string name="menu_add">Add</string>
- <string name="menu_remove">Remove</string>
-
- <!-- Misc. -->
- <string name="add_row_button">Add Row</string>
- <string name="disabled_button">Disabled</string>
- <string name="translucent_background">Example of how you can make an
- activity have a translucent background, compositing over
- whatever is behind it.</string>
- <string name="text">Lorem ipsum datum carat casus belli honorare</string>
-
- <string name="hide">Hide</string>
- <string name="go">Go</string>
-
- <string name="include_label">Included views below:</string>
- <string name="include_button">I was included!</string>
-
- <string name="view">View</string>
-</resources>
diff --git a/tests/FrameworkTest/res/values/styles.xml b/tests/FrameworkTest/res/values/styles.xml
deleted file mode 100644
index 7a90197..0000000
--- a/tests/FrameworkTest/res/values/styles.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<resources>
- <style name="Theme" parent="android:Theme">
- <item name="android:windowAnimationStyle">@style/Animation</item>
- </style>
-
- <style name="Animation">
- <item name="android:activityOpenEnterAnimation">@null</item>
- <item name="android:activityOpenExitAnimation">@null</item>
- <item name="android:activityCloseEnterAnimation">@null</item>
- <item name="android:activityCloseExitAnimation">@null</item>
- <item name="android:taskOpenEnterAnimation">@null</item>
- <item name="android:taskOpenExitAnimation">@null</item>
- <item name="android:taskCloseEnterAnimation">@null</item>
- <item name="android:taskCloseExitAnimation">@null</item>
- <item name="android:taskToFrontEnterAnimation">@null</item>
- <item name="android:taskToFrontExitAnimation">@null</item>
- <item name="android:taskToBackEnterAnimation">@null</item>
- <item name="android:taskToBackExitAnimation">@null</item>
- </style>
-</resources>
diff --git a/tests/FrameworkTest/src/android/widget/AutoCompleteTextViewSimple.java b/tests/FrameworkTest/src/android/widget/AutoCompleteTextViewSimple.java
deleted file mode 100644
index af16cf8..0000000
--- a/tests/FrameworkTest/src/android/widget/AutoCompleteTextViewSimple.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.widget;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.View;
-import android.widget.AdapterView.OnItemClickListener;
-import android.widget.AdapterView.OnItemSelectedListener;
-
-public class AutoCompleteTextViewSimple extends Activity
- implements OnItemClickListener, OnItemSelectedListener {
-
- private final String LOG_TAG = "AutoCompleteTextViewSimple";
-
- private AutoCompleteTextView mTextView;
-
- /** These are cleared by resetItemListeners(), and set by the callback listeners */
- public boolean mItemClickCalled;
- public int mItemClickPosition;
- public boolean mItemSelectedCalled;
- public int mItemSelectedPosition;
- public boolean mNothingSelectedCalled;
-
- @Override
- protected void onCreate(Bundle icicle)
- {
- // Be sure to call the super class.
- super.onCreate(icicle);
-
- // setup layout & views
- setContentView(R.layout.autocompletetextview_simple);
- mTextView = (AutoCompleteTextView) findViewById(R.id.autocompletetextview1);
-
- // configure callbacks used for monitoring
- mTextView.setOnItemClickListener(this);
- mTextView.setOnItemSelectedListener(this);
- resetItemListeners();
-
- setStringAdapter(5, "a");
- }
-
- /**
- * @return The AutoCompleteTextView used in this test activity.
- */
- public AutoCompleteTextView getTextView() {
- return mTextView;
- }
-
- /**
- * Set the autocomplete data to an adapter containing 0..n strings with a consistent prefix.
- */
- public void setStringAdapter(int numSuggestions, String prefix) {
- // generate the string array
- String[] strings = new String[numSuggestions];
- for (int i = 0; i < numSuggestions; ++i) {
- strings[i] = prefix + String.valueOf(i);
- }
-
- // install it with an adapter
- ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
- android.R.layout.simple_dropdown_item_1line, strings);
- mTextView.setAdapter(adapter);
- }
-
- /**
- * For monitoring OnItemClickListener & OnItemSelectedListener
- *
- * An alternative here would be to provide a set of pass-through callbacks
- */
- public void resetItemListeners() {
- mItemClickCalled = false;
- mItemClickPosition = -1;
- mItemSelectedCalled = false;
- mItemSelectedPosition = -1;
- mNothingSelectedCalled = false;
- }
-
- /**
- * Implements OnItemClickListener
- */
- public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
- Log.d(LOG_TAG, "onItemClick() position " + position);
- mItemClickCalled = true;
- mItemClickPosition = position;
- }
-
- /**
- * Implements OnItemSelectedListener
- */
- public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
- Log.d(LOG_TAG, "onItemSelected() position " + position);
- mItemSelectedCalled = true;
- mItemSelectedPosition = position;
- }
-
- /**
- * Implements OnItemSelectedListener
- */
- public void onNothingSelected(AdapterView<?> parent) {
- Log.d(LOG_TAG, "onNothingSelected()");
- mNothingSelectedCalled = true;
- }
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/FrameworkTestApplication.java b/tests/FrameworkTest/src/com/android/frameworktest/FrameworkTestApplication.java
deleted file mode 100644
index e76f387..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/FrameworkTestApplication.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.android.frameworktest;
-
-import android.app.LauncherActivity;
-import android.content.Intent;
-
-/**
- * Holds little snippets of functionality used as code under test for
- * instrumentation tests of framework code.
- */
-public class FrameworkTestApplication extends LauncherActivity {
-
- protected Intent getTargetIntent() {
- // TODO: partition into categories by label like the sample code app
- Intent targetIntent = new Intent(Intent.ACTION_MAIN, null);
- targetIntent.addCategory(Intent.CATEGORY_FRAMEWORK_INSTRUMENTATION_TEST);
- targetIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- return targetIntent;
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/activity/TranslucentFancyActivity.java b/tests/FrameworkTest/src/com/android/frameworktest/activity/TranslucentFancyActivity.java
deleted file mode 100644
index 9492f91..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/activity/TranslucentFancyActivity.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.activity;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.WindowManager;
-
-
-/**
- * <h3>Fancy Translucent Activity</h3>
- *
- * <p>This demonstrates the how to write an activity that is translucent,
- * allowing windows underneath to show through, with a fancy
- * compositing effect.</p>
- *
- * <h4>Demo</h4>
- * App/Activity/Translucent Fancy
- *
- * <h4>Source files</h4>
- * <table class="LinkTable">
- * <tr>
- * <td >src/com/android/samples/app/TranslucentFancyActivity.java</td>
- * <td >The Translucent Fancy Screen implementation</td>
- * </tr>
- * <tr>
- * <td >/res/any/layout/translucent_background.xml</td>
- * <td >Defines contents of the screen</td>
- * </tr>
- * </table>
- */
-public class TranslucentFancyActivity extends Activity
-{
- /**
- * Initialization of the Activity after it is first created. Must at least
- * call {@link android.app.Activity#setContentView setContentView()} to
- * describe what is to be displayed in the screen.
- */
- @Override
- protected void onCreate(Bundle icicle)
- {
- // Be sure to call the super class.
- super.onCreate(icicle);
-
- // Have the system blur any windows behind this one.
- getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
- WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
-
- // See assets/res/any/layout/translucent_background.xml for this
- // view layout definition, which is being set here as
- // the content of our screen.
- setContentView(R.layout.translucent_background);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/drawable/BitmapDrawable.java b/tests/FrameworkTest/src/com/android/frameworktest/drawable/BitmapDrawable.java
deleted file mode 100644
index e88ebf9..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/drawable/BitmapDrawable.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.drawable;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.AbsoluteLayout;
-import android.widget.Button;
-import android.widget.FrameLayout;
-import android.widget.LinearLayout;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-public class BitmapDrawable extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- setContentView(R.layout.with_bitmap_background);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/drawable/DrawableBgMinSize.java b/tests/FrameworkTest/src/com/android/frameworktest/drawable/DrawableBgMinSize.java
deleted file mode 100644
index a382995..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/drawable/DrawableBgMinSize.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.drawable;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.AbsoluteLayout;
-import android.widget.Button;
-import android.widget.FrameLayout;
-import android.widget.LinearLayout;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-/**
- * Views should obey their background {@link Drawable}'s minimum size
- * requirements ({@link Drawable#getMinimumHeight()} and
- * {@link Drawable#getMinimumWidth()}) when possible.
- * <p>
- * This Activity exercises a few Views with background {@link Drawable}s.
- */
-public class DrawableBgMinSize extends Activity implements OnClickListener {
- private boolean mUsingBigBg = false;
- private Drawable mBackgroundDrawable;
- private Drawable mBigBackgroundDrawable;
- private Button mChangeBackgroundsButton;
-
- private TextView mTextView;
- private LinearLayout mLinearLayout;
- private RelativeLayout mRelativeLayout;
- private FrameLayout mFrameLayout;
- private AbsoluteLayout mAbsoluteLayout;
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- setContentView(R.layout.drawable_background_minimum_size);
-
- mBackgroundDrawable = getResources().getDrawable(R.drawable.drawable_background);
- mBigBackgroundDrawable = getResources().getDrawable(R.drawable.big_drawable_background);
-
- mChangeBackgroundsButton = (Button) findViewById(R.id.change_backgrounds);
- mChangeBackgroundsButton.setOnClickListener(this);
-
- mTextView = (TextView) findViewById(R.id.text_view);
- mLinearLayout = (LinearLayout) findViewById(R.id.linear_layout);
- mRelativeLayout = (RelativeLayout) findViewById(R.id.relative_layout);
- mFrameLayout = (FrameLayout) findViewById(R.id.frame_layout);
- mAbsoluteLayout = (AbsoluteLayout) findViewById(R.id.absolute_layout);
-
- changeBackgrounds(mBackgroundDrawable);
- }
-
- private void changeBackgrounds(Drawable newBg) {
- mTextView.setBackgroundDrawable(newBg);
- mLinearLayout.setBackgroundDrawable(newBg);
- mRelativeLayout.setBackgroundDrawable(newBg);
- mFrameLayout.setBackgroundDrawable(newBg);
- mAbsoluteLayout.setBackgroundDrawable(newBg);
- }
-
- public void onClick(View v) {
- if (mUsingBigBg) {
- changeBackgrounds(mBackgroundDrawable);
- } else {
- changeBackgrounds(mBigBackgroundDrawable);
- }
-
- mUsingBigBg = !mUsingBigBg;
- }
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/drawable/MutateDrawable.java b/tests/FrameworkTest/src/com/android/frameworktest/drawable/MutateDrawable.java
deleted file mode 100644
index 2fcaea3..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/drawable/MutateDrawable.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.drawable;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.widget.LinearLayout;
-import android.widget.Button;
-import com.android.frameworktest.R;
-
-public class MutateDrawable extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- LinearLayout layout = new LinearLayout(this);
-
- Button ok = new Button(this);
- ok.setId(R.id.a);
- ok.setBackgroundDrawable(getResources().getDrawable(
- R.drawable.sym_now_playing_skip_forward_1));
-
- Button cancel = new Button(this);
- cancel.setId(R.id.b);
- cancel.setBackgroundDrawable(getResources().getDrawable(
- R.drawable.sym_now_playing_skip_forward_1));
-
- layout.addView(ok);
- layout.addView(cancel);
-
- ok.getBackground().mutate().setAlpha(127);
-
- setContentView(layout);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/expandablelistview/ExpandableListSimple.java b/tests/FrameworkTest/src/com/android/frameworktest/expandablelistview/ExpandableListSimple.java
deleted file mode 100644
index cee1d4d..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/expandablelistview/ExpandableListSimple.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.expandablelistview;
-
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.MenuItem.OnMenuItemClickListener;
-import android.widget.BaseExpandableListAdapter;
-
-import com.android.frameworktest.util.ExpandableListScenario;
-
-public class ExpandableListSimple extends ExpandableListScenario {
- private static final int[] NUM_CHILDREN = {4, 3, 2, 1, 0};
-
- @Override
- protected void init(ExpandableParams params) {
- params.setNumChildren(NUM_CHILDREN)
- .setItemScreenSizeFactor(0.14);
- }
-
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
-
- menu.add("Add item").setOnMenuItemClickListener(new OnMenuItemClickListener() {
- public boolean onMenuItemClick(MenuItem item) {
- mGroups.add(0, new MyGroup(2));
- ((BaseExpandableListAdapter) mAdapter).notifyDataSetChanged();
- return true;
- }
- });
-
- return true;
- }
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/expandablelistview/ExpandableListWithHeaders.java b/tests/FrameworkTest/src/com/android/frameworktest/expandablelistview/ExpandableListWithHeaders.java
deleted file mode 100644
index 0155f09..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/expandablelistview/ExpandableListWithHeaders.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.expandablelistview;
-
-import com.android.frameworktest.util.ExpandableListScenario;
-
-import android.os.Bundle;
-import android.widget.Button;
-import android.widget.ExpandableListView;
-import android.widget.ListAdapter;
-import android.widget.ListView;
-
-public class ExpandableListWithHeaders extends ExpandableListScenario {
- private static final int[] sNumChildren = {1, 4, 3, 2, 6};
- private static final int sNumOfHeadersAndFooters = 12;
-
- @Override
- protected void init(ExpandableParams params) {
- params.setStackFromBottom(false)
- .setStartingSelectionPosition(-1)
- .setNumChildren(sNumChildren)
- .setItemScreenSizeFactor(0.14)
- .setConnectAdapter(false);
- }
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- final ExpandableListView expandableListView = getExpandableListView();
- expandableListView.setItemsCanFocus(true);
-
- for (int i = 0; i < sNumOfHeadersAndFooters; i++) {
- Button header = new Button(this);
- header.setText("Header View");
- expandableListView.addHeaderView(header);
- }
-
- for (int i = 0; i < sNumOfHeadersAndFooters; i++) {
- Button footer = new Button(this);
- footer.setText("Footer View");
- expandableListView.addFooterView(footer);
- }
-
- // Set adapter here AFTER we set header and footer views
- setAdapter(expandableListView);
- }
-
- /**
- * @return The number of headers (and the same number of footers)
- */
- public int getNumOfHeadersAndFooters() {
- return sNumOfHeadersAndFooters;
- }
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/expandablelistview/InflatedExpandableListView.java b/tests/FrameworkTest/src/com/android/frameworktest/expandablelistview/InflatedExpandableListView.java
deleted file mode 100644
index f1089a1..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/expandablelistview/InflatedExpandableListView.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.expandablelistview;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.Gravity;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AbsListView;
-import android.widget.BaseExpandableListAdapter;
-import android.widget.ExpandableListView;
-import android.widget.TextView;
-
-public class InflatedExpandableListView extends Activity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- setContentView(R.layout.inflated_expandablelistview);
-
- ExpandableListView elv = (ExpandableListView) findViewById(R.id.elv);
- elv.setAdapter(new MyExpandableListAdapter());
- }
-
- public class MyExpandableListAdapter extends BaseExpandableListAdapter {
- // Sample data set. children[i] contains the children (String[]) for groups[i].
- private String[] groups = { "People Names", "Dog Names", "Cat Names", "Fish Names" };
- private String[][] children = {
- { "Arnold", "Barry", "Chuck", "David" },
- { "Ace", "Bandit", "Cha-Cha", "Deuce" },
- { "Fluffy", "Snuggles" },
- { "Goldy", "Bubbles" }
- };
-
- public Object getChild(int groupPosition, int childPosition) {
- return children[groupPosition][childPosition];
- }
-
- public long getChildId(int groupPosition, int childPosition) {
- return childPosition;
- }
-
- public int getChildrenCount(int groupPosition) {
- return children[groupPosition].length;
- }
-
- public TextView getGenericView() {
- // Layout parameters for the ExpandableListView
- AbsListView.LayoutParams lp = new AbsListView.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT, 64);
-
- TextView textView = new TextView(InflatedExpandableListView.this);
- textView.setLayoutParams(lp);
- // Center the text vertically
- textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
- // Set the text starting position
- textView.setPadding(36, 0, 0, 0);
- return textView;
- }
-
- public View getChildView(int groupPosition, int childPosition, boolean isLastChild,
- View convertView, ViewGroup parent) {
- TextView textView = getGenericView();
- textView.setText(getChild(groupPosition, childPosition).toString());
- return textView;
- }
-
- public Object getGroup(int groupPosition) {
- return groups[groupPosition];
- }
-
- public int getGroupCount() {
- return groups.length;
- }
-
- public long getGroupId(int groupPosition) {
- return groupPosition;
- }
-
- public View getGroupView(int groupPosition, boolean isExpanded, View convertView,
- ViewGroup parent) {
- TextView textView = getGenericView();
- textView.setText(getGroup(groupPosition).toString());
- return textView;
- }
-
- public boolean isChildSelectable(int groupPosition, int childPosition) {
- return true;
- }
-
- public boolean hasStableIds() {
- return true;
- }
-
- }
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/focus/AdjacentVerticalRectLists.java b/tests/FrameworkTest/src/com/android/frameworktest/focus/AdjacentVerticalRectLists.java
deleted file mode 100644
index c4e2705..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/focus/AdjacentVerticalRectLists.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import com.android.frameworktest.util.InternalSelectionView;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.widget.LinearLayout;
-import android.view.ViewGroup;
-
-/**
- * {@link android.view.FocusFinder#findNextFocus(android.view.ViewGroup, android.view.View, int)}
- * and
- * {@link android.view.View#requestFocus(int, android.graphics.Rect)}
- * work together to give a newly focused item a hint about the most interesting
- * rectangle of the previously focused view. The view taking focus can use this
- * to set an internal selection more appropriate using this rect.
- *
- * This Activity excercises that behavior using three adjacent {@link com.android.frameworktest.util.InternalSelectionView}
- * that report interesting rects when giving up focus, and use interesting rects
- * when taking focus to best select the internal row to show as selected.
- */
-public class AdjacentVerticalRectLists extends Activity {
-
- private LinearLayout mLayout;
- private InternalSelectionView mLeftColumn;
- private InternalSelectionView mMiddleColumn;
- private InternalSelectionView mRightColumn;
-
-
- public LinearLayout getLayout() {
- return mLayout;
- }
-
- public InternalSelectionView getLeftColumn() {
- return mLeftColumn;
- }
-
- public InternalSelectionView getMiddleColumn() {
- return mMiddleColumn;
- }
-
- public InternalSelectionView getRightColumn() {
- return mRightColumn;
- }
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- mLayout = new LinearLayout(this);
- mLayout.setOrientation(LinearLayout.HORIZONTAL);
- mLayout.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT));
-
- LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0,
- ViewGroup.LayoutParams.FILL_PARENT, 1);
-
- mLeftColumn = new InternalSelectionView(this, 5, "left column");
- mLeftColumn.setLayoutParams(params);
- mLeftColumn.setPadding(10, 10, 10, 10);
- mLayout.addView(mLeftColumn);
-
- mMiddleColumn = new InternalSelectionView(this, 5, "middle column");
- mMiddleColumn.setLayoutParams(params);
- mMiddleColumn.setPadding(10, 10, 10, 10);
- mLayout.addView(mMiddleColumn);
-
- mRightColumn = new InternalSelectionView(this, 5, "right column");
- mRightColumn.setLayoutParams(params);
- mRightColumn.setPadding(10, 10, 10, 10);
- mLayout.addView(mRightColumn);
-
- setContentView(mLayout);
- }
-
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/focus/DescendantFocusability.java b/tests/FrameworkTest/src/com/android/frameworktest/focus/DescendantFocusability.java
deleted file mode 100644
index f0c1980..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/focus/DescendantFocusability.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.ViewGroup;
-import android.widget.Button;
-
-public class DescendantFocusability extends Activity {
-
- public ViewGroup beforeDescendants;
- public Button beforeDescendantsChild;
-
- public ViewGroup afterDescendants;
- public Button afterDescendantsChild;
-
- public ViewGroup blocksDescendants;
- public Button blocksDescendantsChild;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- setContentView(R.layout.descendant_focusability);
-
- beforeDescendants = (ViewGroup) findViewById(R.id.beforeDescendants);
- beforeDescendantsChild = (Button) beforeDescendants.getChildAt(0);
-
- afterDescendants = (ViewGroup) findViewById(R.id.afterDescendants);
- afterDescendantsChild = (Button) afterDescendants.getChildAt(0);
-
- blocksDescendants = (ViewGroup) findViewById(R.id.blocksDescendants);
- blocksDescendantsChild = (Button) blocksDescendants.getChildAt(0);
- }
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/focus/FocusAfterRemoval.java b/tests/FrameworkTest/src/com/android/frameworktest/focus/FocusAfterRemoval.java
deleted file mode 100644
index 6c5f1c4..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/focus/FocusAfterRemoval.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.widget.LinearLayout;
-import android.widget.Button;
-import android.view.View;
-
-/**
- * Exercises cases where elements of the UI are removed (and
- * focus should go somewhere).
- */
-public class FocusAfterRemoval extends Activity {
-
-
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.focus_after_removal);
-
- final LinearLayout left = (LinearLayout) findViewById(R.id.leftLayout);
-
- // top left makes parent layout GONE
- Button topLeftButton = (Button) findViewById(R.id.topLeftButton);
- topLeftButton.setOnClickListener(new View.OnClickListener() {
-
- public void onClick(View v) {
- left.setVisibility(View.GONE);
- }
- });
-
- // bottom left makes parent layout INVISIBLE
- // top left makes parent layout GONE
- Button bottomLeftButton = (Button) findViewById(R.id.bottomLeftButton);
- bottomLeftButton.setOnClickListener(new View.OnClickListener() {
-
- public void onClick(View v) {
- left.setVisibility(View.INVISIBLE);
- }
- });
-
- // top right button makes top right button GONE
- final Button topRightButton = (Button) findViewById(R.id.topRightButton);
- topRightButton.setOnClickListener(new View.OnClickListener() {
-
- public void onClick(View v) {
- topRightButton.setVisibility(View.GONE);
- }
- });
-
- // bottom right button makes bottom right button INVISIBLE
- final Button bottomRightButton = (Button) findViewById(R.id.bottomRightButton);
- bottomRightButton.setOnClickListener(new View.OnClickListener() {
-
- public void onClick(View v) {
- bottomRightButton.setVisibility(View.INVISIBLE);
- }
- });
-
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/focus/GoneParentFocusedChild.java b/tests/FrameworkTest/src/com/android/frameworktest/focus/GoneParentFocusedChild.java
deleted file mode 100644
index 91bd7b4..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/focus/GoneParentFocusedChild.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.KeyEvent;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.LinearLayout;
-
-/**
- * An activity that helps test the scenario where a parent is
- * GONE and one of its children has focus; the activity should get
- * the key event. see bug 945150.
- */
-public class GoneParentFocusedChild extends Activity {
- private LinearLayout mGoneGroup;
- private Button mButton;
-
- private boolean mUnhandledKeyEvent = false;
- private LinearLayout mLayout;
-
- public boolean isUnhandledKeyEvent() {
- return mUnhandledKeyEvent;
- }
-
- public LinearLayout getLayout() {
- return mLayout;
- }
-
- public LinearLayout getGoneGroup() {
- return mGoneGroup;
- }
-
- public Button getButton() {
- return mButton;
- }
-
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- mLayout = new LinearLayout(this);
- mLayout.setOrientation(LinearLayout.HORIZONTAL);
- mLayout.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT));
-
-
- mGoneGroup = new LinearLayout(this);
- mGoneGroup.setOrientation(LinearLayout.HORIZONTAL);
- mGoneGroup.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT));
-
- mButton = new Button(this);
- mButton.setLayoutParams(new LinearLayout.LayoutParams(
- ViewGroup.LayoutParams.WRAP_CONTENT,
- ViewGroup.LayoutParams.WRAP_CONTENT));
-
-
- mGoneGroup.addView(mButton);
- setContentView(mLayout);
-
- mGoneGroup.setVisibility(View.GONE);
- mButton.requestFocus();
- }
-
- public boolean onKeyUp(int keyCode, KeyEvent event) {
- mUnhandledKeyEvent = true;
- return true;
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/focus/HorizontalFocusSearch.java b/tests/FrameworkTest/src/com/android/frameworktest/focus/HorizontalFocusSearch.java
deleted file mode 100644
index 01a9821..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/focus/HorizontalFocusSearch.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import android.app.Activity;
-import android.widget.LinearLayout;
-import android.widget.Button;
-import android.widget.TextView;
-import android.os.Bundle;
-import android.view.ViewGroup;
-import android.content.Context;
-
-public class HorizontalFocusSearch extends Activity {
-
- private LinearLayout mLayout;
-
- private Button mLeftTall;
- private Button mMidShort1Top;
- private Button mMidShort2Bottom;
- private Button mRightTall;
-
-
- public LinearLayout getLayout() {
- return mLayout;
- }
-
- public Button getLeftTall() {
- return mLeftTall;
- }
-
- public Button getMidShort1Top() {
- return mMidShort1Top;
- }
-
- public Button getMidShort2Bottom() {
- return mMidShort2Bottom;
- }
-
- public Button getRightTall() {
- return mRightTall;
- }
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- mLayout = new LinearLayout(this);
- mLayout.setOrientation(LinearLayout.HORIZONTAL);
- mLayout.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT));
-
- mLeftTall = makeTall("left tall");
- mLayout.addView(mLeftTall);
-
- mMidShort1Top = addShort(mLayout, "mid(1) top", false);
- mMidShort2Bottom = addShort(mLayout, "mid(2) bottom", true);
-
- mRightTall = makeTall("right tall");
- mLayout.addView(mRightTall);
-
- setContentView(mLayout);
- }
-
- // just to get toString non-sucky
- private static class MyButton extends Button {
-
- public MyButton(Context context) {
- super(context);
- }
-
-
- @Override
- public String toString() {
- return getText().toString();
- }
- }
-
- private Button makeTall(String label) {
- Button button = new MyButton(this);
- button.setText(label);
- button.setLayoutParams(new LinearLayout.LayoutParams(
- ViewGroup.LayoutParams.WRAP_CONTENT,
- ViewGroup.LayoutParams.FILL_PARENT));
- return button;
- }
-
- private Button addShort(LinearLayout root, String label, boolean atBottom) {
- Button button = new MyButton(this);
- button.setText(label);
- button.setLayoutParams(new LinearLayout.LayoutParams(
- ViewGroup.LayoutParams.WRAP_CONTENT,
- 0, // height
- 490));
-
- TextView filler = new TextView(this);
- filler.setText("filler");
- filler.setLayoutParams(new LinearLayout.LayoutParams(
- ViewGroup.LayoutParams.WRAP_CONTENT,
- 0, // height
- 510));
-
- LinearLayout ll = new LinearLayout(this);
- ll.setOrientation(LinearLayout.VERTICAL);
- ll.setLayoutParams(new LinearLayout.LayoutParams(
- ViewGroup.LayoutParams.WRAP_CONTENT,
- ViewGroup.LayoutParams.FILL_PARENT));
-
- if (atBottom) {
- ll.addView(filler);
- ll.addView(button);
- root.addView(ll);
- } else {
- ll.addView(button);
- ll.addView(filler);
- root.addView(ll);
- }
- return button;
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/focus/LinearLayoutGrid.java b/tests/FrameworkTest/src/com/android/frameworktest/focus/LinearLayoutGrid.java
deleted file mode 100644
index 9aec0d5..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/focus/LinearLayoutGrid.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.LinearLayout;
-import com.android.frameworktest.R;
-
-public class LinearLayoutGrid extends Activity {
-
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.linear_layout_grid);
- }
-
- public ViewGroup getRootView() {
- return (ViewGroup) findViewById(R.id.layout);
- }
-
- public Button getButtonAt(int column, int row) {
- if (row < 0 || row > 2) {
- throw new IllegalArgumentException("row out of range");
- }
- if (column < 0 || column > 2) {
- throw new IllegalArgumentException("column out of range");
- }
- return (Button) getColumn(column).getChildAt(row);
- }
-
-
-
- private LinearLayout getColumn(int column) {
- switch (column) {
- case 0:
- return (LinearLayout) findViewById(R.id.column1);
- case 1:
- return (LinearLayout) findViewById(R.id.column2);
- case 2:
- return (LinearLayout) findViewById(R.id.column3);
- default:
- throw new IllegalArgumentException("column out of range");
- }
- }
-
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/focus/ListOfButtons.java b/tests/FrameworkTest/src/com/android/frameworktest/focus/ListOfButtons.java
deleted file mode 100644
index 0abcebb..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/focus/ListOfButtons.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import com.android.frameworktest.R;
-
-import android.app.ListActivity;
-import android.content.Context;
-import android.os.Bundle;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.Button;
-
-/**
- * A layout with a ListView containing buttons.
- */
-public class ListOfButtons extends ListActivity {
-
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- setContentView(R.layout.list_with_button_above);
- getListView().setItemsCanFocus(true);
- setListAdapter(new MyAdapter(this, mLabels));
- }
-
- String[] mLabels = {
- "Alabama", "Alaska", "Arizona", "apple sauce!",
- "California", "Colorado", "Connecticut", "Delaware"
- };
-
-
- public String[] getLabels() {
- return mLabels;
- }
-
- public static class MyAdapter extends ArrayAdapter<String> {
-
-
- public MyAdapter(Context context, String[] labels) {
- super(context, 0, labels);
- }
-
-
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- String label = getItem(position);
-
- Button button = new Button(parent.getContext());
- button.setText(label);
- return button;
- }
-
- @Override
- public boolean areAllItemsEnabled() {
- return false;
- }
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/focus/ListOfEditTexts.java b/tests/FrameworkTest/src/com/android/frameworktest/focus/ListOfEditTexts.java
deleted file mode 100644
index f59e2b7..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/focus/ListOfEditTexts.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import android.app.Activity;
-import android.content.Context;
-import android.os.Bundle;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.*;
-import com.google.android.collect.Lists;
-
-import java.util.List;
-
-public class ListOfEditTexts extends Activity {
-
- private int mLinesPerEditText = 12;
-
- private ListView mListView;
- private LinearLayout mLinearLayout;
-
- public ListView getListView() {
- return mListView;
- }
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- // create linear layout
- mLinearLayout = new LinearLayout(this);
- mLinearLayout.setOrientation(LinearLayout.VERTICAL);
- mLinearLayout.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT));
-
- // add a button above
- Button buttonAbove = new Button(this);
- buttonAbove.setLayoutParams(
- new LinearLayout.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.WRAP_CONTENT));
- buttonAbove.setText("button above list");
- mLinearLayout.addView(buttonAbove);
-
- // add a list view to it
- mListView = new ListView(this);
- mListView.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT));
- mListView.setDrawSelectorOnTop(false);
- mListView.setItemsCanFocus(true);
- mListView.setLayoutParams((new LinearLayout.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- 0,
- 1f)));
-
- List<String> bodies = Lists.newArrayList(
- getBody("zero hello, my name is android"),
- getBody("one i'm a paranoid android"),
- getBody("two i robot. huh huh."),
- getBody("three not the g-phone!"));
-
- mListView.setAdapter(new MyAdapter(this, bodies));
- mLinearLayout.addView(mListView);
-
- // add button below
- Button buttonBelow = new Button(this);
- buttonBelow.setLayoutParams(
- new LinearLayout.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.WRAP_CONTENT));
- buttonBelow.setText("button below list");
- mLinearLayout.addView(buttonBelow);
-
- setContentView(mLinearLayout);
- }
-
- String getBody(String line) {
- StringBuilder sb = new StringBuilder((line.length() + 5) * mLinesPerEditText);
- for (int i = 0; i < mLinesPerEditText; i++) {
- sb.append(i + 1).append(' ').append(line);
- if (i < mLinesPerEditText - 1) {
- sb.append('\n'); // all but last line
- }
- }
- return sb.toString();
- }
-
-
- private static class MyAdapter extends ArrayAdapter<String> {
-
- public MyAdapter(Context context, List<String> bodies) {
- super(context, 0, bodies);
- }
-
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- String body = getItem(position);
-
- if (convertView != null) {
- ((EditText) convertView).setText(body);
- return convertView;
- }
-
- EditText editText = new EditText(getContext());
- editText.setText(body);
- return editText;
- }
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/focus/ListOfInternalSelectionViews.java b/tests/FrameworkTest/src/com/android/frameworktest/focus/ListOfInternalSelectionViews.java
deleted file mode 100644
index 4bbca74..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/focus/ListOfInternalSelectionViews.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-import android.widget.ListView;
-import com.android.frameworktest.util.InternalSelectionView;
-
-/**
- * A list of {@link InternalSelectionView}s paramatarized by the number of items,
- * how many rows in each item, and how tall each item is.
- */
-public class ListOfInternalSelectionViews extends Activity {
-
- private ListView mListView;
-
-
- // keys for initializing via Intent params
- public static final String BUNDLE_PARAM_NUM_ITEMS = "com.google.test.numItems";
- public static final String BUNDLE_PARAM_NUM_ROWS_PER_ITEM = "com.google.test.numRowsPerItem";
- public static final String BUNDLE_PARAM_ITEM_SCREEN_HEIGHT_FACTOR = "com.google.test.itemScreenHeightFactor";
-
- private int mScreenHeight;
-
- private int mNumItems = 5;
- private int mNumRowsPerItem = 4;
- private double mItemScreenSizeFactor = 5 / 4;
-
- public ListView getListView() {
- return mListView;
- }
-
- /**
- * Each item is screen height * this factor tall.
- */
- public double getItemScreenSizeFactor() {
- return mItemScreenSizeFactor;
- }
-
- /**
- * @return The number of rows per item.
- */
- public int getNumRowsPerItem() {
- return mNumRowsPerItem;
- }
-
- /**
- * @return The number of items in the list.
- */
- public int getNumItems() {
- return mNumItems;
- }
-
- /**
- * @param position The position
- * @return The label (closest thing to a value) for the item at position
- */
- public String getLabelForPosition(int position) {
- return "position " + position;
- }
-
- /**
- * Get the currently selected view.
- */
- public InternalSelectionView getSelectedView() {
- return (InternalSelectionView) getListView().getSelectedView();
- }
-
- /**
- * Get the screen height.
- */
- public int getScreenHeight() {
- return mScreenHeight;
- }
-
- /**
- * Initialize a bundle suitable for sending as the params of the intent that
- * launches this activity.
- * @param numItems The number of items in the list.
- * @param numRowsPerItem The number of rows per item.
- * @param itemScreenHeightFactor see {@link #getScreenHeight()}
- * @return the intialized bundle.
- */
- public static Bundle getBundleFor(int numItems, int numRowsPerItem, double itemScreenHeightFactor) {
- Bundle bundle = new Bundle();
- bundle.putInt(BUNDLE_PARAM_NUM_ITEMS, numItems);
- bundle.putInt(BUNDLE_PARAM_NUM_ROWS_PER_ITEM, numRowsPerItem);
- bundle.putDouble(BUNDLE_PARAM_ITEM_SCREEN_HEIGHT_FACTOR, itemScreenHeightFactor);
- return bundle;
- }
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- mScreenHeight = getWindowManager().getDefaultDisplay().getHeight();
-
- Bundle extras = getIntent().getExtras();
- if (extras != null) {
- initFromBundle(extras);
- }
-
- mListView = new ListView(this);
- mListView.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT));
- mListView.setDrawSelectorOnTop(false);
- mListView.setAdapter(new MyAdapter());
- mListView.setItemsCanFocus(true);
- setContentView(mListView);
- }
-
- private void initFromBundle(Bundle icicle) {
-
- int numItems = icicle.getInt(BUNDLE_PARAM_NUM_ITEMS, -1);
- if (numItems != -1) {
- mNumItems = numItems;
- }
- int numRowsPerItem = icicle.getInt(BUNDLE_PARAM_NUM_ROWS_PER_ITEM, -1);
- if (numRowsPerItem != -1) {
- mNumRowsPerItem = numRowsPerItem;
- }
- double screenHeightFactor = icicle.getDouble(BUNDLE_PARAM_ITEM_SCREEN_HEIGHT_FACTOR, -1.0);
- if (screenHeightFactor > 0) {
- mItemScreenSizeFactor = screenHeightFactor;
- }
- }
-
- private class MyAdapter extends BaseAdapter {
-
- public int getCount() {
- return mNumItems;
- }
-
- public Object getItem(int position) {
- return getLabelForPosition(position);
- }
-
- public long getItemId(int position) {
- return position;
- }
-
- public View getView(int position, View convertView, ViewGroup parent) {
- InternalSelectionView item =
- new InternalSelectionView(
- parent.getContext(),
- mNumRowsPerItem,
- getLabelForPosition(position));
- item.setDesiredHeight((int) (mScreenHeight * mItemScreenSizeFactor));
- return item;
- }
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/focus/ListWithFooterViewAndNewLabels.java b/tests/FrameworkTest/src/com/android/frameworktest/focus/ListWithFooterViewAndNewLabels.java
deleted file mode 100644
index 730f9aa..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/focus/ListWithFooterViewAndNewLabels.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import android.app.ListActivity;
-import android.content.Context;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AbsListView;
-import android.widget.BaseAdapter;
-import android.widget.Button;
-import android.widget.TextView;
-
-import com.google.android.collect.Lists;
-import com.android.frameworktest.R;
-
-import java.util.List;
-
-public class ListWithFooterViewAndNewLabels extends ListActivity {
-
- private MyAdapter mMyAdapter;
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- setContentView(R.layout.list_with_button_above);
-
- Button footerButton = new Button(this);
- footerButton.setText("hi");
- footerButton.setLayoutParams(
- new AbsListView.LayoutParams(
- ViewGroup.LayoutParams.WRAP_CONTENT,
- ViewGroup.LayoutParams.WRAP_CONTENT));
- getListView().addFooterView(footerButton);
-
- mMyAdapter = new MyAdapter(this);
- setListAdapter(mMyAdapter);
-
- // not in list
- Button topButton = (Button) findViewById(R.id.button);
- topButton.setText("click to add new item");
- topButton.setOnClickListener(new View.OnClickListener() {
-
- public void onClick(View v) {
- mMyAdapter.addLabel("yo");
- }
- });
-
- mMyAdapter.addLabel("first");
- }
-
- /**
- * An adapter that can take new string labels.
- */
- static class MyAdapter extends BaseAdapter {
-
- private final Context mContext;
- private List<String> mLabels = Lists.newArrayList();
-
- public MyAdapter(Context context) {
- mContext = context;
- }
-
- public int getCount() {
- return mLabels.size();
- }
-
- public Object getItem(int position) {
- return mLabels.get(position);
- }
-
- public long getItemId(int position) {
- return position;
- }
-
- public View getView(int position, View convertView, ViewGroup parent) {
- String label = mLabels.get(position);
-
- LayoutInflater inflater = (LayoutInflater)
- mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-
- TextView tv = (TextView) inflater.inflate(
- android.R.layout.simple_list_item_1,
- null);
- tv.setText(label);
- return tv;
- }
-
- public void addLabel(String s) {
- mLabels.add(s + mLabels.size());
- notifyDataSetChanged();
- }
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/focus/ListWithMailMessages.java b/tests/FrameworkTest/src/com/android/frameworktest/focus/ListWithMailMessages.java
deleted file mode 100644
index 27c642a..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/focus/ListWithMailMessages.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import com.android.frameworktest.R;
-import com.google.android.collect.Lists;
-
-import android.app.ListActivity;
-import android.os.Bundle;
-import android.widget.ArrayAdapter;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-import android.content.Context;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.LayoutInflater;
-import android.webkit.WebView;
-
-import java.util.List;
-
-public class ListWithMailMessages extends ListActivity {
-
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.list_with_button_above);
-
- List<MailMessage> messages = Lists.newArrayList();
- messages.add(new MailMessage("hello!", "<p>this is a test "
- + "message, with a bunch of text and stuff.</p>", true));
-
-// String android = "android";
- String android = "<a href=\"www.android.com\">android</a>";
-
- String sentance = "all work and no play makes "
- + android + " a dull... robot!";
- StringBuffer longBody = new StringBuffer().append("<ol>\n");
- for (int i = 0; i < 12; i++) {
- longBody.append("<li>").append(sentance).append("</li>");
- }
- longBody.append("</ol>");
-
- messages.add(new MailMessage("hello2!", longBody.toString(), true));
- messages.add(new MailMessage("phone number?", "<p>hey man, what's ur "
- + "contact info? i need to mail you this photo of my two"
- + " cats, they've gotten soooo fat!</p>", true));
-
- setListAdapter(new MyAdapter(this, R.layout.mail_message, messages));
- getListView().setItemsCanFocus(true);
- }
-
-
- /**
- * POJO mail message.
- */
- static class MailMessage {
- private String mSubject;
- private String mBody;
- private boolean mFocusable;
-
-
- public MailMessage(String subject, String body) {
- this(subject, body, false);
- }
-
-
- public MailMessage(String subject, String body, boolean focusable) {
- mSubject = subject;
- mBody = body;
- mFocusable = focusable;
- }
-
- public String getSubject() {
- return mSubject;
- }
-
- public void setSubject(String subject) {
- this.mSubject = subject;
- }
-
- public String getBody() {
- return mBody;
- }
-
- public void setBody(String body) {
- this.mBody = body;
- }
-
-
- public boolean isFocusable() {
- return mFocusable;
- }
-
- public void setFocusable(boolean focusable) {
- mFocusable = focusable;
- }
- }
-
-
- public static class MyAdapter extends ArrayAdapter<MailMessage> {
-
- public MyAdapter(Context context, int resource,
- List<MailMessage> objects) {
- super(context, resource, objects);
- }
-
- final String mimeType = "text/html";
- final String encoding = "utf-8";
-
-
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- MailMessage message = getItem(position);
-
- LayoutInflater inflater = (LayoutInflater)
- getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-
- LinearLayout messageUi = (LinearLayout) inflater
- .inflate(R.layout.mail_message, null);
-
- TextView subject = (TextView) messageUi.findViewById(R.id.subject);
- subject.setText(message.getSubject());
-
- WebView body = (WebView) messageUi.findViewById(R.id.body);
- body.loadData(message.getBody(), mimeType, encoding);
-// body.setText(message.getBody());
- body.setFocusable(message.isFocusable());
-
- return messageUi;
- }
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/focus/RequestFocus.java b/tests/FrameworkTest/src/com/android/frameworktest/focus/RequestFocus.java
deleted file mode 100644
index 803815b..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/focus/RequestFocus.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.os.Handler;
-import android.widget.LinearLayout;
-import android.widget.Button;
-import android.view.View;
-
-/**
- * Exercises cases where elements of the UI are requestFocus()ed.
- */
-public class RequestFocus extends Activity {
- protected final Handler mHandler = new Handler();
-
- @Override protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.focus_after_removal);
-
- // bottom right button starts with the focus.
- final Button bottomRightButton = (Button) findViewById(R.id.bottomRightButton);
- bottomRightButton.requestFocus();
- bottomRightButton.setText("I should have focus");
- }
-
- public Handler getHandler() {
- return mHandler;
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/focus/VerticalFocusSearch.java b/tests/FrameworkTest/src/com/android/frameworktest/focus/VerticalFocusSearch.java
deleted file mode 100644
index d1b83a3..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/focus/VerticalFocusSearch.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.widget.LinearLayout;
-import android.widget.Button;
-import android.widget.TextView;
-import android.view.Gravity;
-import android.view.ViewGroup;
-import android.content.Context;
-
-/**
- * Holds a few buttons of various sizes and horizontal placements in a
- * vertical layout to excercise some core focus searching.
- */
-public class VerticalFocusSearch extends Activity {
-
- private LinearLayout mLayout;
-
- private Button mTopWide;
- private Button mMidSkinny1Left;
- private Button mBottomWide;
-
- private Button mMidSkinny2Right;
-
-
- public LinearLayout getLayout() {
- return mLayout;
- }
-
- public Button getTopWide() {
- return mTopWide;
- }
-
- public Button getMidSkinny1Left() {
- return mMidSkinny1Left;
- }
-
- public Button getMidSkinny2Right() {
- return mMidSkinny2Right;
- }
-
- public Button getBottomWide() {
- return mBottomWide;
- }
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- mLayout = new LinearLayout(this);
- mLayout.setOrientation(LinearLayout.VERTICAL);
- mLayout.setHorizontalGravity(Gravity.LEFT);
- mLayout.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT));
-
- mTopWide = makeWide("top wide");
- mLayout.addView(mTopWide);
-
- mMidSkinny1Left = addSkinny(mLayout, "mid skinny 1(L)", false);
-
- mMidSkinny2Right = addSkinny(mLayout, "mid skinny 2(R)", true);
-
- mBottomWide = makeWide("bottom wide");
- mLayout.addView(mBottomWide);
-
- setContentView(mLayout);
- }
-
- // just to get toString non-sucky
- private static class MyButton extends Button {
-
- public MyButton(Context context) {
- super(context);
- }
-
-
- @Override
- public String toString() {
- return getText().toString();
- }
- }
-
- private Button makeWide(String label) {
- Button button = new MyButton(this);
- button.setText(label);
- button.setLayoutParams(new LinearLayout.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.WRAP_CONTENT));
- return button;
- }
-
- /**
- * Add a skinny button that takes up just less than half of the screen
- * horizontally.
- * @param root The layout to add the button to.
- * @param label The label of the button.
- * @param atRight Which side to put the button on.
- * @return The newly created button.
- */
- private Button addSkinny(LinearLayout root, String label, boolean atRight) {
- Button button = new MyButton(this);
- button.setText(label);
- button.setLayoutParams(new LinearLayout.LayoutParams(
- 0, // width
- ViewGroup.LayoutParams.WRAP_CONTENT,
- 480));
-
- TextView filler = new TextView(this);
- filler.setText("filler");
- filler.setLayoutParams(new LinearLayout.LayoutParams(
- 0, // width
- ViewGroup.LayoutParams.WRAP_CONTENT,
- 520));
-
- LinearLayout ll = new LinearLayout(this);
- ll.setOrientation(LinearLayout.HORIZONTAL);
- ll.setLayoutParams(new LinearLayout.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.WRAP_CONTENT));
-
- if (atRight) {
- ll.addView(filler);
- ll.addView(button);
- root.addView(ll);
- } else {
- ll.addView(button);
- ll.addView(filler);
- root.addView(ll);
- }
- return button;
- }
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridDelete.java b/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridDelete.java
deleted file mode 100644
index 4c0d23b..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridDelete.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import android.view.KeyEvent;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-import android.widget.GridView;
-import android.widget.ListAdapter;
-
-import com.android.frameworktest.util.GridScenario;
-
-import java.util.ArrayList;
-
-/**
- * A grid with vertical spacing between rows
- */
-public class GridDelete extends GridScenario {
- @Override
- protected void init(Params params) {
- params.setStartingSelectionPosition(-1)
- .setMustFillScreen(false)
- .setNumItems(1001)
- .setNumColumns(4)
- .setItemScreenSizeFactor(0.20)
- .setVerticalSpacing(20);
- }
-
-
-
- @Override
- protected ListAdapter createAdapter() {
- return new DeleteAdapter(getInitialNumItems());
- }
-
-
-
-
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- if (keyCode == KeyEvent.KEYCODE_DEL) {
- GridView g = getGridView();
- ((DeleteAdapter)g.getAdapter()).deletePosition(g.getSelectedItemPosition());
- return true;
- } else {
- return super.onKeyDown(keyCode, event);
- }
- }
-
-
-
-
- private class DeleteAdapter extends BaseAdapter {
-
- private ArrayList<Integer> mData;
-
- public DeleteAdapter(int initialNumItems) {
- super();
- mData = new ArrayList<Integer>(initialNumItems);
-
- int i;
- for (i=0; i<initialNumItems; ++i) {
- mData.add(new Integer(10000 + i));
- }
-
- }
-
- public void deletePosition(int selectedItemPosition) {
- if (selectedItemPosition >=0 && selectedItemPosition < mData.size()) {
- mData.remove(selectedItemPosition);
- notifyDataSetChanged();
- }
-
- }
-
- public int getCount() {
- return mData.size();
- }
-
- public Object getItem(int position) {
- return mData.get(position);
- }
-
- public long getItemId(int position) {
- return mData.get(position);
- }
-
- public View getView(int position, View convertView, ViewGroup parent) {
- int desiredHeight = getDesiredItemHeight();
- return createView(mData.get(position), parent, desiredHeight);
- }
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridInHorizontal.java b/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridInHorizontal.java
deleted file mode 100644
index c10a53b..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridInHorizontal.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.os.Handler;
-import android.widget.ArrayAdapter;
-import android.widget.GridView;
-import android.widget.TextView;
-
-import com.android.frameworktest.R;
-
-/**
- * Exercises a grid in a horizontal linear layout
- */
-public class GridInHorizontal extends Activity {
- Handler mHandler = new Handler();
- TextView mText;
- GridView mGridView;
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- setContentView(R.layout.grid_in_horizontal);
-
- String values[] = new String[1000];
- int i=0;
- for(i=0; i<1000; i++) {
- values[i] = ((Integer)i).toString();
- }
-
- mText = (TextView) findViewById(R.id.text);
- mGridView = (GridView) findViewById(R.id.grid);
- mGridView.setAdapter(new ArrayAdapter<String>(this,
- android.R.layout.simple_list_item_1, values));
-
- }
-
- public GridView getGridView() {
- return mGridView;
- }
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridInVertical.java b/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridInVertical.java
deleted file mode 100644
index acde73e..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridInVertical.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.os.Handler;
-import android.widget.ArrayAdapter;
-import android.widget.GridView;
-import android.widget.TextView;
-
-import com.android.frameworktest.R;
-
-/**
- * Exercises a grid in a vertical linear layout
- */
-public class GridInVertical extends Activity {
- Handler mHandler = new Handler();
- TextView mText;
- GridView mGridView;
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- setContentView(R.layout.grid_in_vertical);
-
- String values[] = new String[1000];
- int i=0;
- for(i=0; i<1000; i++) {
- values[i] = ((Integer)i).toString();
- }
-
- mText = (TextView) findViewById(R.id.text);
- mGridView = (GridView) findViewById(R.id.grid);
- mGridView.setAdapter(new ArrayAdapter<String>(this,
- android.R.layout.simple_list_item_1, values));
-
- }
-
- public GridView getGridView() {
- return mGridView;
- }
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridPadding.java b/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridPadding.java
deleted file mode 100644
index 41909ac2..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridPadding.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.widget.ArrayAdapter;
-import android.widget.GridView;
-
-import com.android.frameworktest.R;
-
-/**
- * Exercises a grid with padding
- */
-public class GridPadding extends Activity {
- private GridView mGridView;
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- setContentView(R.layout.grid_padding);
-
- String values[] = new String[1000];
- for(int i = 0; i < 1000; i++) {
- values[i] = String.valueOf(i);
- }
-
- mGridView = (GridView) findViewById(R.id.grid);
- mGridView.setAdapter(new ArrayAdapter<String>(this,
- android.R.layout.simple_list_item_1, values));
- }
-
- public GridView getGridView() {
- return mGridView;
- }
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridScrollListener.java b/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridScrollListener.java
deleted file mode 100644
index 4655230..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridScrollListener.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.os.Handler;
-import android.widget.AbsListView;
-import android.widget.ArrayAdapter;
-import android.widget.GridView;
-import android.widget.TextView;
-
-import com.android.frameworktest.R;
-
-/**
- * Exercises change notification in a list
- */
-public class GridScrollListener extends Activity implements AbsListView.OnScrollListener {
- Handler mHandler = new Handler();
- TextView mText;
- GridView mGridView;
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- setContentView(R.layout.grid_scroll_listener);
-
- String values[] = new String[1000];
- int i=0;
- for(i=0; i<1000; i++) {
- values[i] = ((Integer)i).toString();
- }
-
- mText = (TextView) findViewById(R.id.text);
- mGridView = (GridView) findViewById(R.id.grid);
- mGridView.setAdapter(new ArrayAdapter<String>(this,
- android.R.layout.simple_list_item_1, values));
-
- mGridView.setOnScrollListener(this);
- }
-
- public GridView getGridView() {
- return mGridView;
- }
-
- public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
- int lastItem = firstVisibleItem + visibleItemCount - 1;
- mText.setText("Showing " + firstVisibleItem + "-" + lastItem + "/" + totalItemCount);
- }
-
- public void onScrollStateChanged(AbsListView view, int scrollState) {
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSetSelection.java b/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSetSelection.java
deleted file mode 100644
index 38f629d..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSetSelection.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import com.android.frameworktest.util.GridScenario;
-
-/**
- * Basic stacking from top scenario, nothing fancy. Items do not
- * fill the screen.
- */
-public class GridSetSelection extends GridScenario {
- @Override
- protected void init(Params params) {
- params.setStackFromBottom(false)
- .setStartingSelectionPosition(-1)
- .setMustFillScreen(false)
- .setNumItems(15)
- .setNumColumns(4)
- .setItemScreenSizeFactor(0.12);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSetSelectionMany.java b/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSetSelectionMany.java
deleted file mode 100644
index 34aeb75..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSetSelectionMany.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import com.android.frameworktest.util.GridScenario;
-
-/**
- * Basic stacking from top scenario, nothing fancy. Items do
- * fill the screen.
- */
-public class GridSetSelectionMany extends GridScenario {
- @Override
- protected void init(Params params) {
- params.setStackFromBottom(false)
- .setStartingSelectionPosition(-1)
- .setMustFillScreen(false)
- .setNumItems(150)
- .setNumColumns(4)
- .setItemScreenSizeFactor(0.12);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSetSelectionStackFromBottom.java b/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSetSelectionStackFromBottom.java
deleted file mode 100644
index 6a2445f..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSetSelectionStackFromBottom.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import com.android.frameworktest.util.GridScenario;
-
-/**
- * Basic stacking from bottom scenario, nothing fancy. Items do not
- * fill the screen.
- */
-public class GridSetSelectionStackFromBottom extends GridScenario {
- @Override
- protected void init(Params params) {
- params.setStackFromBottom(true)
- .setStartingSelectionPosition(-1)
- .setMustFillScreen(false)
- .setNumItems(15)
- .setNumColumns(4)
- .setItemScreenSizeFactor(0.12);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSetSelectionStackFromBottomMany.java b/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSetSelectionStackFromBottomMany.java
deleted file mode 100644
index 838c431..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSetSelectionStackFromBottomMany.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import com.android.frameworktest.util.GridScenario;
-
-/**
- * Basic stacking from bottom scenario, nothing fancy. Items do
- * fill the screen.
- */
-public class GridSetSelectionStackFromBottomMany extends GridScenario {
- @Override
- protected void init(Params params) {
- params.setStackFromBottom(true)
- .setStartingSelectionPosition(-1)
- .setMustFillScreen(false)
- .setNumItems(150)
- .setNumColumns(4)
- .setItemScreenSizeFactor(0.12);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSimple.java b/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSimple.java
deleted file mode 100644
index f7f68f5..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSimple.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import android.graphics.drawable.PaintDrawable;
-import android.os.Bundle;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-import com.android.frameworktest.util.GridScenario;
-
-public class GridSimple extends GridScenario {
- @Override
- protected void init(Params params) {
- params.setStackFromBottom(false)
- .setStartingSelectionPosition(-1)
- .setNumItems(1000)
- .setNumColumns(3)
- .setItemScreenSizeFactor(0.14);
- }
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- getGridView().setSelector(new PaintDrawable(0xFFFF0000));
- getGridView().setPadding(0, 0, 0, 0);
- getGridView().setFadingEdgeLength(64);
- getGridView().setVerticalFadingEdgeEnabled(true);
- getGridView().setBackgroundColor(0xFFC0C0C0);
- }
-
- @Override
- protected View createView(int position, ViewGroup parent, int desiredHeight) {
- View view = super.createView(position, parent, desiredHeight);
- view.setBackgroundColor(0xFF000000);
- ((TextView) view).setTextSize(16.0f);
- return view;
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSingleColumn.java b/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSingleColumn.java
deleted file mode 100644
index a909bd8..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridSingleColumn.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import com.android.frameworktest.util.GridScenario;
-import android.widget.GridView;
-
-/**
- * A grid with vertical spacing between rows
- */
-public class GridSingleColumn extends GridScenario {
- @Override
- protected void init(Params params) {
- params.setStartingSelectionPosition(-1)
- .setMustFillScreen(false)
- .setNumItems(101)
- .setNumColumns(1)
- .setColumnWidth(60)
- .setItemScreenSizeFactor(0.20)
- .setVerticalSpacing(20)
- .setStretchMode(GridView.STRETCH_SPACING);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridStackFromBottom.java b/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridStackFromBottom.java
deleted file mode 100644
index 304110e..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridStackFromBottom.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import com.android.frameworktest.util.GridScenario;
-
-/**
- * Basic bottom stacking from bottom scenario, nothing fancy. Items do not
- * fill the screen
- */
-public class GridStackFromBottom extends GridScenario {
- @Override
- protected void init(Params params) {
- params.setStackFromBottom(true)
- .setStartingSelectionPosition(-1)
- .setMustFillScreen(false)
- .setNumItems(15)
- .setNumColumns(4)
- .setItemScreenSizeFactor(0.12);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridStackFromBottomMany.java b/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridStackFromBottomMany.java
deleted file mode 100644
index 94d801e..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridStackFromBottomMany.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import com.android.frameworktest.util.GridScenario;
-
-/**
- * Basic bottom stacking from bottom scenario, nothing fancy. The grid items do not fit on the
- * screen (to exercise scrolling.)
- */
-public class GridStackFromBottomMany extends GridScenario {
- @Override
- protected void init(Params params) {
- params.setStackFromBottom(true)
- .setStartingSelectionPosition(-1)
- .setMustFillScreen(false)
- .setNumItems(54)
- .setNumColumns(4)
- .setItemScreenSizeFactor(0.12);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridThrasher.java b/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridThrasher.java
deleted file mode 100644
index d628f2d..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridThrasher.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.content.Context;
-import android.os.Bundle;
-import android.os.Handler;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.LayoutInflater;
-import android.widget.AdapterView;
-import android.widget.BaseAdapter;
-import android.widget.GridView;
-import android.widget.TextView;
-
-import java.util.Random;
-
-/**
- * Exercises change notification in a list
- */
-public class GridThrasher extends Activity implements AdapterView.OnItemSelectedListener
-{
- Handler mHandler = new Handler();
- ThrashListAdapter mAdapter;
- Random mRandomizer = new Random();
- TextView mText;
-
- Runnable mThrash = new Runnable() {
- public void run() {
- mAdapter.bumpVersion();
- mHandler.postDelayed(mThrash, 500);
- }
- };
-
- private class ThrashListAdapter extends BaseAdapter {
- private LayoutInflater mInflater;
-
- /**
- * Our data, part 1.
- */
- private String[] mTitles = new String[100];
-
- /**
- * Our data, part 2.
- */
- private int[] mVersion = new int[100];
-
- public ThrashListAdapter(Context context) {
- mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- mTitles = new String[100];
- mVersion = new int[100];
-
- int i;
- for (i=0; i<100; i++) {
- mTitles[i] = "[" + i + "]";
- mVersion[i] = 0;
- }
- }
-
- public int getCount() {
- return mTitles.length;
- }
-
- public Object getItem(int position) {
- return position;
- }
-
- public long getItemId(int position) {
- return position;
- }
-
- public View getView(int position, View convertView, ViewGroup parent) {
- TextView view;
-
- if (convertView == null) {
- view = (TextView) mInflater.inflate(android.R.layout.simple_list_item_1, null);
- } else {
- view = (TextView) convertView;
- }
- view.setText(mTitles[position] + " " + mVersion[position]);
- return view;
- }
-
-
- public void bumpVersion() {
- int position = mRandomizer.nextInt(getCount());
- mVersion[position]++;
- notifyDataSetChanged();
- }
-
-
- }
-
- @Override
- public void onCreate(Bundle icicle)
- {
- super.onCreate(icicle);
-
- setContentView(R.layout.grid_thrasher);
-
- mText = (TextView) findViewById(R.id.text);
- mAdapter = new ThrashListAdapter(this);
- GridView g = (GridView) findViewById(R.id.grid);
- g.setAdapter(mAdapter);
-
- mHandler.postDelayed(mThrash, 5000);
-
- g.setOnItemSelectedListener(this);
- }
-
- public void onItemSelected(AdapterView parent, View v, int position, long id) {
- mText.setText("Position " + position);
- }
-
- public void onNothingSelected(AdapterView parent) {
- mText.setText("Nothing");
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridVerticalSpacing.java b/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridVerticalSpacing.java
deleted file mode 100644
index 3f6b8d6..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridVerticalSpacing.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import com.android.frameworktest.util.GridScenario;
-
-/**
- * A grid with vertical spacing between rows
- */
-public class GridVerticalSpacing extends GridScenario {
- @Override
- protected void init(Params params) {
- params.setStartingSelectionPosition(-1)
- .setMustFillScreen(false)
- .setNumItems(101)
- .setNumColumns(4)
- .setItemScreenSizeFactor(0.20)
- .setVerticalSpacing(20);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridVerticalSpacingStackFromBottom.java b/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridVerticalSpacingStackFromBottom.java
deleted file mode 100644
index 1a39ffb..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/gridview/GridVerticalSpacingStackFromBottom.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import com.android.frameworktest.util.GridScenario;
-
-/**
- * A grid with vertical spacing between rows that stacks from the bottom
- */
-public class GridVerticalSpacingStackFromBottom extends GridScenario {
- @Override
- protected void init(Params params) {
- params.setStackFromBottom(true)
- .setStartingSelectionPosition(-1)
- .setMustFillScreen(false)
- .setNumItems(101)
- .setNumColumns(4)
- .setItemScreenSizeFactor(0.20)
- .setVerticalSpacing(20);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/layout/frame/FrameLayoutGravity.java b/tests/FrameworkTest/src/com/android/frameworktest/layout/frame/FrameLayoutGravity.java
deleted file mode 100644
index 1383dae..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/layout/frame/FrameLayoutGravity.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.frame;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.View;
-
-public class FrameLayoutGravity extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.framelayout_gravity);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/layout/frame/FrameLayoutMargin.java b/tests/FrameworkTest/src/com/android/frameworktest/layout/frame/FrameLayoutMargin.java
deleted file mode 100644
index 0434726..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/layout/frame/FrameLayoutMargin.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.frame;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.View;
-
-public class FrameLayoutMargin extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.framelayout_margin);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/BaselineAlignmentCenterGravity.java b/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/BaselineAlignmentCenterGravity.java
deleted file mode 100644
index 5087c62..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/BaselineAlignmentCenterGravity.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.linear;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.View;
-
-public class BaselineAlignmentCenterGravity extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.baseline_center_gravity);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/BaselineAlignmentZeroWidthAndWeight.java b/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/BaselineAlignmentZeroWidthAndWeight.java
deleted file mode 100644
index 3c1d7fd..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/BaselineAlignmentZeroWidthAndWeight.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.linear;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.View;
-
-public class BaselineAlignmentZeroWidthAndWeight extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.baseline_0width_and_weight);
-
- findViewById(R.id.show).setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- findViewById(R.id.layout).setVisibility(View.VISIBLE);
- }
- });
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/BaselineButtons.java b/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/BaselineButtons.java
deleted file mode 100644
index 9bb9bff..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/BaselineButtons.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.linear;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.View;
-
-public class BaselineButtons extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.baseline_buttons);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/ExceptionTextView.java b/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/ExceptionTextView.java
deleted file mode 100644
index 54f6b98..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/ExceptionTextView.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.linear;
-
-import junit.framework.Assert;
-
-import android.widget.EditText;
-import android.content.Context;
-import android.util.AttributeSet;
-import android.text.BoringLayout;
-
-
-/**
- * A special EditText that sets {@link #isFailed()} to true as its internal makeNewLayout() method is called
- * with a width lower than 0. This is used to fail the unit test in
- * BaselineAlignmentZeroWidthAndWeightTest.
- */
-public class ExceptionTextView extends EditText {
-
- private boolean mFailed = false;
-
- public ExceptionTextView(Context context) {
- super(context);
- }
-
- public ExceptionTextView(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- public ExceptionTextView(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- }
-
- public boolean isFailed() {
- return mFailed;
- }
-
- @Override
- protected void makeNewLayout(int w, int hintWidth,
- BoringLayout.Metrics boring,
- BoringLayout.Metrics hintMetrics,
- int ellipsizedWidth, boolean bringIntoView) {
- if (w < 0) {
- mFailed = true;
- w = 100;
- }
-
- super.makeNewLayout(w, hintWidth, boring, hintMetrics, ellipsizedWidth,
- bringIntoView);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/FillInWrap.java b/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/FillInWrap.java
deleted file mode 100644
index a95cf17..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/FillInWrap.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.linear;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.widget.TextView;
-
-public class FillInWrap extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.fill_in_wrap);
- ((TextView) findViewById(R.id.data)).setText("1\n2\n3\n4\n5");
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/HorizontalOrientationVerticalAlignment.java b/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/HorizontalOrientationVerticalAlignment.java
deleted file mode 100644
index 1308b8b..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/HorizontalOrientationVerticalAlignment.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.linear;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.View;
-
-public class HorizontalOrientationVerticalAlignment extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.linear_layout_spinner_then_button);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/LLEditTextThenButton.java b/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/LLEditTextThenButton.java
deleted file mode 100644
index db868cb..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/LLEditTextThenButton.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.linear;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.LinearLayout;
-
-public class LLEditTextThenButton extends Activity {
- private EditText mEditText;
- private Button mButton;
-
- private LinearLayout mLayout;
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- setContentView(R.layout.linear_layout_edittext_then_button);
-
- mLayout = (LinearLayout) findViewById(R.id.layout);
- mEditText = (EditText) findViewById(R.id.editText);
- mButton = (Button) findViewById(R.id.button);
- }
-
- public LinearLayout getLayout() {
- return mLayout;
- }
-
- public EditText getEditText() {
- return mEditText;
- }
-
- public Button getButton() {
- return mButton;
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/LLOfButtons1.java b/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/LLOfButtons1.java
deleted file mode 100644
index 33189e5..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/LLOfButtons1.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.linear;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.os.RemoteException;
-import android.view.View;
-import android.widget.Button;
-import android.widget.LinearLayout;
-import com.android.frameworktest.R;
-
-/**
- * One of two simple vertical linear layouts of buttons used to test out
- * the transistion between touch and focus mode.
- */
-public class LLOfButtons1 extends Activity {
-
- private boolean mButtonPressed = false;
- private Button mFirstButton;
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.linear_layout_buttons);
- mFirstButton = (Button) findViewById(R.id.button1);
-
- mFirstButton.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- mButtonPressed = true;
- }
- });
-
- }
-
- public LinearLayout getLayout() {
- return (LinearLayout) findViewById(R.id.layout);
- }
-
- public Button getFirstButton() {
- return mFirstButton;
- }
-
- public boolean buttonClickListenerFired() {
- return mButtonPressed;
- }
-
- public boolean isInTouchMode() {
- return mFirstButton.isInTouchMode();
- }
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/LLOfButtons2.java b/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/LLOfButtons2.java
deleted file mode 100644
index 1e0c97a..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/LLOfButtons2.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.linear;
-
-/**
- * One of two simple vertical linear layouts of buttons used to test out
- * the transistion between touch and focus mode.
- */
-public class LLOfButtons2 extends LLOfButtons1 {
-
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/LLOfTwoFocusableInTouchMode.java b/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/LLOfTwoFocusableInTouchMode.java
deleted file mode 100644
index 201c8f9..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/LLOfTwoFocusableInTouchMode.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.linear;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.View;
-
-public class LLOfTwoFocusableInTouchMode extends Activity {
-
- private View mButton1;
- private View mButton2;
- private View mButton3;
-
- private boolean mB1Fired = false;
- private boolean mB2Fired = false;
- private boolean mB3Fired = false;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- setContentView(R.layout.linear_layout_buttons);
-
- mButton1 = findViewById(R.id.button1);
- mButton2 = findViewById(R.id.button2);
- mButton3 = findViewById(R.id.button3);
-
- mButton1.setFocusableInTouchMode(true);
- mButton2.setFocusableInTouchMode(true);
- mButton3.setFocusableInTouchMode(true);
-
- mButton1.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- mB1Fired = true;
- }
- });
-
- mButton2.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- mB2Fired = true;
- }
- });
-
- mButton3.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- mB3Fired = true;
- }
- });
- }
-
- public View getButton1() {
- return mButton1;
- }
-
- public View getButton2() {
- return mButton2;
- }
-
- public View getButton3() {
- return mButton3;
- }
-
- public boolean isB1Fired() {
- return mB1Fired;
- }
-
- public boolean isB2Fired() {
- return mB2Fired;
- }
-
- public boolean isB3Fired() {
- return mB3Fired;
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/LinearLayoutEditTexts.java b/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/LinearLayoutEditTexts.java
deleted file mode 100644
index 4877a63..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/LinearLayoutEditTexts.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.linear;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-public class LinearLayoutEditTexts extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- setContentView(R.layout.linear_layout_textviews);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/Weight.java b/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/Weight.java
deleted file mode 100644
index 0535f00..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/Weight.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.linear;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-public class Weight extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.linear_layout_weight);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/WeightSum.java b/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/WeightSum.java
deleted file mode 100644
index 8b9a497..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/layout/linear/WeightSum.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.linear;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.View;
-
-public class WeightSum extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.weight_sum);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/layout/table/AddColumn.java b/tests/FrameworkTest/src/com/android/frameworktest/layout/table/AddColumn.java
deleted file mode 100644
index c490e0f..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/layout/table/AddColumn.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.table;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.Button;
-import android.widget.TableLayout;
-import android.widget.TableRow;
-import android.widget.TextView;
-
-/**
- * This test adds an extra row with an extra column in the table.
- */
-public class AddColumn extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.add_column_in_table);
-
- final Button addRowButton = (Button) findViewById(R.id.add_row_button);
- addRowButton.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- final TableLayout table = (TableLayout) findViewById(R.id.table);
- final TableRow newRow = new TableRow(AddColumn.this);
- for (int i = 0; i < 4; i++) {
- final TextView view = new TextView(AddColumn.this);
- view.setText("Column " + (i + 1));
- view.setPadding(3, 3, 3, 3);
- newRow.addView(view, new TableRow.LayoutParams());
- }
- table.addView(newRow, new TableLayout.LayoutParams());
- newRow.requestLayout();
- }
- });
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/layout/table/CellSpan.java b/tests/FrameworkTest/src/com/android/frameworktest/layout/table/CellSpan.java
deleted file mode 100644
index 243efc7..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/layout/table/CellSpan.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.table;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-/**
- * Exercise table layout with cells spanning.
- */
-public class CellSpan extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.table_layout_cell_span);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/layout/table/FixedWidth.java b/tests/FrameworkTest/src/com/android/frameworktest/layout/table/FixedWidth.java
deleted file mode 100644
index 2e2defc..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/layout/table/FixedWidth.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.table;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-/**
- * Exercise table layout with cells having a fixed width and height.
- */
-public class FixedWidth extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.table_layout_fixed_width);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/layout/table/HorizontalGravity.java b/tests/FrameworkTest/src/com/android/frameworktest/layout/table/HorizontalGravity.java
deleted file mode 100644
index fdafa12..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/layout/table/HorizontalGravity.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.table;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-/**
- * Exercise table layout with cells using a horizontal gravity.
- */
-public class HorizontalGravity extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.table_layout_horizontal_gravity);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/layout/table/VerticalGravity.java b/tests/FrameworkTest/src/com/android/frameworktest/layout/table/VerticalGravity.java
deleted file mode 100644
index 1f161d9..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/layout/table/VerticalGravity.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.table;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-/**
- * Exercise table layout with cells using a vertical gravity.
- */
-public class VerticalGravity extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.table_layout_vertical_gravity);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/layout/table/Weight.java b/tests/FrameworkTest/src/com/android/frameworktest/layout/table/Weight.java
deleted file mode 100644
index 4c3835f..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/layout/table/Weight.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.table;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-/**
- * Exercise table layout with cells having a weight.
- */
-public class Weight extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.table_layout_weight);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/AdjacentListsWithAdjacentISVsInside.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/AdjacentListsWithAdjacentISVsInside.java
deleted file mode 100644
index 5c38ef0..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/AdjacentListsWithAdjacentISVsInside.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.util.InternalSelectionView;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-import android.widget.LinearLayout;
-import android.widget.ListView;
-
-/**
- * Most bodacious scenario yet!
- */
-public class AdjacentListsWithAdjacentISVsInside extends Activity {
-
- private ListView mLeftListView;
- private ListView mRightListView;
-
- public ListView getLeftListView() {
- return mLeftListView;
- }
-
- public ListView getRightListView() {
- return mRightListView;
- }
-
- public InternalSelectionView getLeftIsv() {
- return (InternalSelectionView)
- ((ViewGroup) mLeftListView.getChildAt(0)).getChildAt(0);
- }
-
- public InternalSelectionView getLeftMiddleIsv() {
- return (InternalSelectionView)
- ((ViewGroup) mLeftListView.getChildAt(0)).getChildAt(1);
- }
-
- public InternalSelectionView getRightMiddleIsv() {
- return (InternalSelectionView)
- ((ViewGroup) mRightListView.getChildAt(0)).getChildAt(0);
- }
-
- public InternalSelectionView getRightIsv() {
- return (InternalSelectionView)
- ((ViewGroup) mRightListView.getChildAt(0)).getChildAt(1);
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- final int desiredHeight = (int) (0.8 * getWindowManager().getDefaultDisplay().getHeight());
-
- mLeftListView = new ListView(this);
- mLeftListView.setAdapter(new AdjacentISVAdapter(desiredHeight));
- mLeftListView.setItemsCanFocus(true);
-
-
- mRightListView = new ListView(this);
- mRightListView.setAdapter(new AdjacentISVAdapter(desiredHeight));
- mRightListView.setItemsCanFocus(true);
-
-
-
- setContentView(combineAdjacent(mLeftListView, mRightListView));
- }
-
- private static View combineAdjacent(View... views) {
- if (views.length < 2) {
- throw new IllegalArgumentException("you should pass at least 2 views in");
- }
-
- final LinearLayout ll = new LinearLayout(views[0].getContext());
- ll.setOrientation(LinearLayout.HORIZONTAL);
- final LinearLayout.LayoutParams lp =
- new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT, 1.0f);
-
- for (View view : views) {
- ll.addView(view, lp);
- }
- return ll;
- }
-
- static class AdjacentISVAdapter extends BaseAdapter {
-
- private final int mItemHeight;
-
- AdjacentISVAdapter(int itemHeight) {
- mItemHeight = itemHeight;
- }
-
- public int getCount() {
- return 1;
- }
-
- public Object getItem(int position) {
- return position;
- }
-
- public long getItemId(int position) {
- return position;
- }
-
- public View getView(int position, View convertView, ViewGroup parent) {
- final InternalSelectionView isvLeft = new InternalSelectionView(
- parent.getContext(), 5, "isv left");
- isvLeft.setDesiredHeight(mItemHeight);
- final InternalSelectionView isvRight = new InternalSelectionView(
- parent.getContext(), 5, "isv right");
- isvRight.setDesiredHeight(mItemHeight);
- return combineAdjacent(isvLeft, isvRight);
- }
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListBottomGravity.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListBottomGravity.java
deleted file mode 100644
index e729d52..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListBottomGravity.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.view.Gravity;
-
-import com.android.frameworktest.util.ListScenario;
-
-/**
- * Basic bottom gravity scenario, nothing fancy. Items do not
- * fill the screen
- */
-public class ListBottomGravity extends ListScenario {
-
- @Override
- protected void init(Params params) {
- params.setStackFromBottom(true)
- .setStartingSelectionPosition(-1)
- .setMustFillScreen(false)
- .setNumItems(2)
- .setItemScreenSizeFactor(0.22);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListBottomGravityMany.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListBottomGravityMany.java
deleted file mode 100644
index 1225b9a..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListBottomGravityMany.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.view.Gravity;
-
-import com.android.frameworktest.util.ListScenario;
-
-/**
- * Basic bottom gravity scenario, nothing fancy. There are
- * more items than fit on the screen
- */
-public class ListBottomGravityMany extends ListScenario {
-
- @Override
- protected void init(Params params) {
- params.setStackFromBottom(true)
- .setStartingSelectionPosition(-1)
- .setNumItems(10)
- .setItemScreenSizeFactor(0.22);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListButtonsDiagonalAcrossItems.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListButtonsDiagonalAcrossItems.java
deleted file mode 100644
index bda2cd1..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListButtonsDiagonalAcrossItems.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.util.ListItemFactory;
-import static com.android.frameworktest.util.ListItemFactory.Slot;
-import com.android.frameworktest.util.ListScenario;
-
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-
-public class ListButtonsDiagonalAcrossItems extends ListScenario {
-
- @Override
- protected void init(Params params) {
- params.setItemsFocusable(true)
- .setNumItems(3)
- .setItemScreenSizeFactor(0.2)
- .setMustFillScreen(false);
- }
-
- public Button getLeftButton() {
- return (Button) ((ViewGroup) getListView().getChildAt(0)).getChildAt(0);
- }
-
- public Button getCenterButton() {
- return (Button) ((ViewGroup) getListView().getChildAt(1)).getChildAt(1);
- }
-
- public Button getRightButton() {
- return (Button) ((ViewGroup) getListView().getChildAt(2)).getChildAt(2);
- }
-
- @Override
- protected View createView(int position, ViewGroup parent,
- int desiredHeight) {
- final Slot slot = position == 0 ? Slot.Left :
- (position == 1 ? Slot.Middle : Slot.Right);
- return ListItemFactory.horizontalButtonSlots(
- parent.getContext(), desiredHeight, slot);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListDividers.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListDividers.java
deleted file mode 100644
index 62045d8..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListDividers.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-
-import com.android.frameworktest.R;
-
-/**
- * Exercises a list width dividers and padding.
- */
-public class ListDividers extends Activity {
- private ListView mListView;
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- setContentView(R.layout.list_dividers);
-
- String values[] = new String[1000];
- for (int i = 0; i < 1000; i++) {
- values[i] = ((Integer) i).toString();
- }
-
- mListView = (ListView) findViewById(android.R.id.list);
- mListView.setAdapter(new ArrayAdapter<String>(this,
- android.R.layout.simple_list_item_1, values));
-
- }
-
- public ListView getListView() {
- return mListView;
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListEndingWithMultipleSeparators.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListEndingWithMultipleSeparators.java
deleted file mode 100644
index 4ab1eef..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListEndingWithMultipleSeparators.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.util.ListScenario;
-
-public class ListEndingWithMultipleSeparators extends ListScenario {
-
- protected void init(Params params) {
- params.setItemsFocusable(false)
- .setNumItems(5)
- .setItemScreenSizeFactor(0.22)
- .setPositionUnselectable(3)
- .setPositionUnselectable(4);
- }
-
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListFilter.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListFilter.java
deleted file mode 100644
index b164d86..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListFilter.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.app.ListActivity;
-import android.os.Bundle;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.ArrayAdapter;
-import android.widget.Button;
-
-import com.android.frameworktest.R;
-
-
-/**
- * Tests hiding and showing the list filter by hiding and showing an ancestor of the
- * ListView
- */
-public class ListFilter extends ListActivity implements OnClickListener {
-
- private View mFrame;
- private Button mHide;
- private Button mShow;
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- setContentView(R.layout.list_filter);
- setListAdapter(new ArrayAdapter<String>(this,
- android.R.layout.simple_list_item_1, mStrings));
- getListView().setTextFilterEnabled(true);
- mFrame = findViewById(R.id.frame);
-
- mHide = (Button) findViewById(R.id.hide);
- mHide.setOnClickListener(this);
-
- mShow = (Button) findViewById(R.id.show);
- mShow.setOnClickListener(this);
- }
-
-
- public void onClick(View v) {
- mFrame.setVisibility(v == mHide ? View.INVISIBLE : View.VISIBLE);
- }
-
- private String[] mStrings = {
- "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi",
- "Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale",
- "Aisy Cendre", "Allgauer Emmentaler", "Alverca", "Ambert", "American Cheese",
- "Ami du Chambertin", "Anejo Enchilado", "Anneau du Vic-Bilh", "Anthoriro", "Appenzell",
- "Aragon", "Ardi Gasna", "Ardrahan", "Armenian String", "Aromes au Gene de Marc",
- "Asadero", "Asiago", "Aubisque Pyrenees", "Autun", "Avaxtskyr", "Baby Swiss",
- "Babybel", "Baguette Laonnaise", "Bakers", "Baladi", "Balaton", "Bandal", "Banon",
- "Barry's Bay Cheddar", "Basing", "Basket Cheese", "Bath Cheese", "Bavarian Bergkase",
- "Baylough", "Beaufort", "Beauvoorde", "Beenleigh Blue", "Beer Cheese", "Bel Paese",
- "Bergader", "Bergere Bleue", "Berkswell", "Beyaz Peynir", "Bierkase", "Bishop Kennedy",
- "Blarney", "Bleu d'Auvergne", "Bleu de Gex", "Bleu de Laqueuille",
- "Bleu de Septmoncel", "Bleu Des Causses", "Blue", "Blue Castello", "Blue Rathgore",
- "Blue Vein (Australian)", "Blue Vein Cheeses", "Bocconcini", "Bocconcini (Australian)",
- "Boeren Leidenkaas", "Bonchester", "Bosworth", "Bougon", "Boule Du Roves",
- "Boulette d'Avesnes", "Boursault", "Boursin", "Bouyssou", "Bra", "Braudostur",
- "Breakfast Cheese", "Brebis du Lavort", "Brebis du Lochois", "Brebis du Puyfaucon",
- "Bresse Bleu", "Brick", "Brie", "Brie de Meaux", "Brie de Melun", "Brillat-Savarin",
- "Brin", "Brin d' Amour", "Brin d'Amour", "Brinza (Burduf Brinza)",
- "Briquette de Brebis", "Briquette du Forez", "Broccio", "Broccio Demi-Affine",
- "Brousse du Rove", "Bruder Basil", "Brusselae Kaas (Fromage de Bruxelles)", "Bryndza",
- "Buchette d'Anjou", "Buffalo", "Burgos", "Butte", "Butterkase", "Button (Innes)",
- "Buxton Blue", "Cabecou", "Caboc", "Cabrales", "Cachaille", "Caciocavallo", "Caciotta",
- "Caerphilly", "Cairnsmore", "Calenzana", "Cambazola", "Camembert de Normandie",
- "Canadian Cheddar", "Canestrato", "Cantal", "Caprice des Dieux", "Capricorn Goat",
- "Capriole Banon", "Carre de l'Est", "Casciotta di Urbino", "Cashel Blue", "Castellano",
- "Castelleno", "Castelmagno", "Castelo Branco", "Castigliano", "Cathelain",
- "Celtic Promise", "Cendre d'Olivet", "Cerney", "Chabichou", "Chabichou du Poitou",
- "Chabis de Gatine", "Chaource", "Charolais", "Chaumes", "Cheddar",
- "Cheddar Clothbound", "Cheshire", "Chevres", "Chevrotin des Aravis", "Chontaleno",
- "Civray", "Coeur de Camembert au Calvados", "Coeur de Chevre", "Colby", "Cold Pack",
- "Comte", "Coolea", "Cooleney", "Coquetdale", "Corleggy", "Cornish Pepper",
- "Cotherstone", "Cotija", "Cottage Cheese", "Cottage Cheese (Australian)",
- "Cougar Gold", "Coulommiers", "Coverdale", "Crayeux de Roncq", "Cream Cheese",
- "Cream Havarti", "Crema Agria", "Crema Mexicana", "Creme Fraiche", "Crescenza",
- "Croghan", "Crottin de Chavignol", "Crottin du Chavignol", "Crowdie", "Crowley",
- "Cuajada", "Curd", "Cure Nantais", "Curworthy", "Cwmtawe Pecorino",
- "Cypress Grove Chevre", "Danablu (Danish Blue)", "Danbo", "Danish Fontina",
- "Daralagjazsky", "Dauphin", "Delice des Fiouves", "Denhany Dorset Drum", "Derby",
- "Dessertnyj Belyj", "Devon Blue", "Devon Garland", "Dolcelatte", "Doolin",
- "Doppelrhamstufel", "Dorset Blue Vinney", "Double Gloucester", "Double Worcester",
- "Dreux a la Feuille", "Dry Jack", "Duddleswell", "Dunbarra", "Dunlop", "Dunsyre Blue",
- "Duroblando", "Durrus", "Dutch Mimolette (Commissiekaas)", "Edam", "Edelpilz",
- "Emental Grand Cru", "Emlett", "Emmental", "Epoisses de Bourgogne", "Esbareich",
- "Esrom", "Etorki", "Evansdale Farmhouse Brie", "Evora De L'Alentejo", "Exmoor Blue",
- "Explorateur", "Feta", "Feta (Australian)", "Figue", "Filetta", "Fin-de-Siecle",
- "Finlandia Swiss", "Finn", "Fiore Sardo", "Fleur du Maquis", "Flor de Guia",
- "Flower Marie", "Folded", "Folded cheese with mint", "Fondant de Brebis",
- "Fontainebleau", "Fontal", "Fontina Val d'Aosta", "Formaggio di capra", "Fougerus",
- "Four Herb Gouda", "Fourme d' Ambert", "Fourme de Haute Loire", "Fourme de Montbrison",
- "Fresh Jack", "Fresh Mozzarella", "Fresh Ricotta", "Fresh Truffles", "Fribourgeois",
- "Friesekaas", "Friesian", "Friesla", "Frinault", "Fromage a Raclette", "Fromage Corse",
- "Fromage de Montagne de Savoie", "Fromage Frais", "Fruit Cream Cheese",
- "Frying Cheese", "Fynbo", "Gabriel", "Galette du Paludier", "Galette Lyonnaise",
- "Galloway Goat's Milk Gems", "Gammelost", "Gaperon a l'Ail", "Garrotxa", "Gastanberra",
- "Geitost", "Gippsland Blue", "Gjetost", "Gloucester", "Golden Cross", "Gorgonzola",
- "Gornyaltajski", "Gospel Green", "Gouda", "Goutu", "Gowrie", "Grabetto", "Graddost",
- "Grafton Village Cheddar", "Grana", "Grana Padano", "Grand Vatel",
- "Grataron d' Areches", "Gratte-Paille", "Graviera", "Greuilh", "Greve",
- "Gris de Lille", "Gruyere", "Gubbeen", "Guerbigny", "Halloumi",
- "Halloumy (Australian)", "Haloumi-Style Cheese", "Harbourne Blue", "Havarti",
- "Heidi Gruyere", "Hereford Hop", "Herrgardsost", "Herriot Farmhouse", "Herve",
- "Hipi Iti", "Hubbardston Blue Cow", "Hushallsost", "Iberico", "Idaho Goatster",
- "Idiazabal", "Il Boschetto al Tartufo", "Ile d'Yeu", "Isle of Mull", "Jarlsberg",
- "Jermi Tortes", "Jibneh Arabieh", "Jindi Brie", "Jubilee Blue", "Juustoleipa",
- "Kadchgall", "Kaseri", "Kashta", "Kefalotyri", "Kenafa", "Kernhem", "Kervella Affine",
- "Kikorangi", "King Island Cape Wickham Brie", "King River Gold", "Klosterkaese",
- "Knockalara", "Kugelkase", "L'Aveyronnais", "L'Ecir de l'Aubrac", "La Taupiniere",
- "La Vache Qui Rit", "Laguiole", "Lairobell", "Lajta", "Lanark Blue", "Lancashire",
- "Langres", "Lappi", "Laruns", "Lavistown", "Le Brin", "Le Fium Orbo", "Le Lacandou",
- "Le Roule", "Leafield", "Lebbene", "Leerdammer", "Leicester", "Leyden", "Limburger",
- "Lincolnshire Poacher", "Lingot Saint Bousquet d'Orb", "Liptauer", "Little Rydings",
- "Livarot", "Llanboidy", "Llanglofan Farmhouse", "Loch Arthur Farmhouse",
- "Loddiswell Avondale", "Longhorn", "Lou Palou", "Lou Pevre", "Lyonnais", "Maasdam",
- "Macconais", "Mahoe Aged Gouda", "Mahon", "Malvern", "Mamirolle", "Manchego",
- "Manouri", "Manur", "Marble Cheddar", "Marbled Cheeses", "Maredsous", "Margotin",
- "Maribo", "Maroilles", "Mascares", "Mascarpone", "Mascarpone (Australian)",
- "Mascarpone Torta", "Matocq", "Maytag Blue", "Meira", "Menallack Farmhouse",
- "Menonita", "Meredith Blue", "Mesost", "Metton (Cancoillotte)", "Meyer Vintage Gouda",
- "Mihalic Peynir", "Milleens", "Mimolette", "Mine-Gabhar", "Mini Baby Bells", "Mixte",
- "Molbo", "Monastery Cheeses", "Mondseer", "Mont D'or Lyonnais", "Montasio",
- "Monterey Jack", "Monterey Jack Dry", "Morbier", "Morbier Cru de Montagne",
- "Mothais a la Feuille", "Mozzarella", "Mozzarella (Australian)",
- "Mozzarella di Bufala", "Mozzarella Fresh, in water", "Mozzarella Rolls", "Munster",
- "Murol", "Mycella", "Myzithra", "Naboulsi", "Nantais", "Neufchatel",
- "Neufchatel (Australian)", "Niolo", "Nokkelost", "Northumberland", "Oaxaca",
- "Olde York", "Olivet au Foin", "Olivet Bleu", "Olivet Cendre",
- "Orkney Extra Mature Cheddar", "Orla", "Oschtjepka", "Ossau Fermier", "Ossau-Iraty",
- "Oszczypek", "Oxford Blue", "P'tit Berrichon", "Palet de Babligny", "Paneer", "Panela",
- "Pannerone", "Pant ys Gawn", "Parmesan (Parmigiano)", "Parmigiano Reggiano",
- "Pas de l'Escalette", "Passendale", "Pasteurized Processed", "Pate de Fromage",
- "Patefine Fort", "Pave d'Affinois", "Pave d'Auge", "Pave de Chirac", "Pave du Berry",
- "Pecorino", "Pecorino in Walnut Leaves", "Pecorino Romano", "Peekskill Pyramid",
- "Pelardon des Cevennes", "Pelardon des Corbieres", "Penamellera", "Penbryn",
- "Pencarreg", "Perail de Brebis", "Petit Morin", "Petit Pardou", "Petit-Suisse",
- "Picodon de Chevre", "Picos de Europa", "Piora", "Pithtviers au Foin",
- "Plateau de Herve", "Plymouth Cheese", "Podhalanski", "Poivre d'Ane", "Polkolbin",
- "Pont l'Eveque", "Port Nicholson", "Port-Salut", "Postel", "Pouligny-Saint-Pierre",
- "Pourly", "Prastost", "Pressato", "Prince-Jean", "Processed Cheddar", "Provolone",
- "Provolone (Australian)", "Pyengana Cheddar", "Pyramide", "Quark",
- "Quark (Australian)", "Quartirolo Lombardo", "Quatre-Vents", "Quercy Petit",
- "Queso Blanco", "Queso Blanco con Frutas --Pina y Mango", "Queso de Murcia",
- "Queso del Montsec", "Queso del Tietar", "Queso Fresco", "Queso Fresco (Adobera)",
- "Queso Iberico", "Queso Jalapeno", "Queso Majorero", "Queso Media Luna",
- "Queso Para Frier", "Queso Quesadilla", "Rabacal", "Raclette", "Ragusano", "Raschera",
- "Reblochon", "Red Leicester", "Regal de la Dombes", "Reggianito", "Remedou",
- "Requeson", "Richelieu", "Ricotta", "Ricotta (Australian)", "Ricotta Salata", "Ridder",
- "Rigotte", "Rocamadour", "Rollot", "Romano", "Romans Part Dieu", "Roncal", "Roquefort",
- "Roule", "Rouleau De Beaulieu", "Royalp Tilsit", "Rubens", "Rustinu", "Saaland Pfarr",
- "Saanenkaese", "Saga", "Sage Derby", "Sainte Maure", "Saint-Marcellin",
- "Saint-Nectaire", "Saint-Paulin", "Salers", "Samso", "San Simon", "Sancerre",
- "Sap Sago", "Sardo", "Sardo Egyptian", "Sbrinz", "Scamorza", "Schabzieger", "Schloss",
- "Selles sur Cher", "Selva", "Serat", "Seriously Strong Cheddar", "Serra da Estrela",
- "Sharpam", "Shelburne Cheddar", "Shropshire Blue", "Siraz", "Sirene", "Smoked Gouda",
- "Somerset Brie", "Sonoma Jack", "Sottocenare al Tartufo", "Soumaintrain",
- "Sourire Lozerien", "Spenwood", "Sraffordshire Organic", "St. Agur Blue Cheese",
- "Stilton", "Stinking Bishop", "String", "Sussex Slipcote", "Sveciaost", "Swaledale",
- "Sweet Style Swiss", "Swiss", "Syrian (Armenian String)", "Tala", "Taleggio", "Tamie",
- "Tasmania Highland Chevre Log", "Taupiniere", "Teifi", "Telemea", "Testouri",
- "Tete de Moine", "Tetilla", "Texas Goat Cheese", "Tibet", "Tillamook Cheddar",
- "Tilsit", "Timboon Brie", "Toma", "Tomme Brulee", "Tomme d'Abondance",
- "Tomme de Chevre", "Tomme de Romans", "Tomme de Savoie", "Tomme des Chouans", "Tommes",
- "Torta del Casar", "Toscanello", "Touree de L'Aubier", "Tourmalet",
- "Trappe (Veritable)", "Trois Cornes De Vendee", "Tronchon", "Trou du Cru", "Truffe",
- "Tupi", "Turunmaa", "Tymsboro", "Tyn Grug", "Tyning", "Ubriaco", "Ulloa",
- "Vacherin-Fribourgeois", "Valencay", "Vasterbottenost", "Venaco", "Vendomois",
- "Vieux Corse", "Vignotte", "Vulscombe", "Waimata Farmhouse Blue",
- "Washed Rind Cheese (Australian)", "Waterloo", "Weichkaese", "Wellington",
- "Wensleydale", "White Stilton", "Whitestone Farmhouse", "Wigmore", "Woodside Cabecou",
- "Xanadu", "Xynotyro", "Yarg Cornish", "Yarra Valley Pyramid", "Yorkshire Blue",
- "Zamorano", "Zanetti Grana Padano", "Zanetti Parmigiano Reggiano"};
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListGetSelectedView.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListGetSelectedView.java
deleted file mode 100644
index 28fa21a..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListGetSelectedView.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.util.ListScenario;
-
-/**
- * Basic top gravity scenario. This test is made to check that getSelectedView() will return
- * null in touch mode.
- */
-public class ListGetSelectedView extends ListScenario {
- @Override
- protected void init(Params params) {
- params.setMustFillScreen(false).setNumItems(2).setItemScreenSizeFactor(0.22);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListHeterogeneous.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListHeterogeneous.java
deleted file mode 100644
index 93abd78..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListHeterogeneous.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.view.View;
-import android.view.ViewGroup;
-
-import com.android.frameworktest.util.ListItemFactory;
-import com.android.frameworktest.util.ListScenario;
-
-/**
- * List that has different view types
- */
-public class ListHeterogeneous extends ListScenario {
-
- @Override
- protected void init(Params params) {
- params.setNumItems(50)
- .setItemScreenSizeFactor(1.0 / 8)
- .setItemsFocusable(true)
- .setHeaderViewCount(3)
- .setFooterViewCount(2);
- }
-
- @Override
- protected View createView(int position, ViewGroup parent, int desiredHeight) {
- switch (position % 3) {
- case 0:
- return ListItemFactory.text(
- position, parent.getContext(), getValueAtPosition(position), desiredHeight);
- case 1:
- return ListItemFactory.button(
- position, parent.getContext(), getValueAtPosition(position), desiredHeight);
- case 2:
- return ListItemFactory.doubleText(
- position, parent.getContext(), getValueAtPosition(position), desiredHeight);
- }
-
- return null;
- }
-
- @Override
- public View convertView(int position, View convertView, ViewGroup parent) {
- switch (position % 3) {
- case 0:
- return ListItemFactory.convertText(convertView, getValueAtPosition(position), position);
- case 1:
- return ListItemFactory.convertButton(convertView, getValueAtPosition(position),
- position);
- case 2:
- return ListItemFactory.convertDoubleText(convertView, getValueAtPosition(position),
- position);
- }
-
- return null;
- }
-
- @Override
- public int getItemViewType(int position) {
- return position % 3;
- }
-
- @Override
- public int getViewTypeCount() {
- return 3;
- }
-
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListHorizontalFocusWithinItemWins.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListHorizontalFocusWithinItemWins.java
deleted file mode 100644
index c5e1e97..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListHorizontalFocusWithinItemWins.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.util.ListItemFactory;
-import static com.android.frameworktest.util.ListItemFactory.Slot;
-import com.android.frameworktest.util.ListScenario;
-
-import android.content.Context;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-
-public class ListHorizontalFocusWithinItemWins extends ListScenario {
-
- @Override
- protected void init(Params params) {
- params.setItemsFocusable(true)
- .setNumItems(2)
- .setItemScreenSizeFactor(0.2)
- .setMustFillScreen(false);
- }
-
- public Button getTopLeftButton() {
- return (Button) ((ViewGroup) getListView().getChildAt(0)).getChildAt(0);
- }
-
- public Button getTopRightButton() {
- return (Button) ((ViewGroup) getListView().getChildAt(0)).getChildAt(2);
- }
-
- public Button getBottomMiddleButton() {
- return (Button) ((ViewGroup) getListView().getChildAt(1)).getChildAt(1);
- }
-
- @Override
- protected View createView(int position, ViewGroup parent,
- int desiredHeight) {
- final Context context = parent.getContext();
- if (position == 0) {
- return ListItemFactory.horizontalButtonSlots(
- context, desiredHeight, Slot.Left, Slot.Right);
- } else if (position == 1) {
- return ListItemFactory.horizontalButtonSlots(
- context, desiredHeight, Slot.Middle);
- } else {
- throw new IllegalArgumentException("expecting position 0 or 1");
- }
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListInHorizontal.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListInHorizontal.java
deleted file mode 100644
index 2128746..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListInHorizontal.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.os.Handler;
-import android.widget.ArrayAdapter;
-import android.widget.GridView;
-import android.widget.TextView;
-import android.widget.ListView;
-
-import com.android.frameworktest.R;
-
-/**
- * Exercises a list in a horizontal linear layout
- */
-public class ListInHorizontal extends Activity {
- private ListView mListView;
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- setContentView(R.layout.list_in_horizontal);
-
- String values[] = new String[1000];
- for (int i = 0; i < 1000; i++) {
- values[i] = ((Integer) i).toString();
- }
-
- mListView = (ListView) findViewById(R.id.list);
- mListView.setAdapter(new ArrayAdapter<String>(this,
- android.R.layout.simple_list_item_1, values));
-
- }
-
- public ListView getListView() {
- return mListView;
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListInVertical.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListInVertical.java
deleted file mode 100644
index f4c93c8..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListInVertical.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.os.Handler;
-import android.widget.ArrayAdapter;
-import android.widget.GridView;
-import android.widget.TextView;
-import android.widget.ListView;
-
-import com.android.frameworktest.R;
-
-/**
- * Exercises a list in a vertical linear layout
- */
-public class ListInVertical extends Activity {
- private ListView mListView;
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- setContentView(R.layout.list_in_vertical);
-
- String values[] = new String[1000];
- for (int i = 0; i < 1000; i++) {
- values[i] = ((Integer) i).toString();
- }
-
- mListView = (ListView) findViewById(R.id.list);
- mListView.setAdapter(new ArrayAdapter<String>(this,
- android.R.layout.simple_list_item_1, values));
-
- }
-
- public ListView getListView() {
- return mListView;
- }
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListInterleaveFocusables.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListInterleaveFocusables.java
deleted file mode 100644
index e45297e..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListInterleaveFocusables.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.view.View;
- import android.view.ViewGroup;
- import com.google.android.collect.Sets;
- import com.android.frameworktest.util.ListScenario;
- import com.android.frameworktest.util.ListItemFactory;
-
- import java.util.Set;
-
-/**
- * List that interleaves focusable items.
- */
-public class ListInterleaveFocusables extends ListScenario {
-
- private Set<Integer> mFocusablePositions = Sets.newHashSet(1, 3, 6);
-
- @Override
- protected void init(Params params) {
- params.setNumItems(7)
- .setItemScreenSizeFactor(1.0 / 8)
- .setItemsFocusable(true)
- .setMustFillScreen(false);
- }
-
- @Override
- protected View createView(int position, ViewGroup parent, int desiredHeight) {
- if (mFocusablePositions.contains(position)) {
- return ListItemFactory.button(
- position, parent.getContext(), getValueAtPosition(position), desiredHeight);
- } else {
- return super.createView(position, parent, desiredHeight);
- }
- }
-
- @Override
- public int getItemViewType(int position) {
- return mFocusablePositions.contains(position) ? 0 : 1;
- }
-
- @Override
- public int getViewTypeCount() {
- return 2;
- }
-
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListItemFocusableAboveUnfocusable.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListItemFocusableAboveUnfocusable.java
deleted file mode 100644
index e14da5b..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListItemFocusableAboveUnfocusable.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.TextView;
-import com.android.frameworktest.util.ListItemFactory;
-import com.android.frameworktest.util.ListScenario;
-
-/**
- * A list where the items may befocusable, but the second item isn't actually focusabe.
- */
-public class ListItemFocusableAboveUnfocusable extends ListScenario {
-
-
- protected void init(Params params) {
- params.setNumItems(2)
- .setItemsFocusable(true)
- .setItemScreenSizeFactor(0.2)
- .setMustFillScreen(false);
- }
-
- @Override
- protected View createView(int position, ViewGroup parent, int desiredHeight) {
- if (position == 0) {
- return ListItemFactory.button(
- position, parent.getContext(), getValueAtPosition(position), desiredHeight);
- } else {
- return super.createView(position, parent, desiredHeight);
- }
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListItemFocusablesClose.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListItemFocusablesClose.java
deleted file mode 100644
index e20f633..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListItemFocusablesClose.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.util.ListScenario;
-import com.android.frameworktest.util.ListItemFactory;
-import android.view.View;
-import android.view.ViewGroup;
-
-/**
- * Each list item has two focusables that are close enough together that
- * it shouldn't require panning to move focus.
- */
-public class ListItemFocusablesClose extends ListScenario {
-
-
- /**
- * Get the child of a list item.
- * @param listIndex The index of the currently visible items
- * @param index The index of the child.
- */
- public View getChildOfItem(int listIndex, int index) {
- return ((ViewGroup) getListView().getChildAt(listIndex)).getChildAt(index);
-
- }
-
- @Override
- protected void init(Params params) {
- params.setItemsFocusable(true)
- .setNumItems(2)
- .setItemScreenSizeFactor(0.55);
- }
-
-
- @Override
- protected View createView(int position, ViewGroup parent, int desiredHeight) {
- return ListItemFactory.twoButtonsSeparatedByFiller(
- position, parent.getContext(), desiredHeight);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListItemFocusablesFarApart.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListItemFocusablesFarApart.java
deleted file mode 100644
index e974478..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListItemFocusablesFarApart.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.view.View;
-import android.view.ViewGroup;
-import com.android.frameworktest.util.ListItemFactory;
-import com.android.frameworktest.util.ListScenario;
-
-/**
- * A list where each item is tall with buttons that are farther apart than the screen
- * size. We don't want to jump over content off screen to the next button, we need to
- * pan across the intermediate part.
- */
-public class ListItemFocusablesFarApart extends ListScenario {
-
-
- @Override
- protected void init(Params params) {
- params.setItemsFocusable(true)
- .setNumItems(2)
- .setItemScreenSizeFactor(2);
- }
-
- @Override
- protected View createView(int position, ViewGroup parent, int desiredHeight) {
- return ListItemFactory.twoButtonsSeparatedByFiller(
- position, parent.getContext(), desiredHeight);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListItemISVAndButton.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListItemISVAndButton.java
deleted file mode 100644
index d6c11b7..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListItemISVAndButton.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.content.Context;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-import com.android.frameworktest.util.InternalSelectionView;
-import com.android.frameworktest.util.ListScenario;
-
-/**
- * Each item is an internal selection view, a button, and some filler
- */
-public class ListItemISVAndButton extends ListScenario {
-
-
- @Override
- protected void init(Params params) {
- params.setItemScreenSizeFactor(2.0)
- .setNumItems(3)
- .setItemsFocusable(true);
- }
-
- @Override
- protected View createView(int position, ViewGroup parent, int desiredHeight) {
- Context context = parent.getContext();
-
- final LinearLayout ll = new LinearLayout(context);
- ll.setOrientation(LinearLayout.VERTICAL);
-
- final InternalSelectionView isv = new InternalSelectionView(context, 8, "ISV postion " + position);
- isv.setLayoutParams(new LinearLayout.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- desiredHeight - 240));
- ll.addView(isv);
-
- final LinearLayout.LayoutParams buttonLp =
- new LinearLayout.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- 40);
- final Button topButton = new Button(context);
- topButton.setLayoutParams(
- buttonLp);
- topButton.setText("button " + position + ")");
- ll.addView(topButton);
-
- final TextView filler = new TextView(context);
- filler.setLayoutParams(new LinearLayout.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- 200));
- filler.setText("filler");
- ll.addView(filler);
-
-
- return ll;
- }
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListItemsExpandOnSelection.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListItemsExpandOnSelection.java
deleted file mode 100644
index a137116..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListItemsExpandOnSelection.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.content.Context;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AbsListView;
-import android.widget.TextView;
-
-import com.android.frameworktest.util.ListScenario;
-
-/**
- * A list where each item expands by 1.5 when selected.
- */
-public class ListItemsExpandOnSelection extends ListScenario {
-
-
- @Override
- protected void init(Params params) {
- params.setNumItems(10)
- .setItemScreenSizeFactor(1.0/5);
- }
-
-
- @Override
- protected View createView(int position, ViewGroup parent, int desiredHeight) {
- TextView result = new ExpandWhenSelectedView(parent.getContext(), desiredHeight);
- result.setHeight(desiredHeight);
- result.setFocusable(mItemsFocusable);
- result.setText(getValueAtPosition(position));
- final AbsListView.LayoutParams lp = new AbsListView.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.WRAP_CONTENT);
- result.setLayoutParams(lp);
- return result;
- }
-
-
- @Override
- public View convertView(int position, View convertView, ViewGroup parent) {
- ((ExpandWhenSelectedView)convertView).setText(getValueAtPosition(position));
- return convertView;
- }
-
-
- static private class ExpandWhenSelectedView extends TextView {
-
- private final int mDesiredHeight;
-
- public ExpandWhenSelectedView(Context context, int desiredHeight) {
- super(context);
- mDesiredHeight = desiredHeight;
- }
-
- @Override
- public void setSelected(boolean selected) {
- super.setSelected(selected);
- if (selected) {
- setHeight((int) (mDesiredHeight * 1.5));
- } else {
- setHeight(mDesiredHeight);
- }
- }
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListLastItemPartiallyVisible.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListLastItemPartiallyVisible.java
deleted file mode 100644
index 23b76a9..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListLastItemPartiallyVisible.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.util.ListScenario;
-
-/**
- * A list where the very last item is partially visible, but still requires scrolling
- * to bring it into view.
- */
-public class ListLastItemPartiallyVisible extends ListScenario {
-
- protected void init(Params params) {
- params.setNumItems(5)
- .setItemScreenSizeFactor(0.22);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListManagedCursor.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListManagedCursor.java
deleted file mode 100644
index 0cc242f..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListManagedCursor.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.app.ListActivity;
-import android.content.Intent;
-import android.database.Cursor;
-import android.os.Bundle;
-import android.provider.Settings;
-import android.provider.Contacts.People;
-import android.view.View;
-import android.widget.AdapterView;
-import android.widget.ListAdapter;
-import android.widget.SimpleCursorAdapter;
-import android.widget.AdapterView.OnItemClickListener;
-
-
-public class ListManagedCursor extends ListActivity implements OnItemClickListener {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- // Get a cursor with all people
- Cursor c = getContentResolver().query(Settings.System.CONTENT_URI, null, null, null, null);
- startManagingCursor(c);
-
- ListAdapter adapter = new SimpleCursorAdapter(this,
- // Use a template that displays a text view
- android.R.layout.simple_list_item_1,
- // Give the cursor to the list adatper
- c,
- // Map the NAME column in the people database to...
- new String[] {People.NAME} ,
- // The "text1" view defined in the XML template
- new int[] {android.R.id.text1});
- setListAdapter(adapter);
- getListView().setOnItemClickListener(this);
- }
-
- public void onItemClick(AdapterView parent, View view, int position, long id) {
- Intent dummyIntent = new Intent(this, ListSimple.class);
- startActivity(dummyIntent);
- }
-}
-
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfItemsShorterThanScreen.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfItemsShorterThanScreen.java
deleted file mode 100644
index 475ab31..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfItemsShorterThanScreen.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.util.ListScenario;
-
-public class ListOfItemsShorterThanScreen extends ListScenario {
-
- protected void init(Params params) {
- params.setNumItems(5)
- .setItemScreenSizeFactor(1.1 / 4)
- .setItemsFocusable(false);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfItemsTallerThanScreen.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfItemsTallerThanScreen.java
deleted file mode 100644
index 0d70abf..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfItemsTallerThanScreen.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.util.ListScenario;
-
-public class ListOfItemsTallerThanScreen extends ListScenario {
-
-
- protected void init(Params params) {
- params.setNumItems(3)
- .setItemScreenSizeFactor(4.0 / 3)
- .setItemsFocusable(false);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfShortShortTallShortShort.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfShortShortTallShortShort.java
deleted file mode 100644
index 62c5aa7..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfShortShortTallShortShort.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.util.ListScenario;
-
-/**
- * Exposes fading in and out multiple items.
- */
-public class ListOfShortShortTallShortShort extends ListScenario {
-
-
- protected void init(Params params) {
- params.setNumItems(5)
- .setItemScreenSizeFactor(0.1)
- .setFadingEdgeScreenSizeFactor(0.22)
- .setPositionScreenSizeFactorOverride(2, 1.1);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfShortTallShort.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfShortTallShort.java
deleted file mode 100644
index e60dee7..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfShortTallShort.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.util.ListScenario;
-
-/**
- * Two short items separated by one that is taller than the screen.
- */
-public class ListOfShortTallShort extends ListScenario {
-
-
- protected void init(Params params) {
- params.setItemScreenSizeFactor(1.0 / 8)
- .setNumItems(3)
- .setPositionScreenSizeFactorOverride(1, 1.2);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfThinItems.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfThinItems.java
deleted file mode 100644
index d613c9b..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfThinItems.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.util.ListScenario;
-
-public class ListOfThinItems extends ListScenario {
-
- protected void init(Params params) {
-
- final int numItemsOnScreen = getScreenHeight() / 18;
-
- params.setNumItems(numItemsOnScreen + 5)
- .setItemScreenSizeFactor(18.0 / getScreenHeight())
- .setItemsFocusable(false);
- }
-
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfTouchables.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfTouchables.java
deleted file mode 100644
index 0e09190..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListOfTouchables.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-
-import com.android.frameworktest.util.ListScenario;
-
-/**
- * Each list item has two focusables that are close enough together that
- * it shouldn't require panning to move focus.
- */
-public class ListOfTouchables extends ListScenario {
-
-
- @Override
- protected void init(Params params) {
- params.setItemsFocusable(true)
- .setItemScreenSizeFactor(0.2)
- .setNumItems(100);
- }
-
-
- @Override
- protected View createView(int position, ViewGroup parent, int desiredHeight) {
- Button b = new Button(this);
- b.setText("Position " + position);
- b.setId(position);
- return b;
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListRecyclerProfiling.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListRecyclerProfiling.java
deleted file mode 100644
index 3df3b9a..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListRecyclerProfiling.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-import android.widget.ImageButton;
-import android.view.ViewDebug;
-import android.view.View;
-
-import com.android.frameworktest.R;
-
-public class ListRecyclerProfiling extends Activity {
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- setContentView(R.layout.list_recycler_profiling);
-
- String values[] = new String[1000];
- for (int i = 0; i < 1000; i++) {
- values[i] = ((Integer) i).toString();
- }
-
- ListView listView = (ListView) findViewById(R.id.list);
-
- ViewDebug.startRecyclerTracing("SimpleList", listView);
-
- listView.setAdapter(new ArrayAdapter<String>(this,
- android.R.layout.simple_list_item_1, values));
-
- ImageButton stopProfiling = (ImageButton) findViewById(R.id.pause);
- stopProfiling.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- ViewDebug.stopRecyclerTracing();
- }
- });
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListScrollListener.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListScrollListener.java
deleted file mode 100644
index f5e4faf..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListScrollListener.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.app.ListActivity;
-import android.os.Bundle;
-import android.os.Handler;
-import android.view.View;
-import android.widget.AbsListView;
-import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
-import android.widget.TextView;
-
-import com.android.frameworktest.R;
-
-/**
- * Exercises change notification in a list
- */
-public class ListScrollListener extends ListActivity implements AbsListView.OnScrollListener {
- Handler mHandler = new Handler();
- TextView mText;
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- setContentView(R.layout.list_scroll_listener);
-
- String values[] = new String[1000];
- int i=0;
- for(i=0; i<1000; i++) {
- values[i] = ((Integer)i).toString();
- }
-
- mText = (TextView) findViewById(R.id.text);
- setListAdapter(new ArrayAdapter<String>(this,
- android.R.layout.simple_list_item_1, values));
-
-
- getListView().setOnScrollListener(this);
- }
-
- public void onItemSelected(AdapterView parent, View v, int position, long id) {
- mText.setText("Position " + position);
- }
-
- public void onNothingSelected(AdapterView parent) {
- mText.setText("Nothing");
- }
-
- public void onScroll(AbsListView view, int firstCell, int cellCount, int itemCount) {
- int last = firstCell + cellCount - 1;
- mText.setText("Showing " + firstCell + "-" + last + "/" + itemCount);
- }
-
- public void onScrollStateChanged(AbsListView view, int scrollState) {
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListSetSelection.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListSetSelection.java
deleted file mode 100644
index 87888ca..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListSetSelection.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.util.ListScenario;
-import android.view.KeyEvent;
-import android.view.View;
-import android.os.Bundle;
-import android.widget.LinearLayout;
-import android.widget.Button;
-
-/**
- * List of 1,000 items used to test calls to setSelection() in touch mode.
- * Pressing the S key will call setSelection(0) on the list.
- */
-public class ListSetSelection extends ListScenario {
- private Button mButton;
-
- @Override
- protected void init(Params params) {
- params.setStackFromBottom(false)
- .setStartingSelectionPosition(-1)
- .setNumItems(1000)
- .setItemScreenSizeFactor(0.22);
- }
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- mButton = new Button(this);
- mButton.setText("setSelection(0)");
- mButton.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- getListView().setSelection(0);
- }
- });
-
- getListViewContainer().addView(mButton, new LinearLayout.LayoutParams(
- LinearLayout.LayoutParams.FILL_PARENT,
- LinearLayout.LayoutParams.WRAP_CONTENT
- ));
- }
-
- public Button getButton() {
- return mButton;
- }
-
- @Override
- public boolean dispatchKeyEvent(KeyEvent event) {
- if (event.getKeyCode() == KeyEvent.KEYCODE_S) {
- getListView().setSelection(0);
- return true;
- }
-
- return super.dispatchKeyEvent(event);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListSimple.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListSimple.java
deleted file mode 100644
index e7517d6..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListSimple.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.util.ListScenario;
-
-import android.view.View;
-import android.view.ViewGroup;
-import android.os.Bundle;
-import android.widget.TextView;
-
-public class ListSimple extends ListScenario {
- @Override
- protected void init(Params params) {
- params.setStackFromBottom(false)
- .setStartingSelectionPosition(-1)
- .setNumItems(1000)
- .setItemScreenSizeFactor(0.14);
- }
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- getListView().setVerticalScrollBarEnabled(true);
- getListView().setFadingEdgeLength(12);
- getListView().setVerticalFadingEdgeEnabled(true);
- }
-
- @Override
- protected View createView(int position, ViewGroup parent, int desiredHeight) {
- View view = super.createView(position, parent, desiredHeight);
- view.setBackgroundColor(0xFF191919);
- ((TextView) view).setTextSize(16.0f);
- return view;
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListTakeFocusFromSide.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListTakeFocusFromSide.java
deleted file mode 100644
index e576ea2..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListTakeFocusFromSide.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.R;
-
-import android.app.ListActivity;
-import android.content.Context;
-import android.os.Bundle;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.LayoutInflater;
-import android.widget.BaseAdapter;
-import android.widget.TextView;
-
-/**
- * Exercises moving focus into the list from the side
- */
-public class ListTakeFocusFromSide extends ListActivity {
-
-
- private class ThrashListAdapter extends BaseAdapter {
- private LayoutInflater mInflater;
-
- private String[] mTitles = new String[100];
-
- public ThrashListAdapter(Context context) {
- mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- mTitles = new String[100];
-
- int i;
- for (i = 0; i < 100; i++) {
- mTitles[i] = "[" + i + "]";
- }
- }
-
- public int getCount() {
- return mTitles.length;
- }
-
- public Object getItem(int position) {
- return position;
- }
-
- public long getItemId(int position) {
- return position;
- }
-
- public View getView(int position, View convertView, ViewGroup parent) {
- TextView view;
-
- if (convertView == null) {
- view = (TextView) mInflater.inflate(android.R.layout.simple_list_item_1, null);
- } else {
- view = (TextView) convertView;
- }
- view.setText(mTitles[position]);
- return view;
- }
-
- }
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- setContentView(R.layout.list_take_focus_from_side);
- setListAdapter(new ThrashListAdapter(this));
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListThrasher.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListThrasher.java
deleted file mode 100644
index e0b18a2..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListThrasher.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.R;
-
-import android.app.ListActivity;
-import android.content.Context;
-import android.os.Bundle;
-import android.os.Handler;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.LayoutInflater;
-import android.widget.AdapterView;
-import android.widget.BaseAdapter;
-import android.widget.TextView;
-
-import java.util.Random;
-
-/**
- * Exercises change notification in a list
- */
-public class ListThrasher extends ListActivity implements AdapterView.OnItemSelectedListener {
- Handler mHandler = new Handler();
- ThrashListAdapter mAdapter;
- Random mRandomizer = new Random();
- TextView mText;
-
- Runnable mThrash = new Runnable() {
- public void run() {
- mAdapter.bumpVersion();
- mHandler.postDelayed(mThrash, 500);
- }
- };
-
- private class ThrashListAdapter extends BaseAdapter {
- private LayoutInflater mInflater;
-
- /**
- * Our data, part 1.
- */
- private String[] mTitles = new String[100];
-
- /**
- * Our data, part 2.
- */
- private int[] mVersion = new int[100];
-
- public ThrashListAdapter(Context context) {
- mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- mTitles = new String[100];
- mVersion = new int[100];
-
- int i;
- for (i = 0; i < 100; i++) {
- mTitles[i] = "[" + i + "]";
- mVersion[i] = 0;
- }
- }
-
- public int getCount() {
- return mTitles.length;
- }
-
- public Object getItem(int position) {
- return position;
- }
-
- public long getItemId(int position) {
- return position;
- }
-
- public View getView(int position, View convertView, ViewGroup parent) {
- TextView view;
-
- if (convertView == null) {
- view = (TextView) mInflater.inflate(android.R.layout.simple_list_item_1, null);
- } else {
- view = (TextView) convertView;
- }
- view.setText(mTitles[position] + " " + mVersion[position]);
- return view;
- }
-
-
- public void bumpVersion() {
- int position = mRandomizer.nextInt(getCount());
- mVersion[position]++;
- notifyDataSetChanged();
- }
-
-
- }
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- setContentView(R.layout.list_thrasher);
-
- mText = (TextView) findViewById(R.id.text);
- mAdapter = new ThrashListAdapter(this);
- setListAdapter(mAdapter);
-
- mHandler.postDelayed(mThrash, 5000);
-
- getListView().setOnItemSelectedListener(this);
- }
-
- public void onItemSelected(AdapterView parent, View v, int position, long id) {
- mText.setText("Position " + position);
- }
-
- public void onNothingSelected(AdapterView parent) {
- mText.setText("Nothing");
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListTopGravity.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListTopGravity.java
deleted file mode 100644
index 6eb65a9..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListTopGravity.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.view.Gravity;
-
-import com.android.frameworktest.util.ListScenario;
-
-/**
- * Basic top gravity scenario, nothing fancy. Items do not
- * fill the screen
- */
-public class ListTopGravity extends ListScenario {
-
- @Override
- protected void init(Params params) {
- params.setStackFromBottom(false)
- .setStartingSelectionPosition(-1)
- .setMustFillScreen(false)
- .setNumItems(2)
- .setItemScreenSizeFactor(0.22);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListTopGravityMany.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListTopGravityMany.java
deleted file mode 100644
index 8cff8ca..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListTopGravityMany.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.util.ListScenario;
-
-/**
- * Basic top gravity scenario, nothing fancy. There are
- * more items than fit on the screen
- */
-public class ListTopGravityMany extends ListScenario {
-
- @Override
- protected void init(Params params) {
- params.setStackFromBottom(false)
- .setStartingSelectionPosition(-1)
- .setNumItems(10)
- .setItemScreenSizeFactor(0.22);
- }
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListViewHeight.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListViewHeight.java
deleted file mode 100644
index 17222d9..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListViewHeight.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-
-import com.android.frameworktest.R;
-
-public class ListViewHeight extends Activity {
-
- private View mButton1;
- private View mButton2;
- private View mButton3;
-
- private View mOuterLayout;
- private ListView mInnerList;
-
- ArrayAdapter<String> mAdapter;
- private String[] mStrings = {
- "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi" };
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- setContentView(R.layout.linear_layout_listview_height);
-
- mButton1 = findViewById(R.id.button1);
- mButton2 = findViewById(R.id.button2);
- mButton3 = findViewById(R.id.button3);
-
- mOuterLayout = findViewById(R.id.layout);
- mInnerList = (ListView)findViewById(R.id.inner_list);
-
- mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line,
- mStrings);
-
- // Clicking this button will show the list view and set it to a fixed height
- // If you then hide the views, there is no problem.
- mButton1.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- // set listview to fixed height
- ViewGroup.MarginLayoutParams lp;
- lp = (ViewGroup.MarginLayoutParams) mInnerList.getLayoutParams();
- lp.height = 200;
- mInnerList.setLayoutParams(lp);
- // enable list adapter
- mInnerList.setAdapter(mAdapter);
- // and show it
- mOuterLayout.setVisibility(View.VISIBLE);
- }
- });
-
- // Clicking this button will show the list view and set it fill_parent height
- // If you then hide the views, there is an NPE when calculating the ListView height.
- mButton2.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- // set listview to fill screen
- ViewGroup.MarginLayoutParams lp;
- lp = (ViewGroup.MarginLayoutParams) mInnerList.getLayoutParams();
- lp.height = lp.FILL_PARENT;
- mInnerList.setLayoutParams(lp);
- // enable list adapter
- mInnerList.setAdapter(mAdapter);
- // and show it
- mOuterLayout.setVisibility(View.VISIBLE);
- }
- });
-
- // Clicking this button will remove the list adapter and hide the outer enclosing view.
- // We have to climb all the way to the top because the bug (not checking visibility)
- // only occurs at the very outer loop of ViewRoot.performTraversals and in the case of
- // an Activity, this means you have to crawl all the way out to the root view.
- // In the search manager, it's sufficient to simply show/hide the outer search manager
- // view to trigger the same bug.
- mButton3.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- mInnerList.setAdapter(null);
- // hide listview's owner
- // as it turns out, the owner doesn't take us high enough
- // because our activity includes a title bar, thus another layer
- View parent = (View) mOuterLayout.getParent(); // FrameLayout (app container)
- View grandpa = (View) parent.getParent(); // LinearLayout (title+app)
- View great = (View) grandpa.getParent(); // PhoneWindow.DecorView
- great.setVisibility(View.GONE);
- }
- });
- }
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithDisappearingItemBug.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithDisappearingItemBug.java
deleted file mode 100644
index 3a968af..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithDisappearingItemBug.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.R;
-
-import android.app.ListActivity;
-import android.database.Cursor;
-import android.os.Bundle;
-import android.provider.Contacts.People;
-import android.view.animation.AlphaAnimation;
-import android.view.animation.Animation;
-import android.view.animation.AnimationSet;
-import android.view.animation.LayoutAnimationController;
-import android.view.animation.TranslateAnimation;
-import android.widget.ListAdapter;
-import android.widget.ListView;
-import android.widget.SimpleCursorAdapter;
-import android.widget.Toast;
-
-/**
- * See 1080989. You need some contacts for this adapter.
- */
-public class ListWithDisappearingItemBug extends ListActivity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- Toast.makeText(this, "Make sure you rotate screen to see bug", Toast.LENGTH_LONG).show();
-
- // Get a cursor with all people
- Cursor c = getContentResolver().query(People.CONTENT_URI, null, null, null, null);
- startManagingCursor(c);
-
- ListAdapter adapter = new SimpleCursorAdapter(this,
- // Use a template that displays a text view
- R.layout.list_with_disappearing_item_bug_item,
- // Give the cursor to the list adatper
- c,
- // Map the NAME column in the people database to...
- new String[] {People.NAME} ,
- // The "text1" view defined in the XML template
- new int[] {R.id.text1});
- setListAdapter(adapter);
-
- AnimationSet set = new AnimationSet(true);
-
- Animation animation = new AlphaAnimation(0.0f, 1.0f);
- animation.setDuration(50);
- set.addAnimation(animation);
-
- animation = new TranslateAnimation(
- Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, 0.0f,
- Animation.RELATIVE_TO_SELF, -1.0f,Animation.RELATIVE_TO_SELF, 0.0f
- );
- animation.setDuration(100);
- set.addAnimation(animation);
-
- LayoutAnimationController controller =
- new LayoutAnimationController(set, 0.5f);
- ListView listView = getListView();
- listView.setLayoutAnimation(controller);
- }
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithEditTextHeader.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithEditTextHeader.java
deleted file mode 100644
index b5cac2a..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithEditTextHeader.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.util.ListScenario;
-
-/**
- * A list view with a single edit text in a header.
- */
-public class ListWithEditTextHeader extends ListScenario {
-
- @Override
- protected void init(Params params) {
- params.setHeaderViewCount(1)
- .setHeaderFocusable(true)
- .setItemsFocusable(true)
- .setNumItems(6)
- .setItemScreenSizeFactor(0.2);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithEmptyView.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithEmptyView.java
deleted file mode 100644
index 6f43551..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithEmptyView.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.R;
-
-import android.app.ListActivity;
-import android.content.Context;
-import android.os.Bundle;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.ArrayAdapter;
-
-
-/**
- * Tests using an empty view with a list */
-public class ListWithEmptyView extends ListActivity {
-
- private class CarefulAdapter<T> extends ArrayAdapter<T> {
-
- public CarefulAdapter(Context context, int textViewResourceId) {
- super(context, textViewResourceId);
- // TODO Auto-generated constructor stub
- }
-
- @Override
- public long getItemId(int position) {
- if (position < 0 || position >= this.getCount()) {
- throw new ArrayIndexOutOfBoundsException();
- }
- return super.getItemId(position);
- }
-
-
- }
-
- public static final int MENU_ADD = Menu.FIRST + 1;
- public static final int MENU_REMOVE = Menu.FIRST + 2;
-
- private CarefulAdapter<String> mAdapter;
-
- private int mNextItem = 0;
-
- private View mEmptyView;
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- mAdapter = new CarefulAdapter<String>(this,
- android.R.layout.simple_list_item_1);
- setContentView(R.layout.list_with_empty_view);
- setListAdapter(mAdapter);
-
- mEmptyView = findViewById(R.id.empty);
- getListView().setEmptyView(mEmptyView);
- }
-
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- super.onCreateOptionsMenu(menu);
- menu.add(0, MENU_ADD, 0, R.string.menu_add)
- .setIcon(android.R.drawable.ic_menu_add);
- menu.add(0, MENU_REMOVE, 0, R.string.menu_remove)
- .setIcon(android.R.drawable.ic_menu_delete);
- return true;
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case MENU_ADD:
- String str = "Item + " + mNextItem++;
- mAdapter.add(str);
- return true;
- case MENU_REMOVE:
- if (mAdapter.getCount() > 0) {
- mAdapter.remove(mAdapter.getItem(0));
- }
- return true;
- }
-
- return super.onOptionsItemSelected(item);
- }
-
- public View getEmptyView() {
- return mEmptyView;
- }
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithFirstScreenUnSelectable.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithFirstScreenUnSelectable.java
deleted file mode 100644
index 4ad72fd..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithFirstScreenUnSelectable.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2008 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.util.ListScenario;
-
-/**
- * The first item is unselectable, and takes up the whole screen.
- */
-public class ListWithFirstScreenUnSelectable extends ListScenario {
-
- @Override
- protected void init(Params params) {
- params.setItemScreenSizeFactor(1.2)
- .setNumItems(2)
- .setPositionsUnselectable(0);
-
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithHeaders.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithHeaders.java
deleted file mode 100644
index d523094..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithHeaders.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.util.ListScenario;
-
-import android.os.Bundle;
-import android.widget.Button;
-import android.widget.ListAdapter;
-import android.widget.ListView;
-
-public class ListWithHeaders extends ListScenario {
- @Override
- protected void init(Params params) {
- params.setStackFromBottom(false)
- .setStartingSelectionPosition(-1)
- .setNumItems(24)
- .setItemScreenSizeFactor(0.14);
- }
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- final ListView listView = getListView();
- listView.setItemsCanFocus(true);
-
- for (int i = 0; i < 12; i++) {
- Button header = new Button(this);
- header.setText("Header View");
- listView.addHeaderView(header);
- }
-
- for (int i = 0; i < 12; i++) {
- Button footer = new Button(this);
- footer.setText("Footer View");
- listView.addFooterView(footer);
- }
-
- final ListAdapter adapter = listView.getAdapter();
- listView.setAdapter(adapter);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithNoFadingEdge.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithNoFadingEdge.java
deleted file mode 100644
index ecfc793..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithNoFadingEdge.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.util.ListScenario;
-
-public class ListWithNoFadingEdge extends ListScenario {
-
- protected void init(Params params) {
- params.setFadingEdgeScreenSizeFactor(0.0)
- .setNumItems(10)
- .setItemScreenSizeFactor(0.2);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithOffScreenNextSelectable.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithOffScreenNextSelectable.java
deleted file mode 100644
index 71525c0..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithOffScreenNextSelectable.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.util.ListScenario;
-
-/**
- * Pressing down from position 0 requires looking past positions 1, 2 and 3 to
- * an offscreen item to know that it is the next selectable.
- */
-public class ListWithOffScreenNextSelectable extends ListScenario {
-
-
- protected void init(Params params) {
- params.setItemsFocusable(false)
- .setNumItems(5)
- .setItemScreenSizeFactor(0.25)
- .setPositionUnselectable(1)
- .setPositionUnselectable(2)
- .setPositionUnselectable(3);
- }
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithOnItemSelectedAction.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithOnItemSelectedAction.java
deleted file mode 100644
index 2683040..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithOnItemSelectedAction.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.widget.TextView;
-import com.android.frameworktest.util.ListScenario;
-
-/**
- * The header text view echos the value of the selected item by using (indirectly)
- * the {@link android.widget.AdapterView.OnItemSelectedListener}.
- */
-public class ListWithOnItemSelectedAction extends ListScenario {
- protected void init(Params params) {
- params.setNumItems(8)
- .setItemScreenSizeFactor(0.2)
- .includeHeaderAboveList(true);
-
- }
-
- @Override
- protected void positionSelected(int positon) {
- if (positon != getListView().getSelectedItemPosition()) {
- throw new IllegalStateException("something is fishy... the selected postion does not " +
- "match what the list reports.");
- }
- setHeaderValue(
- ((TextView) getListView().getSelectedView()).getText().toString());
-
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithScreenOfNoSelectables.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithScreenOfNoSelectables.java
deleted file mode 100644
index a2f3dc2..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithScreenOfNoSelectables.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.util.ListScenario;
-
-public class ListWithScreenOfNoSelectables extends ListScenario {
-
- protected void init(Params params) {
- params.setNumItems(10)
- .setItemScreenSizeFactor(0.2)
- .setPositionsUnselectable(1, 2, 3, 4, 5, 6, 7, 8, 9);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithSeparators.java b/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithSeparators.java
deleted file mode 100644
index 71ce4e7..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/listview/ListWithSeparators.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.util.ListScenario;
-
-/**
- * Basic separator scenario, nothing fancy.
- */
-public class ListWithSeparators extends ListScenario {
-
- protected void init(Params params) {
- params.setItemsFocusable(false)
- .setNumItems(5)
- .setItemScreenSizeFactor(0.22)
- .setPositionUnselectable(0)
- .setPositionUnselectable(2);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/menus/ListContextMenu.java b/tests/FrameworkTest/src/com/android/frameworktest/menus/ListContextMenu.java
deleted file mode 100644
index 13c7552..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/menus/ListContextMenu.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.menus;
-
-import com.android.frameworktest.R;
-
-import android.app.ListActivity;
-import android.content.Context;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.ContextMenu;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.SubMenu;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.LayoutInflater;
-import android.view.ContextMenu.ContextMenuInfo;
-import android.widget.AdapterView;
-import android.widget.BaseAdapter;
-import android.widget.TextView;
-
-/**
- * Exercises context menus in lists
- */
-public class ListContextMenu extends ListActivity implements View.OnCreateContextMenuListener
-{
- static final String TAG = "ListContextMenu";
-
- ThrashListAdapter mAdapter;
-
- private class ThrashListAdapter extends BaseAdapter {
- private LayoutInflater mInflater;
-
- private String[] mTitles = new String[100];
-
- public ThrashListAdapter(Context context) {
- mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- mTitles = new String[100];
-
- int i;
- for (i=0; i<100; i++) {
- mTitles[i] = "[" + i + "]";
- }
- }
-
- public int getCount() {
- return mTitles.length;
- }
-
- public Object getItem(int position) {
- return position;
- }
-
- public long getItemId(int position) {
- return position;
- }
-
- public View getView(int position, View convertView, ViewGroup parent) {
- TextView view;
-
- if (convertView == null) {
- view = (TextView) mInflater.inflate(android.R.layout.simple_list_item_1, null);
- } else {
- view = (TextView) convertView;
- }
- view.setText("List item " + mTitles[position]);
- return view;
- }
-
- }
-
- @Override
- public void onCreate(Bundle icicle)
- {
- super.onCreate(icicle);
-
- mAdapter = new ThrashListAdapter(this);
- getListView().setOnCreateContextMenuListener(this);
- setListAdapter(mAdapter);
- }
-
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- MenuItem item = menu.add(0, 0, 0, "Really long menu item name");
- item.setTitleCondensed("Long name");
- item.setIcon(R.drawable.black_square);
-
- SubMenu sm = menu.addSubMenu(0, 0, 0, "The 2nd item, a sub menu").setIcon(R.drawable.black_square_stretchable);
- item = sm.getItem();
- item.setTitleCondensed("Sub menu");
- sm.add(1, 0, 0, "Subitem 1");
- sm.add(1, 0, 0, "Subitem 2");
- sm.add(1, 0, 0, "Subitem 3");
- sm.setGroupCheckable(1, true, true);
- menu.add(0, 0, 0, "Item 3");
- menu.add(0, 0, 0, "Item 4");
- menu.add(0, 0, 0, "Item 5");
- menu.add(0, 0, 0, "Item 6");
- menu.add(0, 0, 0, "Item 7");
- menu.add(0, 0, 0, "Item 8");
- menu.add(0, 0, 0, "Item 9");
- sm = menu.addSubMenu(0, 0, 0, "Item 10 SM");
- sm.add(0, 0, 0, "Subitem 1");
- sm.add(0, 0, 0, "Subitem 2");
- sm.add(0, 0, 0, "Subitem 3");
- sm.add(0, 0, 0, "Subitem 4");
- sm.add(0, 0, 0, "Subitem 5");
- sm.add(0, 0, 0, "Subitem 6");
- sm.add(0, 0, 0, "Subitem 7");
- sm.add(0, 0, 0, "Subitem 8");
-
- return true;
- }
-
- public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
-
- AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo;
-
- String text = ((TextView) info.targetView).getText().toString();
- if (text.contains("[0]")) {
- menu.setHeaderTitle("This is a test of the title and the icon").setHeaderIcon(
- android.R.drawable.sym_def_app_icon);
- } else if (text.contains("[1]")) {
- menu.setHeaderTitle("This is a test of just the title");
- } else {
- TextView textView = new TextView(this);
- textView.setText("This is a test of a custom View");
- menu.setHeaderView(textView);
- }
-
- menu.add(0, 0, 0, "Test 1");
- SubMenu sm = menu.addSubMenu(0, 0, 0, "Test 1.5 SM");
- sm.add(0, 0, 0, "CM Subitem 1");
- sm.add(0, 0, 0, "CM Subitem 2");
- sm.add(0, 0, 0, "CM Subitem 3");
- menu.add(0, 0, 0, "Test 2");
- menu.add(0, 0, 0, "Test 3");
- menu.add(0, 0, 0, "Test 4");
- menu.add(0, 0, 0, "Test 5");
- menu.add(0, 0, 0, "Test 6");
- menu.add(0, 0, 0, "Test 7");
- menu.add(0, 0, 0, "Test 8");
- menu.add(0, 0, 0, "Test 9");
- menu.add(0, 0, 0, "Test 10");
- menu.add(0, 0, 0, "Test 11");
- menu.add(0, 0, 0, "Test 12");
- menu.add(0, 0, 0, "Test 13");
- menu.add(0, 0, 0, "Test 14");
- menu.add(0, 0, 0, "Test 15");
- menu.add(0, 0, 0, "Test 16");
- menu.add(0, 0, 0, "Test 17");
- menu.add(0, 0, 0, "Test 18");
- menu.add(0, 0, 0, "Test 19");
- menu.add(0, 0, 0, "Test 20");
- menu.add(0, 0, 0, "Test 21");
- menu.add(0, 0, 0, "Test 22");
- menu.add(0, 0, 0, "Test 23");
- menu.add(0, 0, 0, "Test 24");
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- Log.i(TAG, "Options item " + item.toString() + " selected.");
-
- return super.onOptionsItemSelected(item);
- }
-
- @Override
- public void onOptionsMenuClosed(Menu menu) {
- Log.i(TAG, "Options menu closed");
- }
-
- @Override
- public boolean onContextItemSelected(MenuItem item) {
- Log.i(TAG, "Context item " + item.toString() + " selected.");
-
- return super.onContextItemSelected(item);
- }
-
- @Override
- public void onContextMenuClosed(Menu menu) {
- Log.i(TAG, "Context menu closed");
- }
-
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/menus/MenuLayout.java b/tests/FrameworkTest/src/com/android/frameworktest/menus/MenuLayout.java
deleted file mode 100644
index 6ed6433..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/menus/MenuLayout.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy
- * of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations
- * under the License.
- */
-
-package com.android.frameworktest.menus;
-
-import com.android.frameworktest.menus.MenuScenario.Params;
-
-import android.os.Bundle;
-import android.view.Menu;
-import android.widget.Button;
-
-public class MenuLayout extends MenuScenario {
- private static final String LONG_TITLE = "Really really really really really really really really really really long title";
- private static final String SHORT_TITLE = "Item";
-
- private Button mButton;
-
- @Override
- protected void onInitParams(Params params) {
- super.onInitParams(params);
- params
- .setNumItems(2)
- .setItemTitle(0, LONG_TITLE)
- .setItemTitle(1, LONG_TITLE);
- }
-
- @Override
- public boolean onPrepareOptionsMenu(Menu menu) {
-
- /*
- * This activity is meant to try a bunch of different menu layouts. So,
- * we recreate the menu every time it is prepared.
- */
- menu.clear();
- onCreateOptionsMenu(menu);
-
- return true;
- }
-
- public Button getButton() {
- return mButton;
- }
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- mButton = new Button(this);
- setContentView(mButton);
- }
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/menus/MenuLayoutLandscape.java b/tests/FrameworkTest/src/com/android/frameworktest/menus/MenuLayoutLandscape.java
deleted file mode 100644
index 8a98610..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/menus/MenuLayoutLandscape.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy
- * of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations
- * under the License.
- */
-
-package com.android.frameworktest.menus;
-
-/**
- * An activity (inherits from MenuLayout) that shows in landscape.
- */
-public class MenuLayoutLandscape extends MenuLayout {
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/menus/MenuLayoutPortrait.java b/tests/FrameworkTest/src/com/android/frameworktest/menus/MenuLayoutPortrait.java
deleted file mode 100644
index 71e7e49..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/menus/MenuLayoutPortrait.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy
- * of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations
- * under the License.
- */
-
-package com.android.frameworktest.menus;
-
-/**
- * An activity (inherits from MenuLayout) that shows in portrait.
- */
-public class MenuLayoutPortrait extends MenuLayout {
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/menus/MenuScenario.java b/tests/FrameworkTest/src/com/android/frameworktest/menus/MenuScenario.java
deleted file mode 100644
index 4df9b1b..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/menus/MenuScenario.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.menus;
-
-import com.android.frameworktest.util.ListScenario;
-import com.android.internal.view.menu.MenuBuilder;
-import com.android.internal.view.menu.MenuBuilder.MenuAdapter;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.util.SparseArray;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-
-/**
- * Utility base class for creating various Menu scenarios. Configurable by the
- * number of menu items. Used @link {@link ListScenario} as a reference.
- */
-public class MenuScenario extends Activity implements MenuItem.OnMenuItemClickListener {
- private Params mParams = new Params();
- private Menu mMenu;
- private MenuItem[] mItems;
- private boolean[] mWasItemClicked;
- private MenuAdapter[] mMenuAdapters = new MenuAdapter[MenuBuilder.NUM_TYPES];
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- dispatchInitParams();
- }
-
- private void dispatchInitParams() {
- onInitParams(mParams);
- onParamsChanged();
- }
-
- public void setParams(Params params) {
- mParams = params;
- onParamsChanged();
- }
-
- public void onParamsChanged() {
- mItems = new MenuItem[mParams.numItems];
- mWasItemClicked = new boolean[mParams.numItems];
- }
-
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Safe to hold on to
- mMenu = menu;
-
- if (!mParams.shouldShowMenu) return false;
-
- MenuItem item;
- for (int i = 0; i < mParams.numItems; i++) {
- if ((item = onAddMenuItem(menu, i)) == null) {
- // Add a default item for this position if the subclasses
- // haven't
- CharSequence givenTitle = mParams.itemTitles.get(i);
- item = menu.add(0, 0, 0, (givenTitle != null) ? givenTitle : ("Item " + i));
- }
-
- if (item != null) {
- mItems[i] = item;
-
- if (mParams.listenForClicks) {
- item.setOnMenuItemClickListener(this);
- }
- }
-
- }
-
- return true;
- }
-
- @Override
- public boolean onPrepareOptionsMenu(Menu menu) {
- // Safe to hold on to
- mMenu = menu;
-
- return mParams.shouldShowMenu;
- }
-
- /**
- * Override this to add an item to the menu.
- *
- * @param itemPosition The position of the item to add (only for your
- * reference).
- * @return The item that was added to the menu, or null if nothing was
- * added.
- */
- protected MenuItem onAddMenuItem(Menu menu, int itemPosition) {
- return null;
- }
-
- /**
- * Override this to set the parameters for the scenario. Call through to super first.
- *
- * @param params
- */
- protected void onInitParams(Params params) {
- }
-
- public Menu getMenu() {
- return mMenu;
- }
-
- public boolean onMenuItemClick(MenuItem item) {
- final int position = findItemPosition(item);
- if (position < 0) return false;
-
- mWasItemClicked[position] = true;
-
- return true;
- }
-
- public boolean wasItemClicked(int position) {
- return mWasItemClicked[position];
- }
-
- /**
- * Finds the position for a given Item.
- *
- * @param item The item to find.
- * @return The position, or -1 if not found.
- */
- public int findItemPosition(MenuItem item) {
- // Could create reverse mapping, but optimizations aren't important (yet :P)
- for (int i = 0; i < mParams.numItems; i++) {
- if (mItems[i] == item) return i;
- }
-
- return -1;
- }
-
- /**
- * @see MenuBuilder#getMenuAdapter(int)
- */
- public MenuAdapter getMenuAdapter(int menuType) {
- if (mMenuAdapters[menuType] == null) {
- mMenuAdapters[menuType] = ((MenuBuilder) mMenu).getMenuAdapter(menuType);
- }
-
- return mMenuAdapters[menuType];
- }
-
- /**
- * Gets a menu view. Call this after you're sure it has been shown,
- * otherwise it may not have the proper layout_* attributes set.
- *
- * @param menuType The type of menu.
- * @return The MenuView for that type.
- */
- public View getMenuView(int menuType) {
- return ((MenuBuilder) mMenu).getMenuView(menuType, null);
- }
-
- /**
- * Gets the menu item view for a given position.
- *
- * @param menuType The type of menu.
- * @param position The position of the item.
- * @return The menu item view for the given item in the given menu type.
- */
- public View getItemView(int menuType, int position) {
- return getMenuAdapter(menuType).getView(position, null, null);
- }
-
- public static class Params {
- // Using as data structure, so no m prefix
- private boolean shouldShowMenu = true;
- private int numItems = 10;
- private boolean listenForClicks = true;
- private SparseArray<CharSequence> itemTitles = new SparseArray<CharSequence>();
-
- public Params setShouldShowMenu(boolean shouldShowMenu) {
- this.shouldShowMenu = shouldShowMenu;
- return this;
- }
-
- public Params setNumItems(int numItems) {
- this.numItems = numItems;
- return this;
- }
-
- public Params setListenForClicks(boolean listenForClicks) {
- this.listenForClicks = listenForClicks;
- return this;
- }
-
- public Params setItemTitle(int itemPos, CharSequence title) {
- itemTitles.put(itemPos, title);
- return this;
- }
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/menus/MenuWith1Item.java b/tests/FrameworkTest/src/com/android/frameworktest/menus/MenuWith1Item.java
deleted file mode 100644
index d7468f5..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/menus/MenuWith1Item.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.menus;
-
-import android.os.Bundle;
-import android.widget.Button;
-
-public class MenuWith1Item extends MenuScenario {
-
- private Button mButton;
-
- @Override
- protected void onInitParams(Params params) {
- super.onInitParams(params);
-
- params.setNumItems(1);
- }
-
- public Button getButton() {
- return mButton;
- }
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- mButton = new Button(this);
- setContentView(mButton);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/performance/InvalidateCycle.java b/tests/FrameworkTest/src/com/android/frameworktest/performance/InvalidateCycle.java
deleted file mode 100644
index 8663f06..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/performance/InvalidateCycle.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package com.android.frameworktest.performance;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.os.Debug;
-import android.os.Handler;
-import android.view.View;
-import android.view.ViewGroup;
-import android.content.Context;
-import android.graphics.Canvas;
-
-public class InvalidateCycle extends Activity {
- private boolean mStartProfiling;
- private InvalidateCycle.AutoInvalidateView mView;
-
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- mView = new AutoInvalidateView(this);
- mView.setLayoutParams(new ViewGroup.LayoutParams(16, 16));
- setContentView(mView);
-
- new Handler().postDelayed(new Runnable() {
- public void run() {
- mStartProfiling = true;
- android.util.Log.d("Performance", "Profiling started");
- Debug.startMethodTracing("invalidateCycle");
- mView.invalidate();
- }
- }, 15000);
- }
-
- private class AutoInvalidateView extends View {
- private boolean mFirstDraw;
-
- public AutoInvalidateView(Context context) {
- super(context);
- }
-
- protected void onDraw(Canvas canvas) {
- if (mStartProfiling && !mFirstDraw) {
- Debug.stopMethodTracing();
- android.util.Log.d("Performance", "Profiling ended");
- mFirstDraw = true;
- }
- canvas.drawColor(0xFFFF0000);
- }
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/scroll/ButtonAboveTallInternalSelectionView.java b/tests/FrameworkTest/src/com/android/frameworktest/scroll/ButtonAboveTallInternalSelectionView.java
deleted file mode 100644
index 986b800..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/scroll/ButtonAboveTallInternalSelectionView.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.scroll;
-
-import com.android.frameworktest.util.InternalSelectionView;
-import com.android.frameworktest.util.ScrollViewScenario;
-
-import android.widget.Button;
-
-/**
- * A button above a tall internal selection view, wrapped in a scroll view.
- */
-public class ButtonAboveTallInternalSelectionView extends ScrollViewScenario {
-
- private final int mNumRowsInIsv = 5;
-
-
- public Button getButtonAbove() {
- return getContentChildAt(0);
- }
-
- public InternalSelectionView getIsv() {
- return getContentChildAt(1);
- }
-
-
- protected void init(Params params) {
- params.addButton("howdy", 0.1f)
- .addInternalSelectionView(mNumRowsInIsv, 1.1f)
- .addButton("below", 0.1f);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/scroll/ButtonsWithTallTextViewInBetween.java b/tests/FrameworkTest/src/com/android/frameworktest/scroll/ButtonsWithTallTextViewInBetween.java
deleted file mode 100644
index ed098aa..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/scroll/ButtonsWithTallTextViewInBetween.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.scroll;
-
-import com.android.frameworktest.util.ScrollViewScenario;
-
-import android.widget.Button;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-/**
- * Two buttons sandwiching a tall text view (good for testing panning across
- * before getting to next button).
- */
-public class ButtonsWithTallTextViewInBetween extends ScrollViewScenario {
-
- public Button getTopButton() {
- return getContentChildAt(0);
- }
-
- public TextView getMiddleFiller() {
- return getContentChildAt(1);
- }
-
- public Button getBottomButton() {
- LinearLayout ll = getContentChildAt(2);
- return (Button) ll.getChildAt(0);
- }
-
- protected void init(Params params) {
-
- params.addButton("top button", 0.2f)
- .addTextView("middle filler", 1.51f)
- .addVerticalLLOfButtons("bottom", 1, 0.2f);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/scroll/RequestRectangleVisible.java b/tests/FrameworkTest/src/com/android/frameworktest/scroll/RequestRectangleVisible.java
deleted file mode 100644
index affd3c7..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/scroll/RequestRectangleVisible.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.scroll;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.graphics.Rect;
-import android.view.View;
-import android.widget.ScrollView;
-import android.widget.TextView;
-
-/**
- * A screen with some scenarios that exercise {@link ScrollView}'s implementation
- * of {@link android.view.ViewGroup#requestChildRectangleOnScreen}:
- * <li>Scrolling to something off screen (from top and from bottom)
- * <li>Scrolling to bring something that is larger than the screen on screen
- * (from top and from bottom).
- */
-public class RequestRectangleVisible extends Activity {
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- setContentView(R.layout.scroll_to_rectangle);
-
- final Rect rect = new Rect();
- final View childToMakeVisible = findViewById(R.id.childToMakeVisible);
-
- final TextView topBlob = (TextView) findViewById(R.id.topBlob);
- final TextView bottomBlob = (TextView) findViewById(R.id.bottomBlob);
-
- // estimate to get blobs larger than screen
- int screenHeight = getWindowManager().getDefaultDisplay().getHeight();
- int numLinesForScreen = screenHeight / 18;
-
- for (int i = 0; i < numLinesForScreen; i++) {
- topBlob.append(i + " another line in the blob\n");
- bottomBlob.append(i + " another line in the blob\n");
- }
-
- findViewById(R.id.scrollToRectFromTop).setOnClickListener(new View.OnClickListener() {
-
- public void onClick(View v) {
- rect.set(0, 0, childToMakeVisible.getLeft(), childToMakeVisible.getHeight());
- childToMakeVisible.requestRectangleOnScreen(rect, true);
- }
- });
-
- findViewById(R.id.scrollToRectFromTop2).setOnClickListener(new View.OnClickListener() {
-
- public void onClick(View v) {
- rect.set(0, 0, topBlob.getWidth(), topBlob.getHeight());
- topBlob.requestRectangleOnScreen(rect, true);
- }
- });
-
- findViewById(R.id.scrollToRectFromBottom).setOnClickListener(new View.OnClickListener() {
-
- public void onClick(View v) {
- rect.set(0, 0, childToMakeVisible.getLeft(), childToMakeVisible.getHeight());
- childToMakeVisible.requestRectangleOnScreen(rect, true);
- }
- });
-
- findViewById(R.id.scrollToRectFromBottom2).setOnClickListener(new View.OnClickListener() {
-
- public void onClick(View v) {
- rect.set(0, 0, bottomBlob.getWidth(), bottomBlob.getHeight());
- bottomBlob.requestRectangleOnScreen(rect, true);
- }
- });
-
- }
-
-
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/scroll/RequestRectangleVisibleWithInternalScroll.java b/tests/FrameworkTest/src/com/android/frameworktest/scroll/RequestRectangleVisibleWithInternalScroll.java
deleted file mode 100644
index 0a8dc30..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/scroll/RequestRectangleVisibleWithInternalScroll.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.scroll;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.widget.EditText;
-import android.widget.TextView;
-import android.widget.Button;
-import android.view.View;
-import android.graphics.Rect;
-
-public class RequestRectangleVisibleWithInternalScroll extends Activity {
-
- private int scrollYofBlob = 52;
-
- private TextView mTextBlob;
- private Button mScrollToBlob;
-
-
- public int getScrollYofBlob() {
- return scrollYofBlob;
- }
-
-
- public TextView getTextBlob() {
- return mTextBlob;
- }
-
-
- public Button getScrollToBlob() {
- return mScrollToBlob;
- }
-
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- setContentView(R.layout.scroll_to_rect_with_internal_scroll);
-
- mTextBlob = (TextView) findViewById(R.id.blob);
- mTextBlob.scrollBy(0, scrollYofBlob);
-
-
- mScrollToBlob = (Button) findViewById(R.id.scrollToBlob);
- mScrollToBlob.setOnClickListener(new View.OnClickListener() {
-
- public void onClick(View v) {
-
- // the rect we want to make visible is offset to match
- // the internal scroll
- Rect rect = new Rect();
- rect.set(0, 0, 0, mTextBlob.getHeight());
- rect.offset(0, mTextBlob.getScrollY());
- mTextBlob.requestRectangleOnScreen(rect);
- }
- });
- }
-
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/scroll/ScrollViewButtonsAndLabels.java b/tests/FrameworkTest/src/com/android/frameworktest/scroll/ScrollViewButtonsAndLabels.java
deleted file mode 100644
index 4763ab1..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/scroll/ScrollViewButtonsAndLabels.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.scroll;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.widget.LinearLayout;
-import android.widget.ScrollView;
-import android.widget.TextView;
-import android.widget.Button;
-
-
-/**
- * Basic scroll view example
- */
-public class ScrollViewButtonsAndLabels extends Activity {
-
- private ScrollView mScrollView;
- private LinearLayout mLinearLayout;
-
- private int mNumGroups = 10;
-
-
- public ScrollView getScrollView() {
- return mScrollView;
- }
-
- public LinearLayout getLinearLayout() {
- return mLinearLayout;
- }
-
- public int getNumButtons() {
- return mNumGroups;
- }
-
- public Button getButton(int groupNum) {
- if (groupNum > mNumGroups) {
- throw new IllegalArgumentException("groupNum > " + mNumGroups);
- }
- return (Button) mLinearLayout.getChildAt(2*groupNum);
- }
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.scrollview_linear_layout);
-
-
- // estimated ratio to get enough buttons so a couple are off screen
- int screenHeight = getWindowManager().getDefaultDisplay().getHeight();
- mNumGroups = screenHeight / 30;
-
- mScrollView = (ScrollView) findViewById(R.id.scrollView);
- mLinearLayout = (LinearLayout) findViewById(R.id.layout);
-
- LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
- LinearLayout.LayoutParams.FILL_PARENT,
- LinearLayout.LayoutParams.WRAP_CONTENT
- );
-
- for (int i = 0; i < mNumGroups; i++) {
- // want button to be first and last
- if (i > 0) {
- TextView textView = new TextView(this);
- textView.setText("Text View " + i);
- mLinearLayout.addView(textView, p);
- }
-
- Button button = new Button(this);
- button.setText("Button " + (i + 1));
- mLinearLayout.addView(button, p);
- }
- }
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/scroll/ShortButtons.java b/tests/FrameworkTest/src/com/android/frameworktest/scroll/ShortButtons.java
deleted file mode 100644
index b903382..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/scroll/ShortButtons.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.scroll;
-
-import com.android.frameworktest.util.ScrollViewScenario;
-
-import android.widget.Button;
-import android.widget.LinearLayout;
-
-/**
- * A series of short buttons, some of which are embedded within another
- * layout.
- */
-public class ShortButtons extends ScrollViewScenario {
-
- private final int mNumButtons = 10;
- protected final float mButtonHeightFactor = 0.2f;
-
- public int getNumButtons() {
- return mNumButtons;
- }
-
- public Button getButtonAt(int index) {
- if (index < 3) {
- return getContentChildAt(index);
- } else {
- LinearLayout ll = getContentChildAt(3);
- return (Button) ll.getChildAt(index - 3);
- }
- }
-
- @Override
- protected void init(Params params) {
- final int numButtonsInSubLayout = getNumButtons() - 3;
- params.addButtons(3, "top-level", mButtonHeightFactor)
- .addVerticalLLOfButtons("embedded",
- numButtonsInSubLayout,
- numButtonsInSubLayout * mButtonHeightFactor);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/scroll/TallTextAboveButton.java b/tests/FrameworkTest/src/com/android/frameworktest/scroll/TallTextAboveButton.java
deleted file mode 100644
index 8b2e4f9..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/scroll/TallTextAboveButton.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.scroll;
-
-import com.android.frameworktest.util.ScrollViewScenario;
-
-/**
- * An (unfocusable) text view that takes up more than the height
- * of the screen followed by a button.
- */
-public class TallTextAboveButton extends ScrollViewScenario {
-
- protected void init(Params params) {
- params.addTextView("top tall", 1.1f)
- .addButton("button", 0.2f);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/settings/BrightnessLimit.java b/tests/FrameworkTest/src/com/android/frameworktest/settings/BrightnessLimit.java
deleted file mode 100644
index b812181..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/settings/BrightnessLimit.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.settings;
-
-import android.os.IHardwareService;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.os.RemoteException;
-import android.os.ServiceManager;
-import android.provider.Settings;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.Button;
-
-import com.android.frameworktest.R;
-
-/**
- * Tries to set the brightness to 0. Should be silently thwarted by the framework.
- */
-public class BrightnessLimit extends Activity implements OnClickListener {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- setContentView(R.layout.brightness_limit);
-
- Button b = (Button) findViewById(R.id.go);
- b.setOnClickListener(this);
- }
-
- public void onClick(View v) {
- IHardwareService hardware = IHardwareService.Stub.asInterface(
- ServiceManager.getService("hardware"));
- if (hardware != null) {
- try {
- hardware.setScreenBacklight(0);
- } catch (RemoteException darn) {
-
- }
- }
- Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, 0);
- }
-}
-
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/settings/RingtonePickerActivityLauncher.java b/tests/FrameworkTest/src/com/android/frameworktest/settings/RingtonePickerActivityLauncher.java
deleted file mode 100644
index 19113da..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/settings/RingtonePickerActivityLauncher.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.settings;
-
-import com.android.internal.app.RingtonePickerActivity;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.media.RingtoneManager;
-import android.net.Uri;
-import android.os.Bundle;
-
-/**
- * Activity that will launch the RingtonePickerActivity as a subactivity, and
- * waits for its result.
- */
-public class RingtonePickerActivityLauncher extends Activity {
-
- private static final String TAG = "RingtonePickerActivityLauncher";
-
- public boolean resultReceived = false;
-
- public int resultCode;
- public Intent result;
-
- public Uri pickedUri;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- setContentView(android.R.layout.simple_list_item_1);
- }
-
- /**
- * Launches the {@link RingtonePickerActivity} and blocks until it returns.
- *
- * @param showDefault {@link RingtonePickerActivity#EXTRA_SHOW_DEFAULT}
- * @param existingUri {@link RingtonePickerActivity#EXTRA_EXISTING_URI}
- * @param filterColumns {@link RingtonePickerActivity#EXTRA_RINGTONE_COLUMNS}
- */
- public void launchRingtonePickerActivity(boolean showDefault, Uri existingUri,
- int types) {
- Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
- intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, showDefault);
- intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, existingUri);
- intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, types);
- startActivityForResult(intent, 0);
- }
-
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
-
- resultReceived = true;
-
- this.resultCode = resultCode;
- this.result = data;
-
- if (data != null) {
- this.pickedUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
- }
- }
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/util/ExpandableListScenario.java b/tests/FrameworkTest/src/com/android/frameworktest/util/ExpandableListScenario.java
deleted file mode 100644
index f72cbe8..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/util/ExpandableListScenario.java
+++ /dev/null
@@ -1,387 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.util;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Random;
-
-import android.view.Gravity;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AbsListView;
-import android.widget.BaseExpandableListAdapter;
-import android.widget.ExpandableListAdapter;
-import android.widget.ExpandableListView;
-import android.widget.ListView;
-import android.widget.TextView;
-
-/**
- * Utility base class for creating various Expandable List scenarios.
- * <p>
- * WARNING: A lot of the features are mixed between ListView's expected position
- * (flat list position) and an ExpandableListView's expected position. You must add/change
- * features as you need them.
- *
- * @see ListScenario
- */
-public abstract class ExpandableListScenario extends ListScenario {
- protected ExpandableListAdapter mAdapter;
- protected List<MyGroup> mGroups;
-
- @Override
- protected ListView createListView() {
- return new ExpandableListView(this);
- }
-
- @Override
- protected Params createParams() {
- return new ExpandableParams();
- }
-
- @Override
- protected void setAdapter(ListView listView) {
- ((ExpandableListView) listView).setAdapter(mAdapter = createAdapter());
- }
-
- protected ExpandableListAdapter createAdapter() {
- return new MyAdapter();
- }
-
- @Override
- protected void readAndValidateParams(Params params) {
- ExpandableParams expandableParams = (ExpandableParams) params;
-
- int[] numChildren = expandableParams.mNumChildren;
-
- mGroups = new ArrayList<MyGroup>(numChildren.length);
- for (int i = 0; i < numChildren.length; i++) {
- mGroups.add(new MyGroup(numChildren[i]));
- }
-
- expandableParams.superSetNumItems();
-
- super.readAndValidateParams(params);
- }
-
- /**
- * Get the ExpandableListView widget.
- * @return The main widget.
- */
- public ExpandableListView getExpandableListView() {
- return (ExpandableListView) super.getListView();
- }
-
- public static class ExpandableParams extends Params {
- private int[] mNumChildren;
-
- /**
- * Sets the number of children per group.
- *
- * @param numChildrenPerGroup The number of children per group.
- */
- public ExpandableParams setNumChildren(int[] numChildren) {
- mNumChildren = numChildren;
- return this;
- }
-
- /**
- * Sets the number of items on the superclass based on the number of
- * groups and children per group.
- */
- private ExpandableParams superSetNumItems() {
- int numItems = 0;
-
- if (mNumChildren != null) {
- for (int i = mNumChildren.length - 1; i >= 0; i--) {
- numItems += mNumChildren[i];
- }
- }
-
- super.setNumItems(numItems);
-
- return this;
- }
-
- @Override
- public Params setNumItems(int numItems) {
- throw new IllegalStateException("Use setNumGroups and setNumChildren instead.");
- }
-
- @Override
- public ExpandableParams setFadingEdgeScreenSizeFactor(double fadingEdgeScreenSizeFactor) {
- return (ExpandableParams) super.setFadingEdgeScreenSizeFactor(fadingEdgeScreenSizeFactor);
- }
-
- @Override
- public ExpandableParams setItemScreenSizeFactor(double itemScreenSizeFactor) {
- return (ExpandableParams) super.setItemScreenSizeFactor(itemScreenSizeFactor);
- }
-
- @Override
- public ExpandableParams setItemsFocusable(boolean itemsFocusable) {
- return (ExpandableParams) super.setItemsFocusable(itemsFocusable);
- }
-
- @Override
- public ExpandableParams setMustFillScreen(boolean fillScreen) {
- return (ExpandableParams) super.setMustFillScreen(fillScreen);
- }
-
- @Override
- public ExpandableParams setPositionScreenSizeFactorOverride(int position, double itemScreenSizeFactor) {
- return (ExpandableParams) super.setPositionScreenSizeFactorOverride(position, itemScreenSizeFactor);
- }
-
- @Override
- public ExpandableParams setPositionUnselectable(int position) {
- return (ExpandableParams) super.setPositionUnselectable(position);
- }
-
- @Override
- public ExpandableParams setStackFromBottom(boolean stackFromBottom) {
- return (ExpandableParams) super.setStackFromBottom(stackFromBottom);
- }
-
- @Override
- public ExpandableParams setStartingSelectionPosition(int startingSelectionPosition) {
- return (ExpandableParams) super.setStartingSelectionPosition(startingSelectionPosition);
- }
-
- @Override
- public ExpandableParams setConnectAdapter(boolean connectAdapter) {
- return (ExpandableParams) super.setConnectAdapter(connectAdapter);
- }
- }
-
- /**
- * Gets a string for the value of some item.
- * @param packedPosition The position of the item.
- * @return The string.
- */
- public final String getValueAtPosition(long packedPosition) {
- final int type = ExpandableListView.getPackedPositionType(packedPosition);
-
- if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) {
- return mGroups.get(ExpandableListView.getPackedPositionGroup(packedPosition))
- .children.get(ExpandableListView.getPackedPositionChild(packedPosition))
- .name;
- } else if (type == ExpandableListView.PACKED_POSITION_TYPE_GROUP) {
- return mGroups.get(ExpandableListView.getPackedPositionGroup(packedPosition))
- .name;
- } else {
- throw new IllegalStateException("packedPosition is not a valid position.");
- }
- }
-
- /**
- * Whether a particular position is out of bounds.
- *
- * @param packedPosition The packed position.
- * @return Whether it's out of bounds.
- */
- private boolean isOutOfBounds(long packedPosition) {
- final int type = ExpandableListView.getPackedPositionType(packedPosition);
-
- if (type == ExpandableListView.PACKED_POSITION_TYPE_NULL) {
- throw new IllegalStateException("packedPosition is not a valid position.");
- }
-
- final int group = ExpandableListView.getPackedPositionGroup(packedPosition);
- if (group >= mGroups.size() || group < 0) {
- return true;
- }
-
- if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) {
- final int child = ExpandableListView.getPackedPositionChild(packedPosition);
- if (child >= mGroups.get(group).children.size() || child < 0) {
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * Gets a view for the packed position, possibly reusing the convertView.
- *
- * @param packedPosition The position to get a view for.
- * @param convertView Optional view to convert.
- * @param parent The future parent.
- * @return A view.
- */
- private View getView(long packedPosition, View convertView, ViewGroup parent) {
- if (isOutOfBounds(packedPosition)) {
- throw new IllegalStateException("position out of range for adapter!");
- }
-
- final ExpandableListView elv = getExpandableListView();
- final int flPos = elv.getFlatListPosition(packedPosition);
-
- if (convertView != null) {
- ((TextView) convertView).setText(getValueAtPosition(packedPosition));
- convertView.setId(flPos);
- return convertView;
- }
-
- int desiredHeight = getHeightForPosition(flPos);
- return createView(packedPosition, flPos, parent, desiredHeight);
- }
-
- /**
- * Create a view for a group or child position.
- *
- * @param packedPosition The packed position (has type, group pos, and optionally child pos).
- * @param flPos The flat list position (the position that the ListView goes by).
- * @param parent The parent view.
- * @param desiredHeight The desired height.
- * @return A view.
- */
- protected View createView(long packedPosition, int flPos, ViewGroup parent, int desiredHeight) {
- TextView result = new TextView(parent.getContext());
- result.setHeight(desiredHeight);
- result.setText(getValueAtPosition(packedPosition));
- final ViewGroup.LayoutParams lp = new AbsListView.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.WRAP_CONTENT);
- result.setLayoutParams(lp);
- result.setGravity(Gravity.CENTER_VERTICAL);
- result.setPadding(36, 0, 0, 0);
- result.setId(flPos);
- return result;
- }
-
- /**
- * Returns a group index containing either the number of children or at
- * least one child.
- *
- * @param numChildren The group must have this amount, or -1 if using
- * atLeastOneChild.
- * @param atLeastOneChild The group must have at least one child, or false
- * if using numChildren.
- * @return A group index with the requirements.
- */
- public int findGroupWithNumChildren(int numChildren, boolean atLeastOneChild) {
- final ExpandableListAdapter adapter = mAdapter;
-
- for (int i = adapter.getGroupCount() - 1; i >= 0; i--) {
- final int curNumChildren = adapter.getChildrenCount(i);
-
- if (numChildren == curNumChildren || atLeastOneChild && curNumChildren > 0) {
- return i;
- }
- }
-
- return -1;
- }
-
- public List<MyGroup> getGroups() {
- return mGroups;
- }
-
- public ExpandableListAdapter getAdapter() {
- return mAdapter;
- }
-
- /**
- * Simple expandable list adapter.
- */
- protected class MyAdapter extends BaseExpandableListAdapter {
- public Object getChild(int groupPosition, int childPosition) {
- return getValueAtPosition(ExpandableListView.getPackedPositionForChild(groupPosition,
- childPosition));
- }
-
- public long getChildId(int groupPosition, int childPosition) {
- return mGroups.get(groupPosition).children.get(childPosition).id;
- }
-
- public int getChildrenCount(int groupPosition) {
- return mGroups.get(groupPosition).children.size();
- }
-
- public View getChildView(int groupPosition, int childPosition, boolean isLastChild,
- View convertView, ViewGroup parent) {
- return getView(ExpandableListView.getPackedPositionForChild(groupPosition,
- childPosition), convertView, parent);
- }
-
- public Object getGroup(int groupPosition) {
- return getValueAtPosition(ExpandableListView.getPackedPositionForGroup(groupPosition));
- }
-
- public int getGroupCount() {
- return mGroups.size();
- }
-
- public long getGroupId(int groupPosition) {
- return mGroups.get(groupPosition).id;
- }
-
- public View getGroupView(int groupPosition, boolean isExpanded, View convertView,
- ViewGroup parent) {
- return getView(ExpandableListView.getPackedPositionForGroup(groupPosition),
- convertView, parent);
- }
-
- public boolean isChildSelectable(int groupPosition, int childPosition) {
- return true;
- }
-
- public boolean hasStableIds() {
- return true;
- }
-
- }
-
- public static class MyGroup {
- private static long mNextId = 1000;
-
- String name;
- long id = mNextId++;
- List<MyChild> children;
-
- public MyGroup(int numChildren) {
- name = "Group " + id;
- children = new ArrayList<MyChild>(numChildren);
- for (int i = 0; i < numChildren; i++) {
- children.add(new MyChild());
- }
- }
- }
-
- public static class MyChild {
- private static long mNextId = 2000;
-
- String name;
- long id = mNextId++;
-
- public MyChild() {
- name = "Child " + id;
- }
- }
-
- @Override
- protected final void init(Params params) {
- init((ExpandableParams) params);
- }
-
- /**
- * @see ListScenario#init
- */
- protected abstract void init(ExpandableParams params);
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/util/GridScenario.java b/tests/FrameworkTest/src/com/android/frameworktest/util/GridScenario.java
deleted file mode 100644
index 746cf23..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/util/GridScenario.java
+++ /dev/null
@@ -1,370 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.util;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.Window;
-import android.widget.AbsListView;
-import android.widget.AdapterView;
-import android.widget.BaseAdapter;
-import android.widget.GridView;
-import android.widget.ListAdapter;
-import android.widget.TextView;
-
-import com.google.android.collect.Maps;
-
-import java.util.Map;
-
-/**
- * Utility base class for creating various GridView scenarios. Configurable by the number
- * of items, how tall each item should be (in relation to the screen height), and
- * what item should start with selection.
- */
-public abstract class GridScenario extends Activity {
-
- private GridView mGridView;
-
- private int mNumItems;
-
- private int mStartingSelectionPosition;
- private double mItemScreenSizeFactor;
- private Map<Integer, Double> mOverrideItemScreenSizeFactors = Maps.newHashMap();
-
- private int mScreenHeight;
-
- private boolean mStackFromBottom;
-
- private int mColumnWidth;
-
- private int mNumColumns;
-
- private int mStretchMode;
-
- private int mVerticalSpacing;
-
- public GridView getGridView() {
- return mGridView;
- }
-
- protected int getScreenHeight() {
- return mScreenHeight;
- }
-
- /**
- * @return The initial number of items in the grid as specified by the scenario.
- * This number may change over time.
- */
- protected int getInitialNumItems() {
- return mNumItems;
- }
-
- /**
- * @return The desired height of 1 item, ignoring overrides
- */
- public int getDesiredItemHeight() {
- return (int) (mScreenHeight * mItemScreenSizeFactor);
- }
-
- /**
- * Better way to pass in optional params than a honkin' paramater list :)
- */
- public static class Params {
- private int mNumItems = 4;
- private int mStartingSelectionPosition = -1;
- private double mItemScreenSizeFactor = 1 / 5;
-
- private Map<Integer, Double> mOverrideItemScreenSizeFactors = Maps.newHashMap();
-
- private boolean mStackFromBottom = false;
- private boolean mMustFillScreen = true;
-
- private int mColumnWidth = 0;
- private int mNumColumns = GridView.AUTO_FIT;
- private int mStretchMode = GridView.STRETCH_COLUMN_WIDTH;
- private int mVerticalSpacing = 0;
-
- /**
- * Set the number of items in the grid.
- */
- public Params setNumItems(int numItems) {
- mNumItems = numItems;
- return this;
- }
-
- /**
- * Set the position that starts selected.
- *
- * @param startingSelectionPosition The selected position within the adapter's data set.
- * Pass -1 if you do not want to force a selection.
- * @return
- */
- public Params setStartingSelectionPosition(int startingSelectionPosition) {
- mStartingSelectionPosition = startingSelectionPosition;
- return this;
- }
-
- /**
- * Set the factor that determines how tall each item is in relation to the
- * screen height.
- */
- public Params setItemScreenSizeFactor(double itemScreenSizeFactor) {
- mItemScreenSizeFactor = itemScreenSizeFactor;
- return this;
- }
-
- /**
- * Override the item screen size factor for a particular item. Useful for
- * creating grids with non-uniform item height.
- * @param position The position in the grid.
- * @param itemScreenSizeFactor The screen size factor to use for the height.
- */
- public Params setPositionScreenSizeFactorOverride(
- int position, double itemScreenSizeFactor) {
- mOverrideItemScreenSizeFactors.put(position, itemScreenSizeFactor);
- return this;
- }
-
- /**
- * Sets the stacking direction
- * @param stackFromBottom
- * @return
- */
- public Params setStackFromBottom(boolean stackFromBottom) {
- mStackFromBottom = stackFromBottom;
- return this;
- }
-
- /**
- * Sets whether the sum of the height of the grid items must be at least the
- * height of the grid view.
- */
- public Params setMustFillScreen(boolean fillScreen) {
- mMustFillScreen = fillScreen;
- return this;
- }
-
- /**
- * Sets the individual width of each column.
- *
- * @param requestedWidth the width in pixels of the column
- */
- public Params setColumnWidth(int requestedWidth) {
- mColumnWidth = requestedWidth;
- return this;
- }
-
- /**
- * Sets the number of columns in the grid.
- */
- public Params setNumColumns(int numColumns) {
- mNumColumns = numColumns;
- return this;
- }
-
- /**
- * Sets the stretch mode.
- */
- public Params setStretchMode(int stretchMode) {
- mStretchMode = stretchMode;
- return this;
- }
-
- /**
- * Sets the spacing between rows in the grid
- */
- public Params setVerticalSpacing(int verticalSpacing) {
- mVerticalSpacing = verticalSpacing;
- return this;
- }
- }
-
- /**
- * How each scenario customizes its behavior.
- * @param params
- */
- protected abstract void init(Params params);
-
- /**
- * Override this to provide an different adapter for your scenario
- * @return The adapter that this scenario will use
- */
- protected ListAdapter createAdapter() {
- return new MyAdapter();
- }
-
- /**
- * Override this if you want to know when something has been selected (perhaps
- * more importantly, that {@link android.widget.AdapterView.OnItemSelectedListener} has
- * been triggered).
- */
- @SuppressWarnings({ "UnusedDeclaration" })
- protected void positionSelected(int positon) {
-
- }
-
- /**
- * Override this if you want to know that nothing is selected.
- */
- protected void nothingSelected() {
-
- }
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- // turn off title bar
- requestWindowFeature(Window.FEATURE_NO_TITLE);
-
- mScreenHeight = getWindowManager().getDefaultDisplay().getHeight();
-
- final Params params = new Params();
- init(params);
-
- readAndValidateParams(params);
-
- mGridView = new GridView(this);
- mGridView.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT));
- mGridView.setDrawSelectorOnTop(false);
- if (mNumColumns >= GridView.AUTO_FIT) {
- mGridView.setNumColumns(mNumColumns);
- }
- if (mColumnWidth > 0) {
- mGridView.setColumnWidth(mColumnWidth);
- }
- if (mVerticalSpacing > 0) {
- mGridView.setVerticalSpacing(mVerticalSpacing);
- }
- mGridView.setStretchMode(mStretchMode);
- mGridView.setAdapter(createAdapter());
- if (mStartingSelectionPosition >= 0) {
- mGridView.setSelection(mStartingSelectionPosition);
- }
- mGridView.setPadding(10, 10, 10, 10);
- mGridView.setStackFromBottom(mStackFromBottom);
-
- mGridView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
- public void onItemSelected(AdapterView parent, View v, int position, long id) {
- positionSelected(position);
- }
-
- public void onNothingSelected(AdapterView parent) {
- nothingSelected();
- }
- });
-
- setContentView(mGridView);
- }
-
-
-
- /**
- * Read in and validate all of the params passed in by the scenario.
- * @param params
- */
- private void readAndValidateParams(Params params) {
- if (params.mMustFillScreen ) {
- double totalFactor = 0.0;
- for (int i = 0; i < params.mNumItems; i++) {
- if (params.mOverrideItemScreenSizeFactors.containsKey(i)) {
- totalFactor += params.mOverrideItemScreenSizeFactors.get(i);
- } else {
- totalFactor += params.mItemScreenSizeFactor;
- }
- }
- if (totalFactor < 1.0) {
- throw new IllegalArgumentException("grid items must combine to be at least " +
- "the height of the screen. this is not the case with " + params.mNumItems
- + " items and " + params.mItemScreenSizeFactor + " screen factor and " +
- "screen height of " + mScreenHeight);
- }
- }
-
- mNumItems = params.mNumItems;
- mStartingSelectionPosition = params.mStartingSelectionPosition;
- mItemScreenSizeFactor = params.mItemScreenSizeFactor;
-
- mOverrideItemScreenSizeFactors.putAll(params.mOverrideItemScreenSizeFactors);
-
- mStackFromBottom = params.mStackFromBottom;
- mColumnWidth = params.mColumnWidth;
- mNumColumns = params.mNumColumns;
- mStretchMode = params.mStretchMode;
- mVerticalSpacing = params.mVerticalSpacing;
- }
-
- public final String getValueAtPosition(int position) {
- return "postion " + position;
- }
-
- /**
- * Create a view for a grid item. Override this to create a custom view beyond
- * the simple focusable / unfocusable text view.
- * @param position The position.
- * @param parent The parent
- * @param desiredHeight The height the view should be to respect the desired item
- * to screen height ratio.
- * @return a view for the grid.
- */
- protected View createView(int position, ViewGroup parent, int desiredHeight) {
- TextView result = new TextView(parent.getContext());
- result.setHeight(desiredHeight);
- result.setText(getValueAtPosition(position));
- final ViewGroup.LayoutParams lp = new AbsListView.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.WRAP_CONTENT);
- result.setLayoutParams(lp);
- result.setId(position);
- result.setBackgroundColor(0x55ffffff);
- return result;
- }
-
-
-
- private class MyAdapter extends BaseAdapter {
- public int getCount() {
- return mNumItems;
- }
-
- public Object getItem(int position) {
- return getValueAtPosition(position);
- }
-
- public long getItemId(int position) {
- return position;
- }
-
- public View getView(int position, View convertView, ViewGroup parent) {
- if (convertView != null) {
- ((TextView) convertView).setText(getValueAtPosition(position));
- convertView.setId(position);
- return convertView;
- }
-
- int desiredHeight = getDesiredItemHeight();
- if (mOverrideItemScreenSizeFactors.containsKey(position)) {
- desiredHeight = (int) (mScreenHeight * mOverrideItemScreenSizeFactors.get(position));
- }
- return createView(position, parent, desiredHeight);
- }
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/util/InternalSelectionView.java b/tests/FrameworkTest/src/com/android/frameworktest/util/InternalSelectionView.java
deleted file mode 100644
index e500b94..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/util/InternalSelectionView.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.util;
-
-import com.android.frameworktest.R;
-
-import android.view.View;
-import android.view.KeyEvent;
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.graphics.Paint;
-import android.graphics.Canvas;
-import android.graphics.Rect;
-import android.graphics.Color;
-import android.util.AttributeSet;
-
-
-
-/**
- * A view that has a known number of selectable rows, and maintains a notion of which
- * row is selected. The rows take up the
- * entire width of the view. The height of the view is divided evenly among
- * the rows.
- *
- * Notice what this view does to be a good citizen w.r.t its internal selection:
- * 1) calls {@link View#requestRectangleOnScreen} each time the selection changes due to
- * internal navigation.
- * 2) implements {@link View#getFocusedRect} by filling in the rectangle of the currently
- * selected row
- * 3) overrides {@link View#onFocusChanged} and sets selection appropriately according to
- * the previously focused rectangle.
- */
-public class InternalSelectionView extends View {
-
- private Paint mPainter = new Paint();
- private Paint mTextPaint = new Paint();
- private Rect mTempRect = new Rect();
-
- private int mNumRows = 5;
- private int mSelectedRow = 0;
- private final int mEstimatedPixelHeight = 10;
-
- private Integer mDesiredHeight = null;
- private String mLabel = null;
-
- public InternalSelectionView(Context context, int numRows, String label) {
- super(context);
- mNumRows = numRows;
- mLabel = label;
- init();
- }
-
- public InternalSelectionView(Context context, AttributeSet attrs) {
- super(context, attrs);
- TypedArray a =
- context.obtainStyledAttributes(
- attrs, R.styleable.SelectableRowView);
- mNumRows = a.getInt(R.styleable.SelectableRowView_numRows, 5);
- init();
- }
-
- private void init() {
- setFocusable(true);
- mTextPaint.setAntiAlias(true);
- mTextPaint.setTextSize(10);
- mTextPaint.setColor(Color.WHITE);
- }
-
- public int getNumRows() {
- return mNumRows;
- }
-
- public int getSelectedRow() {
- return mSelectedRow;
- }
-
- public void setDesiredHeight(int desiredHeight) {
- mDesiredHeight = desiredHeight;
- }
-
- public String getLabel() {
- return mLabel;
- }
-
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- setMeasuredDimension(
- measureWidth(widthMeasureSpec),
- measureHeight(heightMeasureSpec));
- }
-
- private int measureWidth(int measureSpec) {
- int specMode = MeasureSpec.getMode(measureSpec);
- int specSize = MeasureSpec.getSize(measureSpec);
-
- int desiredWidth = 300 + mPaddingLeft + mPaddingRight;
- if (specMode == MeasureSpec.EXACTLY) {
- // We were told how big to be
- return specSize;
- } else if (specMode == MeasureSpec.AT_MOST) {
- return desiredWidth < specSize ? desiredWidth : specSize;
- } else {
- return desiredWidth;
- }
- }
-
- private int measureHeight(int measureSpec) {
- int specMode = MeasureSpec.getMode(measureSpec);
- int specSize = MeasureSpec.getSize(measureSpec);
-
- int desiredHeight = mDesiredHeight != null ?
- mDesiredHeight :
- mNumRows * mEstimatedPixelHeight + mPaddingTop + mPaddingBottom;
- if (specMode == MeasureSpec.EXACTLY) {
- // We were told how big to be
- return specSize;
- } else if (specMode == MeasureSpec.AT_MOST) {
- return desiredHeight < specSize ? desiredHeight : specSize;
- } else {
- return desiredHeight;
- }
- }
-
-
- @Override
- protected void onDraw(Canvas canvas) {
-
- int rowHeight = getRowHeight();
-
- int rectTop = mPaddingTop;
- int rectLeft = mPaddingLeft;
- int rectRight = getWidth() - mPaddingRight;
- for (int i = 0; i < mNumRows; i++) {
-
- mPainter.setColor(Color.BLACK);
- mPainter.setAlpha(0x20);
-
- // draw background rect
- mTempRect.set(rectLeft, rectTop, rectRight, rectTop + rowHeight);
- canvas.drawRect(mTempRect, mPainter);
-
- // draw forground rect
- if (i == mSelectedRow && hasFocus()) {
- mPainter.setColor(Color.RED);
- mPainter.setAlpha(0xF0);
- mTextPaint.setAlpha(0xFF);
- } else {
- mPainter.setColor(Color.BLACK);
- mPainter.setAlpha(0x40);
- mTextPaint.setAlpha(0xF0);
- }
- mTempRect.set(rectLeft + 2, rectTop + 2,
- rectRight - 2, rectTop + rowHeight - 2);
- canvas.drawRect(mTempRect, mPainter);
-
- // draw text to help when visually inspecting
- canvas.drawText(
- Integer.toString(i),
- rectLeft + 2,
- rectTop + 2 - (int) mTextPaint.ascent(),
- mTextPaint);
-
- rectTop += rowHeight;
- }
- }
-
- private int getRowHeight() {
- return (getHeight() - mPaddingTop - mPaddingBottom) / mNumRows;
- }
-
- public void getRectForRow(Rect rect, int row) {
- final int rowHeight = getRowHeight();
- final int top = mPaddingTop + row * rowHeight;
- rect.set(mPaddingLeft,
- top,
- getWidth() - mPaddingRight,
- top + rowHeight);
- }
-
-
- void ensureRectVisible() {
- getRectForRow(mTempRect, mSelectedRow);
- requestRectangleOnScreen(mTempRect);
- }
-
-
- /* (non-Javadoc)
- * @see android.view.KeyEvent.Callback#onKeyDown(int, android.view.KeyEvent)
- */
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- switch(event.getKeyCode()) {
- case KeyEvent.KEYCODE_DPAD_UP:
- if (mSelectedRow > 0) {
- mSelectedRow--;
- invalidate();
- ensureRectVisible();
- return true;
- }
- break;
- case KeyEvent.KEYCODE_DPAD_DOWN:
- if (mSelectedRow < (mNumRows - 1)) {
- mSelectedRow++;
- invalidate();
- ensureRectVisible();
- return true;
- }
- break;
- }
- return false;
- }
-
-
- @Override
- public void getFocusedRect(Rect r) {
- getRectForRow(r, mSelectedRow);
- }
-
- @Override
- protected void onFocusChanged(boolean focused, int direction,
- Rect previouslyFocusedRect) {
- super.onFocusChanged(focused, direction, previouslyFocusedRect);
-
- if (focused) {
- switch (direction) {
- case View.FOCUS_DOWN:
- mSelectedRow = 0;
- break;
- case View.FOCUS_UP:
- mSelectedRow = mNumRows - 1;
- break;
- case View.FOCUS_LEFT: // fall through
- case View.FOCUS_RIGHT:
- // set the row that is closest to the rect
- if (previouslyFocusedRect != null) {
- int y = previouslyFocusedRect.top
- + (previouslyFocusedRect.height() / 2);
- int yPerRow = getHeight() / mNumRows;
- mSelectedRow = y / yPerRow;
- } else {
- mSelectedRow = 0;
- }
- break;
- default:
- // can't gleam any useful information about what internal
- // selection should be...
- return;
- }
- invalidate();
- }
- }
-
- @Override
- public String toString() {
- if (mLabel != null) {
- return mLabel;
- }
- return super.toString();
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/util/KeyUtils.java b/tests/FrameworkTest/src/com/android/frameworktest/util/KeyUtils.java
deleted file mode 100644
index 06feab4..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/util/KeyUtils.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.util;
-
-import android.app.Instrumentation;
-import android.os.SystemClock;
-import android.test.ActivityInstrumentationTestCase;
-import android.test.InstrumentationTestCase;
-import android.view.Gravity;
-import android.view.KeyCharacterMap;
-import android.view.KeyEvent;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.ViewConfiguration;
-import android.view.ViewGroup;
-
-/**
- * Reusable methods for generating key events.
- * <p>
- * Definitions:
- * <li> Tap refers to pushing and releasing a button (down and up event).
- * <li> Chord refers to pushing a modifier key, tapping a regular key, and
- * releasing the modifier key.
- */
-public class KeyUtils {
- /**
- * Simulates tapping the menu key.
- *
- * @param test The test case that is being run.
- */
- public static void tapMenuKey(ActivityInstrumentationTestCase test) {
- final Instrumentation inst = test.getInstrumentation();
-
- inst.sendKeySync(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MENU));
- inst.sendKeySync(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MENU));
- }
-
- /**
- * Simulates chording the menu key.
- *
- * @param test The test case that is being run.
- * @param shortcutKey The shortcut key to tap while chording the menu key.
- */
- public static void chordMenuKey(ActivityInstrumentationTestCase test, char shortcutKey) {
- final Instrumentation inst = test.getInstrumentation();
-
- final KeyEvent pushMenuKey = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MENU);
- final KeyCharacterMap keyCharMap = KeyCharacterMap.load(pushMenuKey.getDeviceId());
- final KeyEvent shortcutKeyEvent = keyCharMap.getEvents(new char[] { shortcutKey })[0];
- final int shortcutKeyCode = shortcutKeyEvent.getKeyCode();
-
- inst.sendKeySync(pushMenuKey);
- inst.sendKeySync(new KeyEvent(KeyEvent.ACTION_DOWN, shortcutKeyCode));
- inst.sendKeySync(new KeyEvent(KeyEvent.ACTION_UP, shortcutKeyCode));
- inst.sendKeySync(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MENU));
- }
-
- /**
- * Simulates a long click via the keyboard.
- *
- * @param test The test case that is being run.
- */
- public static void longClick(ActivityInstrumentationTestCase test) {
- final Instrumentation inst = test.getInstrumentation();
-
- inst.sendKeySync(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_CENTER));
- try {
- Thread.sleep((long)(ViewConfiguration.getLongPressTimeout() * 1.5f));
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- inst.sendKeySync(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DPAD_CENTER));
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/util/ListItemFactory.java b/tests/FrameworkTest/src/com/android/frameworktest/util/ListItemFactory.java
deleted file mode 100644
index 4327a8a..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/util/ListItemFactory.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.util;
-
-import android.content.Context;
-import android.view.Gravity;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AbsListView;
-import android.widget.Button;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-/**
- * Reusable methods for creating more complex list items.
- */
-public class ListItemFactory {
-
- /**
- * Create a view with a button at the top and bottom, with filler in between.
- * The filler is sized to take up any space left over within desiredHeight.
- *
- * @param position The position within the list.
- * @param context The context.
- * @param desiredHeight The desired height of the entire view.
- * @return The created view.
- */
- public static View twoButtonsSeparatedByFiller(int position, Context context, int desiredHeight) {
- if (desiredHeight < 90) {
- throw new IllegalArgumentException("need at least 90 pixels of height " +
- "to create the two buttons and leave 10 pixels for the filler");
- }
-
- final LinearLayout ll = new LinearLayout(context);
- ll.setOrientation(LinearLayout.VERTICAL);
-
- final LinearLayout.LayoutParams buttonLp =
- new LinearLayout.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- 50);
-
- final Button topButton = new Button(context);
- topButton.setLayoutParams(
- buttonLp);
- topButton.setText("top (position " + position + ")");
- ll.addView(topButton);
-
- final TextView middleFiller = new TextView(context);
- middleFiller.setLayoutParams(new LinearLayout.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- desiredHeight - 100));
- middleFiller.setText("filler");
- ll.addView(middleFiller);
-
- final Button bottomButton = new Button(context);
- bottomButton.setLayoutParams(buttonLp);
- bottomButton.setText("bottom (position " + position + ")");
- ll.addView(bottomButton);
- ll.setTag("twoButtons");
- return ll;
- }
-
- public enum Slot {
- Left,
- Middle,
- Right
- }
-
- /**
- * Create a horizontal linear layout divided into thirds (with some margins
- * separating the thirds), filled with buttons into some slots.
- * @param context The context.
- * @param desiredHeight The height of the LL.
- * @param slots Which slots to fill with buttons.
- * @return The linear layout.
- */
- public static View horizontalButtonSlots(Context context, int desiredHeight, Slot... slots) {
-
- final LinearLayout ll = new LinearLayout(context);
- ll.setOrientation(LinearLayout.HORIZONTAL);
-
- final LinearLayout.LayoutParams lp
- = new LinearLayout.LayoutParams(0, desiredHeight);
- lp.setMargins(10, 0, 10, 0);
- lp.weight = 0.33f;
-
- boolean left = false;
- boolean middle = false;
- boolean right = false;
- for (Slot slot : slots) {
- switch (slot) {
- case Left:
- left = true;
- break;
- case Middle:
- middle = true;
- break;
- case Right:
- right = true;
- break;
- }
- }
-
- if (left) {
- final Button button = new Button(context);
- button.setText("left");
- ll.addView(button, lp);
- } else {
- ll.addView(new View(context), lp);
- }
-
- if (middle) {
- final Button button = new Button(context);
- button.setText("center");
- ll.addView(button, lp);
- } else {
- ll.addView(new View(context), lp);
- }
-
- if (right) {
- final Button button = new Button(context);
- button.setText("right");
- ll.addView(button, lp);
- } else {
- ll.addView(new View(context), lp);
- }
-
- return ll;
- }
-
-
- /**
- * Create a button ready to be a list item.
- *
- * @param position The position within the list.
- * @param context The context.
- * @param text The text of the button
- * @param desiredHeight The desired height of the button
- * @return The created view.
- */
- public static View button(int position, Context context, String text, int desiredHeight) {
- TextView result = new Button(context);
- result.setHeight(desiredHeight);
- result.setText(text);
- final ViewGroup.LayoutParams lp = new AbsListView.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.WRAP_CONTENT);
- result.setLayoutParams(lp);
- result.setId(position);
- result.setTag("button");
- return result;
- }
-
- /**
- * Convert an existing button view to display the data at a new position.
- *
- * @param convertView Non-null Button created by {@link #button}
- * @param text The text of the button
- * @param position The position withion the list
- * @return The converted view
- */
- public static View convertButton(View convertView, String text, int position) {
- if (((String) convertView.getTag()).equals("button")) {
- ((Button) convertView).setText(text);
- convertView.setId(position);
- return convertView;
- } else {
- return null;
- }
- }
-
- /**
- * Create a text view ready to be a list item.
- *
- * @param position The position within the list.
- * @param context The context.
- * @param text The text to display
- * @param desiredHeight The desired height of the text view
- * @return The created view.
- */
- public static View text(int position, Context context, String text, int desiredHeight) {
- TextView result = new TextView(context);
- result.setHeight(desiredHeight);
- result.setText(text);
- final ViewGroup.LayoutParams lp = new AbsListView.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.WRAP_CONTENT);
- result.setLayoutParams(lp);
- result.setId(position);
- result.setTag("text");
- return result;
- }
-
- /**
- * Convert an existing text view to display the data at a new position.
- *
- * @param convertView Non-null TextView created by {@link #text}
- * @param text The text to display
- * @param position The position withion the list
- * @return The converted view
- */
- public static View convertText(View convertView, String text, int position) {
- if(convertView.getTag() != null && ((String) convertView.getTag()).equals("text")) {
- ((TextView) convertView).setText(text);
- convertView.setId(position);
- return convertView;
-
- } else {
- return null;
- }
- }
-
- /**
- * Create a text view ready to be a list item.
- *
- * @param position The position within the list.
- * @param context The context.
- * @param text The text of the button
- * @param desiredHeight The desired height of the button
- * @return The created view.
- */
- public static View doubleText(int position, Context context, String text, int desiredHeight) {
- final LinearLayout ll = new LinearLayout(context);
- ll.setOrientation(LinearLayout.HORIZONTAL);
-
- final AbsListView.LayoutParams lp =
- new AbsListView.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- desiredHeight);
- ll.setLayoutParams(lp);
- ll.setId(position);
-
- TextView t1 = new TextView(context);
- t1.setHeight(desiredHeight);
- t1.setText(text);
- t1.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL);
- final ViewGroup.LayoutParams lp1 = new LinearLayout.LayoutParams(
- 0,
- ViewGroup.LayoutParams.WRAP_CONTENT, 1.0f);
- ll.addView(t1, lp1);
-
- TextView t2 = new TextView(context);
- t2.setHeight(desiredHeight);
- t2.setText(text);
- t2.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL);
- final ViewGroup.LayoutParams lp2 = new LinearLayout.LayoutParams(
- 0,
- ViewGroup.LayoutParams.WRAP_CONTENT,
- 1.0f);
-
- ll.addView(t2, lp2);
- ll.setTag("double");
- return ll;
- }
-
-
- /**
- * Convert an existing button view to display the data at a new position.
- *
- * @param convertView Non-null view created by {@link #doubleText}
- * @param text The text of the button
- * @param position The position withion the list
- * @return The converted view
- */
- public static View convertDoubleText(View convertView, String text, int position) {
- if (((String) convertView.getTag()).equals("double")) {
- TextView t1 = (TextView) ((LinearLayout) convertView).getChildAt(0);
- TextView t2 = (TextView) ((LinearLayout) convertView).getChildAt(1);
- t1.setText(text);
- t2.setText(text);
- convertView.setId(position);
- return convertView;
- } else {
- return null;
- }
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/util/ListScenario.java b/tests/FrameworkTest/src/com/android/frameworktest/util/ListScenario.java
deleted file mode 100644
index 5889658..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/util/ListScenario.java
+++ /dev/null
@@ -1,662 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.util;
-
-import android.app.Activity;
-import android.graphics.Rect;
-import android.os.Bundle;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.Window;
-import android.widget.AdapterView;
-import android.widget.BaseAdapter;
-import android.widget.EditText;
-import android.widget.LinearLayout;
-import android.widget.ListView;
-import android.widget.TextView;
-import com.google.android.collect.Maps;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Utility base class for creating various List scenarios. Configurable by the number
- * of items, how tall each item should be (in relation to the screen height), and
- * what item should start with selection.
- */
-public abstract class ListScenario extends Activity {
-
- private ListView mListView;
- private TextView mHeaderTextView;
-
- private int mNumItems;
- protected boolean mItemsFocusable;
-
- private int mStartingSelectionPosition;
- private double mItemScreenSizeFactor;
- private Map<Integer, Double> mOverrideItemScreenSizeFactors = Maps.newHashMap();
-
- private int mScreenHeight;
-
- // whether to include a text view above the list
- private boolean mIncludeHeader;
-
- // separators
- private Set<Integer> mUnselectableItems = new HashSet<Integer>();
-
- private boolean mStackFromBottom;
-
- private int mClickedPosition = -1;
-
- private int mLongClickedPosition = -1;
-
- private int mConvertMisses = 0;
-
- private int mHeaderViewCount;
- private boolean mHeadersFocusable;
-
- private int mFooterViewCount;
- private LinearLayout mLinearLayout;
-
- public ListView getListView() {
- return mListView;
- }
-
- protected int getScreenHeight() {
- return mScreenHeight;
- }
-
- /**
- * Return whether the item at position is selectable (i.e is a separator).
- * (external users can access this info using the adapter)
- */
- private boolean isItemAtPositionSelectable(int position) {
- return !mUnselectableItems.contains(position);
- }
-
- /**
- * Better way to pass in optional params than a honkin' paramater list :)
- */
- public static class Params {
- private int mNumItems = 4;
- private boolean mItemsFocusable = false;
- private int mStartingSelectionPosition = 0;
- private double mItemScreenSizeFactor = 1 / 5;
- private Double mFadingEdgeScreenSizeFactor = null;
-
- private Map<Integer, Double> mOverrideItemScreenSizeFactors = Maps.newHashMap();
-
- // separators
- private List<Integer> mUnselectableItems = new ArrayList<Integer>(8);
- // whether to include a text view above the list
- private boolean mIncludeHeader = false;
- private boolean mStackFromBottom = false;
- public boolean mMustFillScreen = true;
- private int mHeaderViewCount;
- private boolean mHeaderFocusable = false;
- private int mFooterViewCount;
-
- private boolean mConnectAdapter = true;
-
- /**
- * Set the number of items in the list.
- */
- public Params setNumItems(int numItems) {
- mNumItems = numItems;
- return this;
- }
-
- /**
- * Set whether the items are focusable.
- */
- public Params setItemsFocusable(boolean itemsFocusable) {
- mItemsFocusable = itemsFocusable;
- return this;
- }
-
- /**
- * Set the position that starts selected.
- *
- * @param startingSelectionPosition The selected position within the adapter's data set.
- * Pass -1 if you do not want to force a selection.
- * @return
- */
- public Params setStartingSelectionPosition(int startingSelectionPosition) {
- mStartingSelectionPosition = startingSelectionPosition;
- return this;
- }
-
- /**
- * Set the factor that determines how tall each item is in relation to the
- * screen height.
- */
- public Params setItemScreenSizeFactor(double itemScreenSizeFactor) {
- mItemScreenSizeFactor = itemScreenSizeFactor;
- return this;
- }
-
- /**
- * Override the item screen size factor for a particular item. Useful for
- * creating lists with non-uniform item height.
- * @param position The position in the list.
- * @param itemScreenSizeFactor The screen size factor to use for the height.
- */
- public Params setPositionScreenSizeFactorOverride(
- int position, double itemScreenSizeFactor) {
- mOverrideItemScreenSizeFactors.put(position, itemScreenSizeFactor);
- return this;
- }
-
- /**
- * Set a position as unselectable (a.k.a a separator)
- * @param position
- * @return
- */
- public Params setPositionUnselectable(int position) {
- mUnselectableItems.add(position);
- return this;
- }
-
- /**
- * Set positions as unselectable (a.k.a a separator)
- */
- public Params setPositionsUnselectable(int ...positions) {
- for (int pos : positions) {
- setPositionUnselectable(pos);
- }
- return this;
- }
-
- /**
- * Include a header text view above the list.
- * @param includeHeader
- * @return
- */
- public Params includeHeaderAboveList(boolean includeHeader) {
- mIncludeHeader = includeHeader;
- return this;
- }
-
- /**
- * Sets the stacking direction
- * @param stackFromBottom
- * @return
- */
- public Params setStackFromBottom(boolean stackFromBottom) {
- mStackFromBottom = stackFromBottom;
- return this;
- }
-
- /**
- * Sets whether the sum of the height of the list items must be at least the
- * height of the list view.
- */
- public Params setMustFillScreen(boolean fillScreen) {
- mMustFillScreen = fillScreen;
- return this;
- }
-
- /**
- * Set the factor for the fading edge length.
- */
- public Params setFadingEdgeScreenSizeFactor(double fadingEdgeScreenSizeFactor) {
- mFadingEdgeScreenSizeFactor = fadingEdgeScreenSizeFactor;
- return this;
- }
-
- /**
- * Set the number of header views to appear within the list
- */
- public Params setHeaderViewCount(int headerViewCount) {
- mHeaderViewCount = headerViewCount;
- return this;
- }
-
- /**
- * Set whether the headers should be focusable.
- * @param headerFocusable Whether the headers should be focusable (i.e
- * created as edit texts rather than text views).
- */
- public Params setHeaderFocusable(boolean headerFocusable) {
- mHeaderFocusable = headerFocusable;
- return this;
- }
-
- /**
- * Set the number of footer views to appear within the list
- */
- public Params setFooterViewCount(int footerViewCount) {
- mFooterViewCount = footerViewCount;
- return this;
- }
-
- /**
- * Sets whether the {@link ListScenario} will automatically set the
- * adapter on the list view. If this is false, the client MUST set it
- * manually (this is useful when adding headers to the list view, which
- * must be done before the adapter is set).
- */
- public Params setConnectAdapter(boolean connectAdapter) {
- mConnectAdapter = connectAdapter;
- return this;
- }
- }
-
- /**
- * How each scenario customizes its behavior.
- * @param params
- */
- protected abstract void init(Params params);
-
- /**
- * Override this if you want to know when something has been selected (perhaps
- * more importantly, that {@link android.widget.AdapterView.OnItemSelectedListener} has
- * been triggered).
- */
- protected void positionSelected(int positon) {
- }
-
- /**
- * Override this if you want to know that nothing is selected.
- */
- protected void nothingSelected() {
- }
-
- /**
- * Override this if you want to know when something has been clicked (perhaps
- * more importantly, that {@link android.widget.AdapterView.OnItemClickListener} has
- * been triggered).
- */
- protected void positionClicked(int position) {
- setClickedPosition(position);
- }
-
- /**
- * Override this if you want to know when something has been long clicked (perhaps
- * more importantly, that {@link android.widget.AdapterView.OnItemLongClickListener} has
- * been triggered).
- */
- protected void positionLongClicked(int position) {
- setLongClickedPosition(position);
- }
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- // for test stability, turn off title bar
- requestWindowFeature(Window.FEATURE_NO_TITLE);
-
-
- mScreenHeight = getWindowManager().getDefaultDisplay().getHeight();
-
- final Params params = createParams();
- init(params);
-
- readAndValidateParams(params);
-
-
- mListView = createListView();
- mListView.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT));
- mListView.setDrawSelectorOnTop(false);
-
- for (int i=0; i<mHeaderViewCount; i++) {
- TextView header = mHeadersFocusable ?
- new EditText(this) :
- new TextView(this);
- header.setText("Header: " + i);
- mListView.addHeaderView(header);
- }
-
- for (int i=0; i<mFooterViewCount; i++) {
- TextView header = new TextView(this);
- header.setText("Footer: " + i);
- mListView.addFooterView(header);
- }
-
- if (params.mConnectAdapter) {
- setAdapter(mListView);
- }
-
- mListView.setItemsCanFocus(mItemsFocusable);
- if (mStartingSelectionPosition >= 0) {
- mListView.setSelection(mStartingSelectionPosition);
- }
- mListView.setPadding(0, 0, 0, 0);
- mListView.setStackFromBottom(mStackFromBottom);
- mListView.setDivider(null);
-
- mListView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
- public void onItemSelected(AdapterView parent, View v, int position, long id) {
- positionSelected(position);
- }
-
- public void onNothingSelected(AdapterView parent) {
- nothingSelected();
- }
- });
-
- mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- public void onItemClick(AdapterView parent, View v, int position, long id) {
- positionClicked(position);
- }
- });
-
- // set the fading edge length porportionally to the screen
- // height for test stability
- if (params.mFadingEdgeScreenSizeFactor != null) {
- mListView.setFadingEdgeLength((int) (params.mFadingEdgeScreenSizeFactor * mScreenHeight));
- } else {
- mListView.setFadingEdgeLength((int) ((64.0 / 480) * mScreenHeight));
- }
-
- if (mIncludeHeader) {
- mLinearLayout = new LinearLayout(this);
-
- mHeaderTextView = new TextView(this);
- mHeaderTextView.setText("hi");
- mHeaderTextView.setLayoutParams(new LinearLayout.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.WRAP_CONTENT));
- mLinearLayout.addView(mHeaderTextView);
-
- mLinearLayout.setOrientation(LinearLayout.VERTICAL);
- mLinearLayout.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT));
- mListView.setLayoutParams((new LinearLayout.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- 0,
- 1f)));
-
- mLinearLayout.addView(mListView);
- setContentView(mLinearLayout);
- } else {
- mLinearLayout = new LinearLayout(this);
- mLinearLayout.setOrientation(LinearLayout.VERTICAL);
- mLinearLayout.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT));
- mListView.setLayoutParams((new LinearLayout.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- 0,
- 1f)));
- mLinearLayout.addView(mListView);
- setContentView(mLinearLayout);
- }
- }
-
- /**
- * Returns the LinearLayout containing the ListView in this scenario.
- *
- * @return The LinearLayout in which the ListView is held.
- */
- protected LinearLayout getListViewContainer() {
- return mLinearLayout;
- }
-
- /**
- * Attaches a long press listener. You can find out which views were clicked by calling
- * {@link #getLongClickedPosition()}.
- */
- public void enableLongPress() {
- mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
- public boolean onItemLongClick(AdapterView parent, View v, int position, long id) {
- positionLongClicked(position);
- return true;
- }
- });
- }
-
- /**
- * @return The newly created ListView widget.
- */
- protected ListView createListView() {
- return new ListView(this);
- }
-
- /**
- * @return The newly created Params object.
- */
- protected Params createParams() {
- return new Params();
- }
-
- /**
- * Sets an adapter on a ListView.
- *
- * @param listView The ListView to set the adapter on.
- */
- protected void setAdapter(ListView listView) {
- listView.setAdapter(new MyAdapter());
- }
-
- /**
- * Read in and validate all of the params passed in by the scenario.
- * @param params
- */
- protected void readAndValidateParams(Params params) {
- if (params.mMustFillScreen ) {
- double totalFactor = 0.0;
- for (int i = 0; i < params.mNumItems; i++) {
- if (params.mOverrideItemScreenSizeFactors.containsKey(i)) {
- totalFactor += params.mOverrideItemScreenSizeFactors.get(i);
- } else {
- totalFactor += params.mItemScreenSizeFactor;
- }
- }
- if (totalFactor < 1.0) {
- throw new IllegalArgumentException("list items must combine to be at least " +
- "the height of the screen. this is not the case with " + params.mNumItems
- + " items and " + params.mItemScreenSizeFactor + " screen factor and " +
- "screen height of " + mScreenHeight);
- }
- }
-
- mNumItems = params.mNumItems;
- mItemsFocusable = params.mItemsFocusable;
- mStartingSelectionPosition = params.mStartingSelectionPosition;
- mItemScreenSizeFactor = params.mItemScreenSizeFactor;
-
- mOverrideItemScreenSizeFactors.putAll(params.mOverrideItemScreenSizeFactors);
-
- mUnselectableItems.addAll(params.mUnselectableItems);
- mIncludeHeader = params.mIncludeHeader;
- mStackFromBottom = params.mStackFromBottom;
- mHeaderViewCount = params.mHeaderViewCount;
- mHeadersFocusable = params.mHeaderFocusable;
- mFooterViewCount = params.mFooterViewCount;
- }
-
- public final String getValueAtPosition(int position) {
- return isItemAtPositionSelectable(position)
- ?
- "position " + position:
- "------- " + position;
- }
-
- /**
- * @return The height that will be set for a particular position.
- */
- public int getHeightForPosition(int position) {
- int desiredHeight = (int) (mScreenHeight * mItemScreenSizeFactor);
- if (mOverrideItemScreenSizeFactors.containsKey(position)) {
- desiredHeight = (int) (mScreenHeight * mOverrideItemScreenSizeFactors.get(position));
- }
- return desiredHeight;
- }
-
-
- /**
- * @return The contents of the header above the list.
- * @throws IllegalArgumentException if there is no header.
- */
- public final String getHeaderValue() {
- if (!mIncludeHeader) {
- throw new IllegalArgumentException("no header above list");
- }
- return mHeaderTextView.getText().toString();
- }
-
- /**
- * @param value What to put in the header text view
- * @throws IllegalArgumentException if there is no header.
- */
- protected final void setHeaderValue(String value) {
- if (!mIncludeHeader) {
- throw new IllegalArgumentException("no header above list");
- }
- mHeaderTextView.setText(value);
- }
-
- /**
- * Create a view for a list item. Override this to create a custom view beyond
- * the simple focusable / unfocusable text view.
- * @param position The position.
- * @param parent The parent
- * @param desiredHeight The height the view should be to respect the desired item
- * to screen height ratio.
- * @return a view for the list.
- */
- protected View createView(int position, ViewGroup parent, int desiredHeight) {
- return ListItemFactory.text(position, parent.getContext(), getValueAtPosition(position),
- desiredHeight);
- }
-
- /**
- * Convert a non-null view.
- */
- public View convertView(int position, View convertView, ViewGroup parent) {
- return ListItemFactory.convertText(convertView, getValueAtPosition(position), position);
- }
-
- public void setClickedPosition(int clickedPosition) {
- mClickedPosition = clickedPosition;
- }
-
- public int getClickedPosition() {
- return mClickedPosition;
- }
-
- public void setLongClickedPosition(int longClickedPosition) {
- mLongClickedPosition = longClickedPosition;
- }
-
- public int getLongClickedPosition() {
- return mLongClickedPosition;
- }
-
- /**
- * Have a child of the list view call {@link View#requestRectangleOnScreen(android.graphics.Rect)}.
- * @param childIndex The index into the viewgroup children (i.e the children that are
- * currently visible).
- * @param rect The rectangle, in the child's coordinates.
- */
- public void requestRectangleOnScreen(int childIndex, final Rect rect) {
- final View child = getListView().getChildAt(childIndex);
-
- child.post(new Runnable() {
- public void run() {
- child.requestRectangleOnScreen(rect);
- }
- });
- }
-
- /**
- * Return an item type for the specified position in the adapter. Override if your
- * adapter creates more than one type.
- */
- public int getItemViewType(int position) {
- return 0;
- }
-
- /**
- * Return an the number of types created by the adapter. Override if your
- * adapter creates more than one type.
- */
- public int getViewTypeCount() {
- return 1;
- }
-
- /**
- * @return The number of times convertView failed
- */
- public int getConvertMisses() {
- return mConvertMisses;
- }
-
- private class MyAdapter extends BaseAdapter {
-
- public int getCount() {
- return mNumItems;
- }
-
- public Object getItem(int position) {
- return getValueAtPosition(position);
- }
-
- public long getItemId(int position) {
- return position;
- }
-
- @Override
- public boolean areAllItemsEnabled() {
- return mUnselectableItems.isEmpty();
- }
-
- @Override
- public boolean isEnabled(int position) {
- return isItemAtPositionSelectable(position);
- }
-
- public View getView(int position, View convertView, ViewGroup parent) {
- View result = null;
- if (position >= mNumItems || position < 0) {
- throw new IllegalStateException("position out of range for adapter!");
- }
-
- if (convertView != null) {
- result = convertView(position, convertView, parent);
- if (result == null) {
- mConvertMisses++;
- }
- }
-
- if (result == null) {
- int desiredHeight = getHeightForPosition(position);
- result = createView(position, parent, desiredHeight);
- }
- return result;
- }
-
- @Override
- public int getItemViewType(int position) {
- return ListScenario.this.getItemViewType(position);
- }
-
- @Override
- public int getViewTypeCount() {
- return ListScenario.this.getViewTypeCount();
- }
-
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/util/ListUtil.java b/tests/FrameworkTest/src/com/android/frameworktest/util/ListUtil.java
deleted file mode 100644
index 1a05fac..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/util/ListUtil.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.util;
-
-import android.app.Instrumentation;
-import android.view.KeyEvent;
-import android.widget.ListView;
-
-
-/**
- * Various useful stuff for instrumentation testing listview.
- */
-public class ListUtil {
-
-
- private final ListView mListView;
- private final Instrumentation mInstrumentation;
-
- /**
- * @param listView The listview to act on
- * @param instrumentation The instrumentation to use.
- */
- public ListUtil(ListView listView, Instrumentation instrumentation) {
- mListView = listView;
- mInstrumentation = instrumentation;
- }
-
- /**
- * Set the selected position of the list view.
- * @param pos The desired position.
- */
- public final void setSelectedPosition(final int pos) {
- mListView.post(new Runnable() {
- public void run() {
- mListView.setSelection(pos);
- }
- });
- mInstrumentation.waitForIdleSync();
- }
-
- /**
- * Get the top of the list.
- */
- public final int getListTop() {
- return mListView.getListPaddingTop();
- }
-
- /**
- * Get the bottom of the list.
- */
- public final int getListBottom() {
- return mListView.getHeight() - mListView.getListPaddingBottom();
- }
-
- /**
- * Arrow (up or down as appropriate) to the desired position in the list.
- * @param desiredPos The desired position
- * @throws IllegalStateException if the position can't be reached within 20 presses.
- */
- public final void arrowScrollToSelectedPosition(int desiredPos) {
- if (desiredPos > mListView.getSelectedItemPosition()) {
- arrowDownToSelectedPosition(desiredPos);
- } else {
- arrowUpToSelectedPosition(desiredPos);
- }
- }
-
- private void arrowDownToSelectedPosition(int position) {
- int maxDowns = 20;
- while(mListView.getSelectedItemPosition() < position && --maxDowns > 0) {
- mInstrumentation.sendCharacterSync(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- if (position != mListView.getSelectedItemPosition()) {
- throw new IllegalStateException("couldn't get to item after 20 downs");
- }
-
- }
-
- private void arrowUpToSelectedPosition(int position) {
- int maxUps = 20;
- while(mListView.getSelectedItemPosition() > position && --maxUps > 0) {
- mInstrumentation.sendCharacterSync(KeyEvent.KEYCODE_DPAD_UP);
- }
- if (position != mListView.getSelectedItemPosition()) {
- throw new IllegalStateException("couldn't get to item after 20 ups");
- }
- }
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/util/ScrollViewScenario.java b/tests/FrameworkTest/src/com/android/frameworktest/util/ScrollViewScenario.java
deleted file mode 100644
index aa17194..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/util/ScrollViewScenario.java
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.util;
-
-import com.google.android.collect.Lists;
-
-import android.app.Activity;
-import android.content.Context;
-import android.os.Bundle;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.Window;
-import android.widget.Button;
-import android.widget.LinearLayout;
-import android.widget.ScrollView;
-import android.widget.TextView;
-
-import java.util.List;
-
-/**
- * Utility base class for creating scroll view scenarios, allowing you to add
- * a series of different kinds of views arranged vertically, taking up a
- * specified amount of the screen height.
- */
-public abstract class ScrollViewScenario extends Activity {
-
- /**
- * Holds content of scroll view
- */
- private LinearLayout mLinearLayout;
-
- /**
- * The actual scroll view
- */
- private ScrollView mScrollView;
-
-
- /**
- * What we need of each view that the user wants: the view, and the ratio
- * to the screen height for its desired height.
- */
- private interface ViewFactory {
- View create(final Context context);
-
- float getHeightRatio();
- }
-
- /**
- * Partially implement ViewFactory given a height ratio.
- */
- private static abstract class ViewFactoryBase implements ViewFactory {
-
- private float mHeightRatio;
-
- @SuppressWarnings({"UnusedDeclaration"})
- private ViewFactoryBase() {throw new UnsupportedOperationException("don't call this!");}
-
- protected ViewFactoryBase(float heightRatio) {
- mHeightRatio = heightRatio;
- }
-
- public float getHeightRatio() {
- return mHeightRatio;
- }
- }
-
- /**
- * Builder for selecting the views to be vertically arranged in the scroll
- * view.
- */
- @SuppressWarnings({"JavaDoc"})
- public static class Params {
-
- List<ViewFactory> mViewFactories = Lists.newArrayList();
-
- /**
- * Add a text view.
- * @param text The text of the text view.
- * @param heightRatio The view's height will be this * the screen height.
- */
- public Params addTextView(final String text, float heightRatio) {
- mViewFactories.add(new ViewFactoryBase(heightRatio) {
- public View create(final Context context) {
- final TextView tv = new TextView(context);
- tv.setText(text);
- return tv;
- }
- });
- return this;
- }
-
- /**
- * Add multiple text views.
- * @param numViews the number of views to add.
- * @param textPrefix The text to prepend to each text view.
- * @param heightRatio The view's height will be this * the screen height.
- */
- public Params addTextViews(int numViews, String textPrefix, float heightRatio) {
- for (int i = 0; i < numViews; i++) {
- addTextView(textPrefix + i, heightRatio);
- }
- return this;
- }
-
- /**
- * Add a button.
- * @param text The text of the button.
- * @param heightRatio The view's height will be this * the screen height.
- */
- public Params addButton(final String text, float heightRatio) {
- mViewFactories.add(new ViewFactoryBase(heightRatio) {
- public View create(final Context context) {
- final Button button = new Button(context);
- button.setText(text);
- return button;
- }
- });
- return this;
- }
-
- /**
- * Add multiple buttons.
- * @param numButtons the number of views to add.
- * @param textPrefix The text to prepend to each button.
- * @param heightRatio The view's height will be this * the screen height.
- */
- public Params addButtons(int numButtons, String textPrefix, float heightRatio) {
- for (int i = 0; i < numButtons; i++) {
- addButton(textPrefix + i, heightRatio);
- }
- return this;
- }
-
- /**
- * Add an {@link InternalSelectionView}.
- * @param numRows The number of rows in the internal selection view.
- * @param heightRatio The view's height will be this * the screen height.
- */
- public Params addInternalSelectionView(final int numRows, float heightRatio) {
- mViewFactories.add(new ViewFactoryBase(heightRatio) {
- public View create(final Context context) {
- return new InternalSelectionView(context, numRows, "isv");
- }
- });
- return this;
- }
-
- /**
- * Add a sublayout of buttons as a single child of the scroll view.
- * @param numButtons The number of buttons in the sub layout
- * @param heightRatio The layout's height will be this * the screen height.
- */
- public Params addVerticalLLOfButtons(final String prefix, final int numButtons, float heightRatio) {
- mViewFactories.add(new ViewFactoryBase(heightRatio) {
-
- public View create(Context context) {
- final LinearLayout ll = new LinearLayout(context);
- ll.setOrientation(LinearLayout.VERTICAL);
-
- // fill width, equally weighted on height
- final LinearLayout.LayoutParams lp =
- new LinearLayout.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT, 0, 1f);
- for (int i = 0; i < numButtons; i++) {
- final Button button = new Button(context);
- button.setText(prefix + i);
- ll.addView(button, lp);
- }
-
- return ll;
- }
- });
- return this;
- }
- }
-
- /**
- * Override this and initialized the views in the scroll view.
- * @param params Used to configure the contents of the scroll view.
- */
- protected abstract void init(Params params);
-
- public LinearLayout getLinearLayout() {
- return mLinearLayout;
- }
-
- public ScrollView getScrollView() {
- return mScrollView;
- }
-
- /**
- * Get the child contained within the vertical linear layout of the
- * scroll view.
- * @param index The index within the linear layout.
- * @return the child within the vertical linear layout of the scroll view
- * at the specified index.
- */
- @SuppressWarnings({"unchecked"})
- public <T extends View> T getContentChildAt(int index) {
- return (T) mLinearLayout.getChildAt(index);
- }
-
- /**
- * Hook for changing how scroll view's are created.
- */
- @SuppressWarnings({"JavaDoc"})
- protected ScrollView createScrollView() {
- return new ScrollView(this);
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- // for test stability, turn off title bar
- requestWindowFeature(Window.FEATURE_NO_TITLE);
- int screenHeight = getWindowManager().getDefaultDisplay().getHeight()
- - 25;
- mLinearLayout = new LinearLayout(this);
- mLinearLayout.setOrientation(LinearLayout.VERTICAL);
-
- // initialize params
- final Params params = new Params();
- init(params);
-
- // create views specified by params
- for (ViewFactory viewFactory : params.mViewFactories) {
- final LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- (int) (viewFactory.getHeightRatio() * screenHeight));
- mLinearLayout.addView(viewFactory.create(this), lp);
- }
-
- mScrollView = createScrollView();
- mScrollView.addView(mLinearLayout, new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT));
-
- // no animation to speed up tests
- mScrollView.setSmoothScrollingEnabled(false);
-
- setContentView(mScrollView);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/util/TouchModeFlexibleAsserts.java b/tests/FrameworkTest/src/com/android/frameworktest/util/TouchModeFlexibleAsserts.java
deleted file mode 100644
index 66adb17..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/util/TouchModeFlexibleAsserts.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.util;
-
-import junit.framework.Assert;
-
-import android.test.InstrumentationTestCase;
-import android.test.TouchUtils;
-import android.view.View;
-
-/**
- * When entering touch mode via touch, the tests can be flaky. These asserts
- * are more flexible (allowing up to MAX_ATTEMPTS touches to enter touch mode via touch or
- * tap) until we can find a way to solve the flakiness.
- */
-public class TouchModeFlexibleAsserts {
-
- private static int MAX_ATTEMPTS = 2;
-
- private static int MAX_DELAY_MILLIS = 2000;
-
- public static void assertInTouchModeAfterClick(InstrumentationTestCase test, View viewToTouch) {
- int numAttemptsAtTouchMode = 0;
- while (numAttemptsAtTouchMode < MAX_ATTEMPTS &&
- !viewToTouch.isInTouchMode()) {
- TouchUtils.clickView(test, viewToTouch);
- numAttemptsAtTouchMode++;
- }
- Assert.assertTrue("even after " + MAX_ATTEMPTS + " clicks, did not enter "
- + "touch mode", viewToTouch.isInTouchMode());
- //Assert.assertEquals("number of touches to enter touch mode", 1, numAttemptsAtTouchMode);
- }
-
- public static void assertInTouchModeAfterTap(InstrumentationTestCase test, View viewToTouch) {
- int numAttemptsAtTouchMode = 0;
- while (numAttemptsAtTouchMode < MAX_ATTEMPTS &&
- !viewToTouch.isInTouchMode()) {
- TouchUtils.tapView(test, viewToTouch);
- numAttemptsAtTouchMode++;
- }
- Assert.assertTrue("even after " + MAX_ATTEMPTS + " taps, did not enter "
- + "touch mode", viewToTouch.isInTouchMode());
- //Assert.assertEquals("number of touches to enter touch mode", 1, numAttemptsAtTouchMode);
- }
-
- public static void assertNotInTouchModeAfterKey(InstrumentationTestCase test, int keyCode, View checkForTouchMode) {
- test.sendKeys(keyCode);
- int amountLeft = MAX_DELAY_MILLIS;
-
- while (checkForTouchMode.isInTouchMode() && amountLeft > 0) {
- amountLeft -= 200;
- try {
- Thread.sleep(200);
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
- }
- Assert.assertFalse("even after waiting " + MAX_DELAY_MILLIS + " millis after "
- + "pressing key event, still in touch mode", checkForTouchMode.isInTouchMode());
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/view/BigCache.java b/tests/FrameworkTest/src/com/android/frameworktest/view/BigCache.java
deleted file mode 100644
index 6f5eb00..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/view/BigCache.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import com.android.frameworktest.R;
-
-import android.os.Bundle;
-import android.app.Activity;
-import android.widget.LinearLayout;
-import android.widget.ScrollView;
-import android.view.ViewGroup;
-import android.view.View;
-import android.view.Display;
-import android.view.ViewConfiguration;
-
-/**
- * This activity contains two Views, one as big as the screen, one much larger. The large one
- * should not be able to activate its drawing cache.
- */
-public class BigCache extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- final LinearLayout testBed = new LinearLayout(this);
- testBed.setOrientation(LinearLayout.VERTICAL);
- testBed.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
-
- final int cacheSize = ViewConfiguration.getMaximumDrawingCacheSize();
- final Display display = getWindowManager().getDefaultDisplay();
- final int screenWidth = display.getWidth();
- final int screenHeight = display.getHeight();
-
- final View tiny = new View(this);
- tiny.setId(R.id.a);
- tiny.setBackgroundColor(0xFFFF0000);
- tiny.setLayoutParams(new LinearLayout.LayoutParams(screenWidth, screenHeight));
-
- final View large = new View(this);
- large.setId(R.id.b);
- large.setBackgroundColor(0xFF00FF00);
- // Compute the height of the view assuming a cache size based on ARGB8888
- final int height = 2 * (cacheSize / 2) / screenWidth;
- large.setLayoutParams(new LinearLayout.LayoutParams(screenWidth, height));
-
- final ScrollView scroller = new ScrollView(this);
- scroller.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT));
-
- testBed.addView(tiny);
- testBed.addView(large);
- scroller.addView(testBed);
-
- setContentView(scroller);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/view/Disabled.java b/tests/FrameworkTest/src/com/android/frameworktest/view/Disabled.java
deleted file mode 100644
index 1f1f4f4..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/view/Disabled.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import com.android.frameworktest.R;
-
-import android.os.Bundle;
-import android.widget.Button;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.app.Activity;
-
-/**
- * Exercise View's disabled state.
- */
-public class Disabled extends Activity implements OnClickListener {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.disabled);
-
- // Find our buttons
- Button disabledButton = (Button) findViewById(R.id.disabledButton);
- disabledButton.setEnabled(false);
-
- // Find our buttons
- Button disabledButtonA = (Button) findViewById(R.id.disabledButtonA);
- disabledButtonA.setOnClickListener(this);
- }
-
- public void onClick(View v) {
- Button disabledButtonB = (Button) findViewById(R.id.disabledButtonB);
- disabledButtonB.setEnabled(!disabledButtonB.isEnabled());
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/view/GlobalFocusChange.java b/tests/FrameworkTest/src/com/android/frameworktest/view/GlobalFocusChange.java
deleted file mode 100644
index 1cbf05a..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/view/GlobalFocusChange.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.ViewTreeObserver;
-import android.view.View;
-
-public class GlobalFocusChange extends Activity implements ViewTreeObserver.OnGlobalFocusChangeListener {
- public View mOldFocus;
- public View mNewFocus;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- setContentView(R.layout.focus_listener);
- findViewById(R.id.left).getViewTreeObserver().addOnGlobalFocusChangeListener(this);
- }
-
- public void reset() {
- mOldFocus = mNewFocus = null;
- }
-
- public void onGlobalFocusChanged(View oldFocus, View newFocus) {
- mOldFocus = oldFocus;
- mNewFocus = newFocus;
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/view/Include.java b/tests/FrameworkTest/src/com/android/frameworktest/view/Include.java
deleted file mode 100644
index fc36e37..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/view/Include.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import com.android.frameworktest.R;
-
-import android.os.Bundle;
-import android.app.Activity;
-
-/**
- * Exercise <include /> tag in XML files.
- */
-public class Include extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.include_tag);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/view/Longpress.java b/tests/FrameworkTest/src/com/android/frameworktest/view/Longpress.java
deleted file mode 100644
index f3483fc..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/view/Longpress.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import com.android.frameworktest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-public class Longpress extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- setContentView(R.layout.longpress);
- }
-}
-
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/view/Merge.java b/tests/FrameworkTest/src/com/android/frameworktest/view/Merge.java
deleted file mode 100644
index 9596e91..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/view/Merge.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import com.android.frameworktest.R;
-
-import android.os.Bundle;
-import android.app.Activity;
-import android.widget.LinearLayout;
-import android.view.ViewGroup;
-import android.view.LayoutInflater;
-
-/**
- * Exercise <merge /> tag in XML files.
- */
-public class Merge extends Activity {
- private LinearLayout mLayout;
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- mLayout = new LinearLayout(this);
- mLayout.setOrientation(LinearLayout.VERTICAL);
- LayoutInflater.from(this).inflate(R.layout.merge_tag, mLayout);
-
- setContentView(mLayout);
- }
-
- public ViewGroup getLayout() {
- return mLayout;
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/view/PopupWindowVisibility.java b/tests/FrameworkTest/src/com/android/frameworktest/view/PopupWindowVisibility.java
deleted file mode 100644
index f4d477d4..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/view/PopupWindowVisibility.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.ArrayAdapter;
-import android.widget.AutoCompleteTextView;
-import android.widget.Button;
-import android.widget.Spinner;
-
-import com.android.frameworktest.R;
-
-/**
- * Tests views with popupWindows becoming invisible
- */
-public class PopupWindowVisibility extends Activity implements OnClickListener {
-
- private View mFrame;
- private Button mHide;
- private Button mShow;
-
-
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.popup_window_visibility);
-
- mFrame = findViewById(R.id.frame);
-
- mHide = (Button) findViewById(R.id.hide);
- mHide.setOnClickListener(this);
-
- mShow = (Button) findViewById(R.id.show);
- mShow.setOnClickListener(this);
-
- Spinner spinner = (Spinner) findViewById(R.id.spinner);
- ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this,
- android.R.layout.simple_spinner_item, mStrings);
- spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- spinner.setAdapter(spinnerAdapter);
-
- ArrayAdapter<String> autoAdapter = new ArrayAdapter<String>(this,
- android.R.layout.simple_dropdown_item_1line, COUNTRIES);
- AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.auto);
- textView.setAdapter(autoAdapter);
- }
-
-
- public void onClick(View v) {
- mFrame.setVisibility(v == mHide ? View.INVISIBLE : View.VISIBLE);
- }
- private static final String[] mStrings = {
- "Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"
- };
-
- static final String[] COUNTRIES = new String[] {
- "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",
- "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina",
- "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan",
- "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium",
- "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia",
- "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", "British Indian Ocean Territory",
- "British Virgin Islands", "Brunei", "Bulgaria", "Burkina Faso", "Burundi",
- "Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde",
- "Cayman Islands", "Central African Republic", "Chad", "Chile", "China",
- "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo",
- "Cook Islands", "Costa Rica", "Croatia", "Cuba", "Cyprus", "Czech Republic",
- "Democratic Republic of the Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic",
- "East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea",
- "Estonia", "Ethiopia", "Faeroe Islands", "Falkland Islands", "Fiji", "Finland",
- "Former Yugoslav Republic of Macedonia", "France", "French Guiana", "French Polynesia",
- "French Southern Territories", "Gabon", "Georgia", "Germany", "Ghana", "Gibraltar",
- "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guinea", "Guinea-Bissau",
- "Guyana", "Haiti", "Heard Island and McDonald Islands", "Honduras", "Hong Kong", "Hungary",
- "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica",
- "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kuwait", "Kyrgyzstan", "Laos",
- "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg",
- "Macau", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands",
- "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova",
- "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Myanmar", "Namibia",
- "Nauru", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia", "New Zealand",
- "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea", "Northern Marianas",
- "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru",
- "Philippines", "Pitcairn Islands", "Poland", "Portugal", "Puerto Rico", "Qatar",
- "Reunion", "Romania", "Russia", "Rwanda", "Sqo Tome and Principe", "Saint Helena",
- "Saint Kitts and Nevis", "Saint Lucia", "Saint Pierre and Miquelon",
- "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Saudi Arabia", "Senegal",
- "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands",
- "Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "South Korea",
- "Spain", "Sri Lanka", "Sudan", "Suriname", "Svalbard and Jan Mayen", "Swaziland", "Sweden",
- "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "The Bahamas",
- "The Gambia", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey",
- "Turkmenistan", "Turks and Caicos Islands", "Tuvalu", "Virgin Islands", "Uganda",
- "Ukraine", "United Arab Emirates", "United Kingdom",
- "United States", "United States Minor Outlying Islands", "Uruguay", "Uzbekistan",
- "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Wallis and Futuna", "Western Sahara",
- "Yemen", "Yugoslavia", "Zambia", "Zimbabwe"
- };
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/view/PreDrawListener.java b/tests/FrameworkTest/src/com/android/frameworktest/view/PreDrawListener.java
deleted file mode 100644
index cb456b2..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/view/PreDrawListener.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import android.app.Activity;
-import android.content.Context;
-import android.os.Bundle;
-import android.util.AttributeSet;
-import android.view.View;
-import android.view.ViewTreeObserver;
-import android.view.View.OnClickListener;
-import android.widget.Button;
-import android.widget.LinearLayout;
-
-import com.android.frameworktest.R;
-
-
-/**
- * Tests views with popupWindows becoming invisible
- */
-public class PreDrawListener extends Activity implements OnClickListener {
-
- private MyLinearLayout mFrame;
-
-
- static public class MyLinearLayout extends LinearLayout implements
- ViewTreeObserver.OnPreDrawListener {
-
- public boolean mCancelNextDraw;
-
- public MyLinearLayout(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- public MyLinearLayout(Context context) {
- super(context);
- }
-
- @Override
- protected void onAttachedToWindow() {
- super.onAttachedToWindow();
- getViewTreeObserver().addOnPreDrawListener(this);
- }
-
- public boolean onPreDraw() {
- if (mCancelNextDraw) {
- Button b = new Button(this.getContext());
- b.setText("Hello");
- addView(b, new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,
- LayoutParams.WRAP_CONTENT));
- mCancelNextDraw = false;
- return false;
- }
- return true;
- }
-
- }
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.pre_draw_listener);
-
- mFrame = (MyLinearLayout) findViewById(R.id.frame);
-
- Button mGoButton = (Button) findViewById(R.id.go);
- mGoButton.setOnClickListener(this);
- }
-
-
- public void onClick(View v) {
- mFrame.mCancelNextDraw = true;
- mFrame.invalidate();
- }
-
-
-
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/view/RemoteViewsActivity.java b/tests/FrameworkTest/src/com/android/frameworktest/view/RemoteViewsActivity.java
deleted file mode 100644
index 146c0ab..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/view/RemoteViewsActivity.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-import com.android.frameworktest.R;
-
-/**
- * Exercise RemoteViews -- especially filtering
- */
-public class RemoteViewsActivity extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.remote_view_host);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/view/RunQueue.java b/tests/FrameworkTest/src/com/android/frameworktest/view/RunQueue.java
deleted file mode 100644
index c8c3c28..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/view/RunQueue.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.widget.TextView;
-import android.view.View;
-import android.view.ViewTreeObserver;
-import com.android.frameworktest.R;
-
-/**
- * Tests views using post*() and getViewTreeObserver() before onAttachedToWindow().
- */
-public class RunQueue extends Activity implements ViewTreeObserver.OnGlobalLayoutListener {
- public boolean runnableRan = false;
- public boolean runnableCancelled = true;
- public boolean globalLayout = false;
- public ViewTreeObserver viewTreeObserver;
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- TextView textView = new TextView(this);
- textView.setText("RunQueue");
- textView.setId(R.id.simple_view);
-
- setContentView(textView);
- final View view = findViewById(R.id.simple_view);
-
- view.post(new Runnable() {
- public void run() {
- runnableRan = true;
- }
- });
-
- final Runnable runnable = new Runnable() {
- public void run() {
- runnableCancelled = false;
- }
- };
- view.post(runnable);
- view.post(runnable);
- view.post(runnable);
- view.post(runnable);
- view.removeCallbacks(runnable);
-
- viewTreeObserver = view.getViewTreeObserver();
- viewTreeObserver.addOnGlobalLayoutListener(this);
- }
-
- public void onGlobalLayout() {
- globalLayout = true;
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/view/StubbedView.java b/tests/FrameworkTest/src/com/android/frameworktest/view/StubbedView.java
deleted file mode 100644
index 2b0db9d..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/view/StubbedView.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import com.android.frameworktest.R;
-
-import android.os.Bundle;
-import android.app.Activity;
-import android.view.View;
-
-/**
- * Exercise <ViewStub /> tag in XML files.
- */
-public class StubbedView extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.viewstub);
-
- findViewById(R.id.vis).setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- final View view = findViewById(R.id.viewStub);
- if (view != null) {
- view.setVisibility(View.VISIBLE);
- }
- }
- });
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/view/ViewGroupChildren.java b/tests/FrameworkTest/src/com/android/frameworktest/view/ViewGroupChildren.java
deleted file mode 100644
index 163e03c..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/view/ViewGroupChildren.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import com.android.frameworktest.R;
-
-import android.os.Bundle;
-import android.widget.Button;
-import android.view.View;
-import android.app.Activity;
-
-/**
- * Exercise ViewGroup's ability to add and remove children.
- */
-public class ViewGroupChildren extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.viewgroupchildren);
- }
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/view/Visibility.java b/tests/FrameworkTest/src/com/android/frameworktest/view/Visibility.java
deleted file mode 100644
index e068620..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/view/Visibility.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import com.android.frameworktest.R;
-
-import android.os.Bundle;
-import android.widget.Button;
-import android.view.View;
-import android.app.Activity;
-
-/**
- * Exercise View's ability to change their visibility: GONE, INVISIBLE and
- * VISIBLE.
- */
-public class Visibility extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.visibility);
-
- // Find the view whose visibility will change
- mVictim = findViewById(R.id.victim);
-
- // Find our buttons
- Button visibleButton = (Button) findViewById(R.id.vis);
- Button invisibleButton = (Button) findViewById(R.id.invis);
- Button goneButton = (Button) findViewById(R.id.gone);
-
- // Wire each button to a click listener
- visibleButton.setOnClickListener(mVisibleListener);
- invisibleButton.setOnClickListener(mInvisibleListener);
- goneButton.setOnClickListener(mGoneListener);
- }
-
-
- View.OnClickListener mVisibleListener = new View.OnClickListener() {
- public void onClick(View v) {
- mVictim.setVisibility(View.VISIBLE);
- }
- };
-
- View.OnClickListener mInvisibleListener = new View.OnClickListener() {
- public void onClick(View v) {
- mVictim.setVisibility(View.INVISIBLE);
- }
- };
-
- View.OnClickListener mGoneListener = new View.OnClickListener() {
- public void onClick(View v) {
- mVictim.setVisibility(View.GONE);
- }
- };
-
- private View mVictim;
-}
diff --git a/tests/FrameworkTest/src/com/android/frameworktest/view/ZeroSized.java b/tests/FrameworkTest/src/com/android/frameworktest/view/ZeroSized.java
deleted file mode 100644
index e858fc0..0000000
--- a/tests/FrameworkTest/src/com/android/frameworktest/view/ZeroSized.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import com.android.frameworktest.R;
-
-import android.os.Bundle;
-import android.app.Activity;
-
-/**
- * This activity contains Views with various widths and heights. The goal is to exercise the
- * drawing cache when width is null, height is null or both.
- */
-public class ZeroSized extends Activity {
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.zero_sized);
- }
-}
diff --git a/tests/FrameworkTest/tests/Android.mk b/tests/FrameworkTest/tests/Android.mk
deleted file mode 100644
index 5c54684..0000000
--- a/tests/FrameworkTest/tests/Android.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-# We only want this apk build for tests.
-LOCAL_MODULE_TAGS := tests
-
-# Include all test java files.
-LOCAL_SRC_FILES := $(call all-subdir-java-files)
-
-LOCAL_JAVA_LIBRARIES := android.test.runner
-
-LOCAL_PACKAGE_NAME := FrameworkTestTests
-
-LOCAL_INSTRUMENTATION_FOR := FrameworkTest
-
-include $(BUILD_PACKAGE)
-
diff --git a/tests/FrameworkTest/tests/AndroidManifest.xml b/tests/FrameworkTest/tests/AndroidManifest.xml
deleted file mode 100644
index 65aaebb..0000000
--- a/tests/FrameworkTest/tests/AndroidManifest.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<!-- package name must be unique so suffix with "tests" so package loader doesn't ignore us -->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.frameworktest.tests">
-
- <application>
- <uses-library android:name="android.test.runner" />
- </application>
-
- <!--
- This declares that this app uses the instrumentation test runner targeting
- the package of com.android.frameworktest. To run the tests use the command:
- "adb shell am instrument -w com.android.frameworktest.tests/android.test.InstrumentationTestRunner"
- -->
- <instrumentation android:name="android.test.InstrumentationTestRunner"
- android:targetPackage="com.android.frameworktest"
- android:label="framework tests"/>
-
-</manifest>
diff --git a/tests/FrameworkTest/tests/src/android/content/AbstractTableMergerTest.java b/tests/FrameworkTest/tests/src/android/content/AbstractTableMergerTest.java
deleted file mode 100644
index aa3d186..0000000
--- a/tests/FrameworkTest/tests/src/android/content/AbstractTableMergerTest.java
+++ /dev/null
@@ -1,578 +0,0 @@
-package android.content;
-
-import com.google.android.collect.Lists;
-import com.google.android.collect.Sets;
-
-import android.database.Cursor;
-import android.database.sqlite.SQLiteDatabase;
-import android.net.Uri;
-import android.test.AndroidTestCase;
-import android.text.TextUtils;
-
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.SortedSet;
-
-/** Unit test for {@link android.content.AbstractTableMerger}. */
-public class AbstractTableMergerTest extends AndroidTestCase {
- MockSyncableContentProvider mRealProvider;
- MockSyncableContentProvider mTempProvider;
- MockTableMerger mMerger;
- MockSyncContext mSyncContext;
-
- static final String TABLE_NAME = "items";
- static final String DELETED_TABLE_NAME = "deleted_items";
- static final Uri CONTENT_URI = Uri.parse("content://testdata");
- static final Uri TABLE_URI = Uri.withAppendedPath(CONTENT_URI, TABLE_NAME);
- static final Uri DELETED_TABLE_URI = Uri.withAppendedPath(CONTENT_URI, DELETED_TABLE_NAME);
-
- private final String ACCOUNT = "account@goo.com";
-
- private final ArrayList<Expectation> mExpectations = Lists.newArrayList();
-
- static class Expectation {
- enum Type {
- UPDATE,
- INSERT,
- DELETE,
- RESOLVE
- }
-
- Type mType;
- ContentValues mValues;
- Long mLocalRowId;
-
- Expectation(Type type, Long localRowId, ContentValues values) {
- mType = type;
- mValues = values;
- mLocalRowId = localRowId;
- if (type == Type.DELETE) {
- assertNull(values);
- } else {
- assertFalse(values.containsKey("_id"));
- }
- }
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mSyncContext = new MockSyncContext();
- mRealProvider = new MockSyncableContentProvider();
- mTempProvider = mRealProvider.getTemporaryInstance();
- mMerger = new MockTableMerger(mRealProvider.getDatabase(),
- TABLE_NAME, TABLE_URI, DELETED_TABLE_NAME, DELETED_TABLE_URI);
- mExpectations.clear();
- }
-
- ContentValues newValues(String data, String syncId, String syncAccount,
- String syncTime, String syncVersion, Long syncLocalId) {
- ContentValues values = new ContentValues();
- if (data != null) values.put("data", data);
- if (syncTime != null) values.put("_sync_time", syncTime);
- if (syncVersion != null) values.put("_sync_version", syncVersion);
- if (syncId != null) values.put("_sync_id", syncId);
- if (syncAccount != null) values.put("_sync_account", syncAccount);
- values.put("_sync_local_id", syncLocalId);
- values.put("_sync_dirty", 0);
- return values;
- }
-
- ContentValues newDeletedValues(String syncId, String syncAccount, String syncVersion,
- Long syncLocalId) {
- ContentValues values = new ContentValues();
- if (syncVersion != null) values.put("_sync_version", syncVersion);
- if (syncId != null) values.put("_sync_id", syncId);
- if (syncAccount != null) values.put("_sync_account", syncAccount);
- if (syncLocalId != null) values.put("_sync_local_id", syncLocalId);
- return values;
- }
-
- ContentValues newModifyData(String data) {
- ContentValues values = new ContentValues();
- values.put("data", data);
- values.put("_sync_dirty", 1);
- return values;
- }
-
- // Want to test adding, changing, deleting entries to a provider that has extra entries
- // before and after the entries being changed.
- public void testInsert() {
- // add rows to the real provider
- // add new row to the temp provider
- final ContentValues row1 = newValues("d1", "si1", ACCOUNT, "st1", "sv1", null);
- mTempProvider.insert(TABLE_URI, row1);
-
- // add expected callbacks to merger
- mExpectations.add(new Expectation(Expectation.Type.INSERT, null /* syncLocalId */, row1));
-
- // run merger
- SyncResult syncResult = new SyncResult();
- mMerger.mergeServerDiffs(mSyncContext, ACCOUNT, mTempProvider, syncResult);
-
- // check that all expectations were met
- assertEquals("not all expectations were met", 0, mExpectations.size());
- }
-
- public void testUpdateWithLocalId() {
- // add rows to the real provider
- // add new row to the temp provider that matches an unsynced row in the real provider
- final ContentValues row1 = newValues("d1", "si1", ACCOUNT, "st1", "sv1", 11L);
- mTempProvider.insert(TABLE_URI, row1);
-
- // add expected callbacks to merger
- mExpectations.add(new Expectation(Expectation.Type.UPDATE, 11L, row1));
-
- // run merger
- SyncResult syncResult = new SyncResult();
- mMerger.mergeServerDiffs(mSyncContext, ACCOUNT, mTempProvider, syncResult);
-
- // check that all expectations were met
- assertEquals("not all expectations were met", 0, mExpectations.size());
- }
-
- public void testUpdateWithoutLocalId() {
- // add rows to the real provider
- Uri i1 = mRealProvider.insert(TABLE_URI,
- newValues("d1", "si1", ACCOUNT, "st1", "sv1", null));
-
- // add new row to the temp provider that matches an unsynced row in the real provider
- final ContentValues row1 = newValues("d2", "si1", ACCOUNT, "st2", "sv2", null);
- mTempProvider.insert(TABLE_URI, row1);
-
- // add expected callbacks to merger
- mExpectations.add(new Expectation(Expectation.Type.UPDATE, ContentUris.parseId(i1), row1));
-
- // run merger
- SyncResult syncResult = new SyncResult();
- mMerger.mergeServerDiffs(mSyncContext, ACCOUNT, mTempProvider, syncResult);
-
- // check that all expectations were met
- assertEquals("not all expectations were met", 0, mExpectations.size());
- }
-
- public void testResolve() {
- // add rows to the real provider
- Uri i1 = mRealProvider.insert(TABLE_URI,
- newValues("d1", "si1", ACCOUNT, "st1", "sv1", null));
- mRealProvider.update(TABLE_URI, newModifyData("d2"), null, null);
-
- // add row to the temp provider that matches a dirty, synced row in the real provider
- final ContentValues row1 = newValues("d3", "si1", ACCOUNT, "st2", "sv2", null);
- mTempProvider.insert(TABLE_URI, row1);
-
- // add expected callbacks to merger
- mExpectations.add(new Expectation(Expectation.Type.RESOLVE, ContentUris.parseId(i1), row1));
-
- // run merger
- SyncResult syncResult = new SyncResult();
- mMerger.mergeServerDiffs(mSyncContext, ACCOUNT, mTempProvider, syncResult);
-
- // check that all expectations were met
- assertEquals("not all expectations were met", 0, mExpectations.size());
- }
-
- public void testResolveWithLocalId() {
- // add rows to the real provider
- Uri i1 = mRealProvider.insert(TABLE_URI,
- newValues("d1", "si1", ACCOUNT, "st1", "sv1", null));
- mRealProvider.update(TABLE_URI, newModifyData("d2"), null, null);
-
- // add row to the temp provider that matches a dirty, synced row in the real provider
- ContentValues row1 = newValues("d2", "si1", ACCOUNT, "st2", "sv2", ContentUris.parseId(i1));
- mTempProvider.insert(TABLE_URI, row1);
-
- // add expected callbacks to merger
- mExpectations.add(new Expectation(Expectation.Type.UPDATE, ContentUris.parseId(i1), row1));
-
- // run merger
- SyncResult syncResult = new SyncResult();
- mMerger.mergeServerDiffs(mSyncContext, ACCOUNT, mTempProvider, syncResult);
-
- // check that all expectations were met
- assertEquals("not all expectations were met", 0, mExpectations.size());
- }
-
- public void testDeleteRowAfterDelete() {
- // add rows to the real provider
- Uri i1 = mRealProvider.insert(TABLE_URI,
- newValues("d1", "si1", ACCOUNT, "st1", "sv1", null));
-
- // add a deleted record to the temp provider
- ContentValues row1 = newDeletedValues(null, null, null, ContentUris.parseId(i1));
- mTempProvider.insert(DELETED_TABLE_URI, row1);
-
- // add expected callbacks to merger
- mExpectations.add(new Expectation(Expectation.Type.DELETE, ContentUris.parseId(i1), null));
-
- // run merger
- SyncResult syncResult = new SyncResult();
- mMerger.mergeServerDiffs(mSyncContext, ACCOUNT, mTempProvider, syncResult);
-
- // check that all expectations were met
- assertEquals("not all expectations were met", 0, mExpectations.size());
- }
-
- public void testDeleteRowAfterInsert() {
- // add rows to the real provider
- Uri i1 = mRealProvider.insert(TABLE_URI, newModifyData("d1"));
-
- // add a deleted record to the temp provider
- ContentValues row1 = newDeletedValues(null, null, null, ContentUris.parseId(i1));
- mTempProvider.insert(DELETED_TABLE_URI, row1);
-
- // add expected callbacks to merger
- mExpectations.add(new Expectation(Expectation.Type.DELETE, ContentUris.parseId(i1), null));
-
- // run merger
- SyncResult syncResult = new SyncResult();
- mMerger.mergeServerDiffs(mSyncContext, ACCOUNT, mTempProvider, syncResult);
-
- // check that all expectations were met
- assertEquals("not all expectations were met", 0, mExpectations.size());
- }
-
- public void testDeleteRowAfterUpdate() {
- // add rows to the real provider
- Uri i1 = mRealProvider.insert(TABLE_URI,
- newValues("d1", "si1", ACCOUNT, "st1", "sv1", null));
-
- // add a deleted record to the temp provider
- ContentValues row1 = newDeletedValues("si1", ACCOUNT, "sv1", ContentUris.parseId(i1));
- mTempProvider.insert(DELETED_TABLE_URI, row1);
-
- // add expected callbacks to merger
- mExpectations.add(new Expectation(Expectation.Type.DELETE, ContentUris.parseId(i1), null));
-
- // run merger
- SyncResult syncResult = new SyncResult();
- mMerger.mergeServerDiffs(mSyncContext, ACCOUNT, mTempProvider, syncResult);
-
- // check that all expectations were met
- assertEquals("not all expectations were met", 0, mExpectations.size());
- }
-
- public void testDeleteRowFromServer() {
- // add rows to the real provider
- Uri i1 = mRealProvider.insert(TABLE_URI,
- newValues("d1", "si1", ACCOUNT, "st1", "sv1", null));
-
- // add a deleted record to the temp provider
- ContentValues row1 = newDeletedValues("si1", ACCOUNT, "sv1", null);
- mTempProvider.insert(DELETED_TABLE_URI, row1);
-
- // add expected callbacks to merger
- mExpectations.add(new Expectation(Expectation.Type.DELETE, ContentUris.parseId(i1), null));
-
- // run merger
- SyncResult syncResult = new SyncResult();
- mMerger.mergeServerDiffs(mSyncContext, ACCOUNT, mTempProvider, syncResult);
-
- // check that all expectations were met
- assertEquals("not all expectations were met", 0, mExpectations.size());
- }
-
- class MockTableMerger extends AbstractTableMerger {
- public MockTableMerger(SQLiteDatabase database, String table, Uri tableURL,
- String deletedTable, Uri deletedTableURL) {
- super(database, table, tableURL, deletedTable, deletedTableURL);
- }
-
- public void insertRow(ContentProvider diffs, Cursor diffsCursor) {
- Expectation expectation = mExpectations.remove(0);
- checkExpectation(expectation,
- Expectation.Type.INSERT, null /* syncLocalId */, diffsCursor);
- }
-
- public void updateRow(long localPersonID, ContentProvider diffs, Cursor diffsCursor) {
- Expectation expectation = mExpectations.remove(0);
- checkExpectation(expectation, Expectation.Type.UPDATE, localPersonID, diffsCursor);
- }
-
- public void resolveRow(long localPersonID, String syncID, ContentProvider diffs,
- Cursor diffsCursor) {
- Expectation expectation = mExpectations.remove(0);
- checkExpectation(expectation, Expectation.Type.RESOLVE, localPersonID, diffsCursor);
- }
-
- @Override
- public void deleteRow(Cursor cursor) {
- Expectation expectation = mExpectations.remove(0);
- assertEquals(expectation.mType, Expectation.Type.DELETE);
- assertNotNull(expectation.mLocalRowId);
- final long localRowId = cursor.getLong(cursor.getColumnIndexOrThrow("_id"));
- assertEquals((long)expectation.mLocalRowId, localRowId);
- cursor.moveToNext();
- mDb.delete(TABLE_NAME, "_id=" + localRowId, null);
- }
-
- protected void notifyChanges() {
- throw new UnsupportedOperationException();
- }
-
- void checkExpectation(Expectation expectation,
- Expectation.Type actualType, Long localRowId,
- Cursor cursor) {
- assertEquals(expectation.mType, actualType);
- assertEquals(expectation.mLocalRowId, localRowId);
-
- final SortedSet<String> actualKeys = Sets.newSortedSet(cursor.getColumnNames());
- final SortedSet<String> expectedKeys = Sets.newSortedSet();
- for (Map.Entry<String, Object> entry : expectation.mValues.valueSet()) {
- expectedKeys.add(entry.getKey());
- }
- actualKeys.remove("_id");
- actualKeys.remove("_sync_mark");
- actualKeys.remove("_sync_local_id");
- expectedKeys.remove("_sync_local_id");
- expectedKeys.remove("_id");
- assertEquals("column mismatch",
- TextUtils.join(",", expectedKeys), TextUtils.join(",", actualKeys));
-
-// if (localRowId != null) {
-// assertEquals((long) localRowId,
-// cursor.getLong(cursor.getColumnIndexOrThrow("_sync_local_id")));
-// } else {
-// assertTrue("unexpected _sync_local_id, "
-// + cursor.getLong(cursor.getColumnIndexOrThrow("_sync_local_id")),
-// cursor.isNull(cursor.getColumnIndexOrThrow("_sync_local_id")));
-// }
-
- for (String name : cursor.getColumnNames()) {
- if ("_id".equals(name)) {
- continue;
- }
- if (cursor.isNull(cursor.getColumnIndexOrThrow(name))) {
- assertNull(expectation.mValues.getAsString(name));
- } else {
- String actualValue =
- cursor.getString(cursor.getColumnIndexOrThrow(name));
- assertEquals("mismatch on column " + name,
- expectation.mValues.getAsString(name), actualValue);
- }
- }
- }
- }
-
- class MockSyncableContentProvider extends SyncableContentProvider {
- SQLiteDatabase mDb;
- boolean mIsTemporary;
- boolean mContainsDiffs;
-
- private final UriMatcher sURIMatcher = new UriMatcher(UriMatcher.NO_MATCH);
-
- private static final int MATCHER_ITEMS = 0;
- private static final int MATCHER_DELETED_ITEMS = 1;
-
- public MockSyncableContentProvider() {
- mIsTemporary = false;
- setContainsDiffs(false);
- sURIMatcher.addURI(CONTENT_URI.getAuthority(), "items", MATCHER_ITEMS);
- sURIMatcher.addURI(CONTENT_URI.getAuthority(), "deleted_items", MATCHER_DELETED_ITEMS);
-
- mDb = SQLiteDatabase.create(null);
- mDb.execSQL("CREATE TABLE items ("
- + "_id INTEGER PRIMARY KEY AUTOINCREMENT, "
- + "data TEXT, "
- + "_sync_time TEXT, "
- + "_sync_version TEXT, "
- + "_sync_id TEXT, "
- + "_sync_local_id INTEGER, "
- + "_sync_dirty INTEGER NOT NULL DEFAULT 0, "
- + "_sync_account TEXT, "
- + "_sync_mark INTEGER)");
-
- mDb.execSQL("CREATE TABLE deleted_items ("
- + "_id INTEGER PRIMARY KEY AUTOINCREMENT, "
- + "_sync_version TEXT, "
- + "_sync_id TEXT, "
- + "_sync_local_id INTEGER, "
- + "_sync_account TEXT, "
- + "_sync_mark INTEGER)");
- }
-
- public boolean onCreate() {
- throw new UnsupportedOperationException();
- }
-
- public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
- String sortOrder) {
- int match = sURIMatcher.match(uri);
- switch (match) {
- case MATCHER_ITEMS:
- return mDb.query(TABLE_NAME, projection, selection, selectionArgs,
- null, null, sortOrder);
- case MATCHER_DELETED_ITEMS:
- return mDb.query(DELETED_TABLE_NAME, projection, selection, selectionArgs,
- null, null, sortOrder);
- default:
- throw new UnsupportedOperationException("Cannot query URL: " + uri);
- }
- }
-
- public String getType(Uri uri) {
- throw new UnsupportedOperationException();
- }
-
- public Uri insert(Uri uri, ContentValues values) {
- int match = sURIMatcher.match(uri);
- switch (match) {
- case MATCHER_ITEMS: {
- long id = mDb.insert(TABLE_NAME, "_id", values);
- return CONTENT_URI.buildUpon().appendPath(String.valueOf(id)).build();
- }
- case MATCHER_DELETED_ITEMS: {
- long id = mDb.insert(DELETED_TABLE_NAME, "_id", values);
- return CONTENT_URI.buildUpon().appendPath(String.valueOf(id)).build();
- }
- default:
- throw new UnsupportedOperationException("Cannot query URL: " + uri);
- }
- }
-
- public int delete(Uri uri, String selection, String[] selectionArgs) {
- int match = sURIMatcher.match(uri);
- switch (match) {
- case MATCHER_ITEMS:
- return mDb.delete(TABLE_NAME, selection, selectionArgs);
- case MATCHER_DELETED_ITEMS:
- return mDb.delete(DELETED_TABLE_NAME, selection, selectionArgs);
- default:
- throw new UnsupportedOperationException("Cannot query URL: " + uri);
- }
- }
-
- public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
- int match = sURIMatcher.match(uri);
- switch (match) {
- case MATCHER_ITEMS:
- return mDb.update(TABLE_NAME, values, selection, selectionArgs);
- case MATCHER_DELETED_ITEMS:
- return mDb.update(DELETED_TABLE_NAME, values, selection, selectionArgs);
- default:
- throw new UnsupportedOperationException("Cannot query URL: " + uri);
- }
- }
-
- protected boolean isTemporary() {
- return mIsTemporary;
- }
-
- public void close() {
- throw new UnsupportedOperationException();
- }
-
- protected void bootstrapDatabase(SQLiteDatabase db) {
- throw new UnsupportedOperationException();
- }
-
- protected boolean upgradeDatabase(SQLiteDatabase db, int oldVersion, int newVersion) {
- throw new UnsupportedOperationException();
- }
-
- protected void onDatabaseOpened(SQLiteDatabase db) {
- throw new UnsupportedOperationException();
- }
-
- public MockSyncableContentProvider getTemporaryInstance() {
- MockSyncableContentProvider temp = new MockSyncableContentProvider();
- temp.mIsTemporary = true;
- temp.setContainsDiffs(true);
- return temp;
- }
-
- public SQLiteDatabase getDatabase() {
- return mDb;
- }
-
- public boolean getContainsDiffs() {
- return mContainsDiffs;
- }
-
- public void setContainsDiffs(boolean containsDiffs) {
- mContainsDiffs = containsDiffs;
- }
-
- protected Iterable<? extends AbstractTableMerger> getMergers() {
- throw new UnsupportedOperationException();
- }
-
- public boolean changeRequiresLocalSync(Uri uri) {
- throw new UnsupportedOperationException();
- }
-
- public void onSyncStart(SyncContext context, String account) {
- throw new UnsupportedOperationException();
- }
-
- public void onSyncStop(SyncContext context, boolean success) {
- throw new UnsupportedOperationException();
- }
-
- public String getSyncingAccount() {
- throw new UnsupportedOperationException();
- }
-
- public void merge(SyncContext context, SyncableContentProvider diffs,
- TempProviderSyncResult result, SyncResult syncResult) {
- throw new UnsupportedOperationException();
- }
-
- public void onSyncCanceled() {
- throw new UnsupportedOperationException();
- }
-
- public boolean isMergeCancelled() {
- return false;
- }
-
- protected int updateInternal(Uri url, ContentValues values, String selection,
- String[] selectionArgs) {
- throw new UnsupportedOperationException();
- }
-
- protected int deleteInternal(Uri url, String selection, String[] selectionArgs) {
- throw new UnsupportedOperationException();
- }
-
- protected Uri insertInternal(Uri url, ContentValues values) {
- throw new UnsupportedOperationException();
- }
-
- protected Cursor queryInternal(Uri url, String[] projection, String selection,
- String[] selectionArgs, String sortOrder) {
- throw new UnsupportedOperationException();
- }
-
- protected void onAccountsChanged(String[] accountsArray) {
- throw new UnsupportedOperationException();
- }
-
- protected void deleteRowsForRemovedAccounts(Map<String, Boolean> accounts, String table,
- String accountColumnName) {
- throw new UnsupportedOperationException();
- }
-
- public void wipeAccount(String account) {
- throw new UnsupportedOperationException();
- }
-
- public byte[] readSyncDataBytes(String account) {
- throw new UnsupportedOperationException();
- }
-
- public void writeSyncDataBytes(String account, byte[] data) {
- throw new UnsupportedOperationException();
- }
- }
-
- class MockSyncContext extends SyncContext {
- public MockSyncContext() {
- super(null);
- }
-
- @Override
- public void setStatusText(String message) {
- }
- }
-}
diff --git a/tests/FrameworkTest/tests/src/android/content/SearchRecentSuggestionsProviderTest.java b/tests/FrameworkTest/tests/src/android/content/SearchRecentSuggestionsProviderTest.java
deleted file mode 100644
index a4c33f5..0000000
--- a/tests/FrameworkTest/tests/src/android/content/SearchRecentSuggestionsProviderTest.java
+++ /dev/null
@@ -1,402 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.content;
-
-import android.app.SearchManager;
-import android.database.Cursor;
-import android.net.Uri;
-import android.provider.SearchRecentSuggestions;
-import android.test.ProviderTestCase2;
-import android.test.suitebuilder.annotation.Suppress;
-
-/**
- * Very simple provider that I can instantiate right here.
- */
-class TestProvider extends SearchRecentSuggestionsProvider {
- final static String AUTHORITY = "android.content.TestProvider";
- final static int MODE = DATABASE_MODE_QUERIES + DATABASE_MODE_2LINES;
-
- public TestProvider() {
- super();
- setupSuggestions(AUTHORITY, MODE);
- }
-}
-
-/**
- * ProviderTestCase that performs unit tests of SearchRecentSuggestionsProvider.
- *
- * You can run this test in isolation via the commands:
- *
- * $ (cd tests/FrameworkTests/ && mm) && adb sync
- * $ adb shell am instrument -w \
- * -e class android.content.SearchRecentSuggestionsProviderTest
- * com.android.frameworktest.tests/android.test.InstrumentationTestRunner
- */
-// Suppress these until bug http://b/issue?id=1416586 is fixed.
-@Suppress
-public class SearchRecentSuggestionsProviderTest extends ProviderTestCase2<TestProvider> {
-
- // Elements prepared by setUp()
- SearchRecentSuggestions mSearchHelper;
-
- public SearchRecentSuggestionsProviderTest() {
- super(TestProvider.class, TestProvider.AUTHORITY);
- }
-
- /**
- * During setup, grab a helper for DB access
- */
- @Override
- public void setUp() throws Exception {
- super.setUp();
-
- // Use the recent suggestions helper. As long as we pass in our isolated context,
- // it should correctly access the provider under test.
- mSearchHelper = new SearchRecentSuggestions(getMockContext(),
- TestProvider.AUTHORITY, TestProvider.MODE);
-
- // test for empty database at setup time
- checkOpenCursorCount(0);
- }
-
- /**
- * Simple test to see if we can instantiate the whole mess.
- */
- public void testSetup() {
- assertTrue(true);
- }
-
- /**
- * Simple test to see if we can write and read back a single query
- */
- public void testOneQuery() {
- final String TEST_LINE1 = "test line 1";
- final String TEST_LINE2 = "test line 2";
- mSearchHelper.saveRecentQuery(TEST_LINE1, TEST_LINE2);
-
- // make sure that there are is exactly one entry returned by a non-filtering cursor
- checkOpenCursorCount(1);
-
- // test non-filtering cursor for correct entry
- checkResultCounts(null, 1, 1, TEST_LINE1, TEST_LINE2);
-
- // test filtering cursor for correct entry
- checkResultCounts(TEST_LINE1, 1, 1, TEST_LINE1, TEST_LINE2);
- checkResultCounts(TEST_LINE2, 1, 1, TEST_LINE1, TEST_LINE2);
-
- // test that a different filter returns zero results
- checkResultCounts("bad filter", 0, 0, null, null);
- }
-
- /**
- * Simple test to see if we can write and read back a diverse set of queries
- */
- public void testMixedQueries() {
- // we'll make 10 queries named "query x" and 10 queries named "test x"
- final String TEST_GROUP_1 = "query ";
- final String TEST_GROUP_2 = "test ";
- final String TEST_LINE2 = "line2 ";
- final int GROUP_COUNT = 10;
-
- writeEntries(GROUP_COUNT, TEST_GROUP_1, TEST_LINE2);
- writeEntries(GROUP_COUNT, TEST_GROUP_2, TEST_LINE2);
-
- // check counts
- checkOpenCursorCount(2 * GROUP_COUNT);
-
- // check that each query returns the right result counts
- checkResultCounts(TEST_GROUP_1, GROUP_COUNT, GROUP_COUNT, null, null);
- checkResultCounts(TEST_GROUP_2, GROUP_COUNT, GROUP_COUNT, null, null);
- checkResultCounts(TEST_LINE2, 2 * GROUP_COUNT, 2 * GROUP_COUNT, null, null);
- }
-
- /**
- * Test that the reordering code works properly. The most recently injected queries
- * should replace existing queries and be sorted to the top of the list.
- */
- public void testReordering() {
- // first we'll make 10 queries named "group1 x"
- final int GROUP_1_COUNT = 10;
- final String GROUP_1_QUERY = "group1 ";
- final String GROUP_1_LINE2 = "line2 ";
- writeEntries(GROUP_1_COUNT, GROUP_1_QUERY, GROUP_1_LINE2);
-
- // check totals
- checkOpenCursorCount(GROUP_1_COUNT);
-
- // guarantee that group 1 has older timestamps
- writeDelay();
-
- // next we'll add 10 entries named "group2 x"
- final int GROUP_2_COUNT = 10;
- final String GROUP_2_QUERY = "group2 ";
- final String GROUP_2_LINE2 = "line2 ";
- writeEntries(GROUP_2_COUNT, GROUP_2_QUERY, GROUP_2_LINE2);
-
- // check totals
- checkOpenCursorCount(GROUP_1_COUNT + GROUP_2_COUNT);
-
- // guarantee that group 2 has older timestamps
- writeDelay();
-
- // now refresh 5 of the 10 from group 1
- // change line2 so they can be more easily tracked
- final int GROUP_3_COUNT = 5;
- final String GROUP_3_QUERY = GROUP_1_QUERY;
- final String GROUP_3_LINE2 = "refreshed ";
- writeEntries(GROUP_3_COUNT, GROUP_3_QUERY, GROUP_3_LINE2);
-
- // confirm that the total didn't change (those were replacements, not adds)
- checkOpenCursorCount(GROUP_1_COUNT + GROUP_2_COUNT);
-
- // confirm that the are now 5 in group 1, 10 in group 2, and 5 in group 3
- int newGroup1Count = GROUP_1_COUNT - GROUP_3_COUNT;
- checkResultCounts(GROUP_1_QUERY, newGroup1Count, newGroup1Count, null, GROUP_1_LINE2);
- checkResultCounts(GROUP_2_QUERY, GROUP_2_COUNT, GROUP_2_COUNT, null, null);
- checkResultCounts(GROUP_3_QUERY, GROUP_3_COUNT, GROUP_3_COUNT, null, GROUP_3_LINE2);
-
- // finally, spot check that the right groups are in the right places
- // the ordering should be group 3 (newest), group 2, group 1 (oldest)
- Cursor c = getQueryCursor(null);
- int colQuery = c.getColumnIndexOrThrow(SearchManager.SUGGEST_COLUMN_QUERY);
- int colDisplay1 = c.getColumnIndexOrThrow(SearchManager.SUGGEST_COLUMN_TEXT_1);
- int colDisplay2 = c.getColumnIndex(SearchManager.SUGGEST_COLUMN_TEXT_2);
-
- // Spot check the first and last expected entries of group 3
- c.moveToPosition(0);
- assertTrue("group 3 did not properly reorder to head of list",
- checkRow(c, colQuery, colDisplay1, colDisplay2, GROUP_3_QUERY, GROUP_3_LINE2));
- c.move(GROUP_3_COUNT - 1);
- assertTrue("group 3 did not properly reorder to head of list",
- checkRow(c, colQuery, colDisplay1, colDisplay2, GROUP_3_QUERY, GROUP_3_LINE2));
-
- // Spot check the first and last expected entries of group 2
- c.move(1);
- assertTrue("group 2 not in expected position after reordering",
- checkRow(c, colQuery, colDisplay1, colDisplay2, GROUP_2_QUERY, GROUP_2_LINE2));
- c.move(GROUP_2_COUNT - 1);
- assertTrue("group 2 not in expected position after reordering",
- checkRow(c, colQuery, colDisplay1, colDisplay2, GROUP_2_QUERY, GROUP_2_LINE2));
-
- // Spot check the first and last expected entries of group 1
- c.move(1);
- assertTrue("group 1 not in expected position after reordering",
- checkRow(c, colQuery, colDisplay1, colDisplay2, GROUP_1_QUERY, GROUP_1_LINE2));
- c.move(newGroup1Count - 1);
- assertTrue("group 1 not in expected position after reordering",
- checkRow(c, colQuery, colDisplay1, colDisplay2, GROUP_1_QUERY, GROUP_1_LINE2));
-
- c.close();
- }
-
- /**
- * Test that the pruning code works properly, The database should not go beyond 250 entries,
- * and the oldest entries should always be discarded first.
- *
- * TODO: This is a slow test, do we have annotation for that?
- */
- public void testPruning() {
- // first we'll make 50 queries named "group1 x"
- final int GROUP_1_COUNT = 50;
- final String GROUP_1_QUERY = "group1 ";
- final String GROUP_1_LINE2 = "line2 ";
- writeEntries(GROUP_1_COUNT, GROUP_1_QUERY, GROUP_1_LINE2);
-
- // check totals
- checkOpenCursorCount(GROUP_1_COUNT);
-
- // guarantee that group 1 has older timestamps (and will be pruned first)
- writeDelay();
-
- // next we'll add 200 entries named "group2 x"
- final int GROUP_2_COUNT = 200;
- final String GROUP_2_QUERY = "group2 ";
- final String GROUP_2_LINE2 = "line2 ";
- writeEntries(GROUP_2_COUNT, GROUP_2_QUERY, GROUP_2_LINE2);
-
- // check totals
- checkOpenCursorCount(GROUP_1_COUNT + GROUP_2_COUNT);
-
- // Finally we'll add 10 more entries named "group3 x"
- // These should push out 10 entries from group 1
- final int GROUP_3_COUNT = 10;
- final String GROUP_3_QUERY = "group3 ";
- final String GROUP_3_LINE2 = "line2 ";
- writeEntries(GROUP_3_COUNT, GROUP_3_QUERY, GROUP_3_LINE2);
-
- // total should still be 250
- checkOpenCursorCount(GROUP_1_COUNT + GROUP_2_COUNT);
-
- // there should be 40 group 1, 200 group 2, and 10 group 3
- int group1NewCount = GROUP_1_COUNT-GROUP_3_COUNT;
- checkResultCounts(GROUP_1_QUERY, group1NewCount, group1NewCount, null, null);
- checkResultCounts(GROUP_2_QUERY, GROUP_2_COUNT, GROUP_2_COUNT, null, null);
- checkResultCounts(GROUP_3_QUERY, GROUP_3_COUNT, GROUP_3_COUNT, null, null);
- }
-
- /**
- * Test that the clear history code works properly.
- */
- public void testClear() {
- // first we'll make 10 queries named "group1 x"
- final int GROUP_1_COUNT = 10;
- final String GROUP_1_QUERY = "group1 ";
- final String GROUP_1_LINE2 = "line2 ";
- writeEntries(GROUP_1_COUNT, GROUP_1_QUERY, GROUP_1_LINE2);
-
- // next we'll add 10 entries named "group2 x"
- final int GROUP_2_COUNT = 10;
- final String GROUP_2_QUERY = "group2 ";
- final String GROUP_2_LINE2 = "line2 ";
- writeEntries(GROUP_2_COUNT, GROUP_2_QUERY, GROUP_2_LINE2);
-
- // check totals
- checkOpenCursorCount(GROUP_1_COUNT + GROUP_2_COUNT);
-
- // delete all
- mSearchHelper.clearHistory();
-
- // check totals
- checkOpenCursorCount(0);
- }
-
- /**
- * Write a sequence of queries into the database, with incrementing counters in the strings.
- */
- private void writeEntries(int groupCount, String line1Base, String line2Base) {
- for (int i = 0; i < groupCount; i++) {
- final String line1 = line1Base + i;
- final String line2 = line2Base + i;
- mSearchHelper.saveRecentQuery(line1, line2);
- }
- }
-
- /**
- * A very slight delay to ensure that successive groups of queries in the DB cannot
- * have the same timestamp.
- */
- private void writeDelay() {
- try {
- Thread.sleep(10);
- } catch (InterruptedException e) {
- fail("Interrupted sleep.");
- }
- }
-
- /**
- * Access an "open" (no selection) suggestions cursor and confirm that it has the specified
- * number of entries.
- *
- * @param expectCount The expected number of entries returned by the cursor.
- */
- private void checkOpenCursorCount(int expectCount) {
- Cursor c = getQueryCursor(null);
- assertEquals(expectCount, c.getCount());
- c.close();
- }
-
- /**
- * Set up a filter cursor and then scan it for specific results.
- *
- * @param queryString The query string to apply.
- * @param minRows The minimum number of matching rows that must be found.
- * @param maxRows The maximum number of matching rows that must be found.
- * @param matchDisplay1 If non-null, must match DISPLAY1 column if row counts as match
- * @param matchDisplay2 If non-null, must match DISPLAY2 column if row counts as match
- */
- private void checkResultCounts(String queryString, int minRows, int maxRows,
- String matchDisplay1, String matchDisplay2) {
-
- // get the cursor and apply sanity checks to result
- Cursor c = getQueryCursor(queryString);
- assertNotNull(c);
- assertTrue("Insufficient rows in filtered cursor", c.getCount() >= minRows);
-
- // look for minimum set of columns (note, display2 is optional)
- int colQuery = c.getColumnIndexOrThrow(SearchManager.SUGGEST_COLUMN_QUERY);
- int colDisplay1 = c.getColumnIndexOrThrow(SearchManager.SUGGEST_COLUMN_TEXT_1);
- int colDisplay2 = c.getColumnIndex(SearchManager.SUGGEST_COLUMN_TEXT_2);
-
- // now loop through rows and look for desired rows
- int foundRows = 0;
- c.moveToFirst();
- while (!c.isAfterLast()) {
- if (checkRow(c, colQuery, colDisplay1, colDisplay2, matchDisplay1, matchDisplay2)) {
- foundRows++;
- }
- c.moveToNext();
- }
-
- // now check the results
- assertTrue(minRows <= foundRows);
- assertTrue(foundRows <= maxRows);
-
- c.close();
- }
-
- /**
- * Check a single row for equality with target strings.
- *
- * @param c The cursor, already moved to the row
- * @param colQuery The column # containing the query. The query must match display1.
- * @param colDisp1 The column # containing display line 1.
- * @param colDisp2 The column # containing display line 2, or -1 if no column
- * @param matchDisplay1 If non-null, this must be the prefix of display1
- * @param matchDisplay2 If non-null, this must be the prefix of display2
- * @return Returns true if the row is a "match"
- */
- private boolean checkRow(Cursor c, int colQuery, int colDisp1, int colDisp2,
- String matchDisplay1, String matchDisplay2) {
- // Get the data from the row
- String query = c.getString(colQuery);
- String display1 = c.getString(colDisp1);
- String display2 = (colDisp2 >= 0) ? c.getString(colDisp2) : null;
-
- assertEquals(query, display1);
- boolean result = true;
- if (matchDisplay1 != null) {
- result = result && (display1 != null) && display1.startsWith(matchDisplay1);
- }
- if (matchDisplay2 != null) {
- result = result && (display2 != null) && display2.startsWith(matchDisplay2);
- }
-
- return result;
- }
-
- /**
- * Generate a query cursor in a manner like the search dialog would.
- *
- * @param queryString The search string, or, null for "all"
- * @return Returns a cursor, or null if there was some problem. Be sure to close the cursor
- * when done with it.
- */
- private Cursor getQueryCursor(String queryString) {
- ContentResolver cr = getMockContext().getContentResolver();
-
- String uriStr = "content://" + TestProvider.AUTHORITY +
- '/' + SearchManager.SUGGEST_URI_PATH_QUERY;
- Uri contentUri = Uri.parse(uriStr);
-
- String[] selArgs = new String[] {queryString};
-
- Cursor c = cr.query(contentUri, null, null, selArgs, null);
-
- assertNotNull(c);
- return c;
- }
-}
diff --git a/tests/FrameworkTest/tests/src/android/widget/AutoCompleteTextViewCallbacks.java b/tests/FrameworkTest/tests/src/android/widget/AutoCompleteTextViewCallbacks.java
deleted file mode 100644
index 93cb84a..0000000
--- a/tests/FrameworkTest/tests/src/android/widget/AutoCompleteTextViewCallbacks.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.widget;
-
-import android.app.Instrumentation;
-import android.test.ActivityInstrumentationTestCase2;
-import android.test.suitebuilder.annotation.MediumTest;
-
-public class AutoCompleteTextViewCallbacks
- extends ActivityInstrumentationTestCase2<AutoCompleteTextViewSimple> {
-
- public AutoCompleteTextViewCallbacks() {
- super("com.android.frameworktest", AutoCompleteTextViewSimple.class);
- }
-
- /** Test that the initial popup of the suggestions does not select anything */
- @MediumTest
- public void testPopupNoSelection() {
- AutoCompleteTextViewSimple theActivity = getActivity();
- AutoCompleteTextView textView = theActivity.getTextView();
- final Instrumentation instrumentation = getInstrumentation();
-
- // focus and type
- textView.requestFocus();
- instrumentation.waitForIdleSync();
- sendKeys("A");
-
- // now check for selection callbacks. Nothing should be clicked or selected.
- assertFalse("onItemClick should not be called", theActivity.mItemClickCalled);
- assertFalse("onItemSelected should not be called", theActivity.mItemSelectedCalled);
-
- // arguably, this should be "false", because we aren't deselecting - we shouldn't
- // really be calling it. But it's not the end of the world, and we might wind up
- // breaking something if we change this.
- assertTrue("onNothingSelected should be called", theActivity.mNothingSelectedCalled);
- }
-
- /** Test that arrow-down into the popup calls the onSelected callback */
- @MediumTest
- public void testPopupEnterSelection() {
- AutoCompleteTextViewSimple theActivity = getActivity();
- AutoCompleteTextView textView = theActivity.getTextView();
- final Instrumentation instrumentation = getInstrumentation();
-
- // focus and type
- textView.requestFocus();
- instrumentation.waitForIdleSync();
- sendKeys("A");
-
- // prepare to move down into the popup
- theActivity.resetItemListeners();
- sendKeys("DPAD_DOWN");
-
- // now check for selection callbacks.
- assertFalse("onItemClick should not be called", theActivity.mItemClickCalled);
- assertTrue("onItemSelected should be called", theActivity.mItemSelectedCalled);
- assertEquals("onItemSelected position", 0, theActivity.mItemSelectedPosition);
- assertFalse("onNothingSelected should not be called", theActivity.mNothingSelectedCalled);
-
- // try one more time - should move from 0 to 1
- theActivity.resetItemListeners();
- sendKeys("DPAD_DOWN");
-
- // now check for selection callbacks.
- assertFalse("onItemClick should not be called", theActivity.mItemClickCalled);
- assertTrue("onItemSelected should be called", theActivity.mItemSelectedCalled);
- assertEquals("onItemSelected position", 1, theActivity.mItemSelectedPosition);
- assertFalse("onNothingSelected should not be called", theActivity.mNothingSelectedCalled);
- }
-
- /** Test that arrow-up out of the popup calls the onNothingSelected callback */
- @MediumTest
- public void testPopupLeaveSelection() {
- AutoCompleteTextViewSimple theActivity = getActivity();
- AutoCompleteTextView textView = theActivity.getTextView();
- final Instrumentation instrumentation = getInstrumentation();
-
- // focus and type
- textView.requestFocus();
- instrumentation.waitForIdleSync();
- sendKeys("A");
-
- // move down into the popup
- sendKeys("DPAD_DOWN");
-
- // now move back up out of the popup
- theActivity.resetItemListeners();
- sendKeys("DPAD_UP");
-
- // now check for selection callbacks.
- assertFalse("onItemClick should not be called", theActivity.mItemClickCalled);
- assertFalse("onItemSelected should not be called", theActivity.mItemSelectedCalled);
- assertTrue("onNothingSelected should be called", theActivity.mNothingSelectedCalled);
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/android/widget/AutoCompleteTextViewPopup.java b/tests/FrameworkTest/tests/src/android/widget/AutoCompleteTextViewPopup.java
deleted file mode 100644
index 663b7a4..0000000
--- a/tests/FrameworkTest/tests/src/android/widget/AutoCompleteTextViewPopup.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.widget;
-
-import android.app.Instrumentation;
-import android.test.ActivityInstrumentationTestCase2;
-import android.test.suitebuilder.annotation.MediumTest;
-
-/**
- * A collection of tests on aspects of the AutoCompleteTextView's popup
- */
-public class AutoCompleteTextViewPopup
- extends ActivityInstrumentationTestCase2<AutoCompleteTextViewSimple> {
-
- public AutoCompleteTextViewPopup() {
- super("com.android.frameworktest", AutoCompleteTextViewSimple.class);
- }
-
- /** Test that we can move the selection and it responds as expected */
- @MediumTest
- public void testPopupSetListSelection() throws Throwable {
- AutoCompleteTextViewSimple theActivity = getActivity();
- final AutoCompleteTextView textView = theActivity.getTextView();
- final Instrumentation instrumentation = getInstrumentation();
-
- // focus and type
- textView.requestFocus();
- instrumentation.waitForIdleSync();
- sendKeys("A");
-
- // No initial selection
- assertEquals("getListSelection(-1)",
- ListView.INVALID_POSITION, textView.getListSelection());
-
- // set and check
- runTestOnUiThread(new Runnable() {
- public void run() {
- textView.setListSelection(0);
- }
- });
- instrumentation.waitForIdleSync();
- assertEquals("set selection to (0)", 0, textView.getListSelection());
-
- // Use movement to cross-check the movement
- sendKeys("DPAD_DOWN");
- assertEquals("move selection to (1)", 1, textView.getListSelection());
- }
-
- /** Test that we can look at the selection as we move around */
- @MediumTest
- public void testPopupGetListSelection() {
- AutoCompleteTextViewSimple theActivity = getActivity();
- AutoCompleteTextView textView = theActivity.getTextView();
- final Instrumentation instrumentation = getInstrumentation();
-
- // focus and type
- textView.requestFocus();
- instrumentation.waitForIdleSync();
- sendKeys("A");
-
- // No initial selection
- assertEquals("getListSelection(-1)",
- ListView.INVALID_POSITION, textView.getListSelection());
-
- // check for selection position as expected
- sendKeys("DPAD_DOWN");
- assertEquals("move selection to (0)", 0, textView.getListSelection());
-
- // Repeat for one more movement
- sendKeys("DPAD_DOWN");
- assertEquals("move selection to (1)", 1, textView.getListSelection());
- }
-
- /** Test that we can clear the selection */
- @MediumTest
- public void testPopupClearListSelection() throws Throwable {
- AutoCompleteTextViewSimple theActivity = getActivity();
- final AutoCompleteTextView textView = theActivity.getTextView();
- final Instrumentation instrumentation = getInstrumentation();
-
- // focus and type
- textView.requestFocus();
- instrumentation.waitForIdleSync();
- sendKeys("A");
-
- // No initial selection
- assertEquals("getListSelection(-1)",
- ListView.INVALID_POSITION, textView.getListSelection());
-
- // check for selection position as expected
- sendKeys("DPAD_DOWN");
- assertEquals("getListSelection(0)", 0, textView.getListSelection());
-
- // clear it
- runTestOnUiThread(new Runnable() {
- public void run() {
- textView.clearListSelection();
- }
- });
- instrumentation.waitForIdleSync();
- assertEquals("setListSelection(ListView.INVALID_POSITION)",
- ListView.INVALID_POSITION, textView.getListSelection());
- }
-
- /** Make sure we handle an empty adapter properly */
- @MediumTest
- public void testPopupNavigateNoAdapter() throws Throwable {
- AutoCompleteTextViewSimple theActivity = getActivity();
- final AutoCompleteTextView textView = theActivity.getTextView();
- final Instrumentation instrumentation = getInstrumentation();
-
- // focus and type
- textView.requestFocus();
- instrumentation.waitForIdleSync();
- sendKeys("A");
-
- // No initial selection
- assertEquals("getListSelection(-1)",
- ListView.INVALID_POSITION, textView.getListSelection());
-
- // check for selection position as expected
- sendKeys("DPAD_DOWN");
- assertEquals("getListSelection(0)", 0, textView.getListSelection());
-
- // Now get rid of the adapter
- runTestOnUiThread(new Runnable() {
- public void run() {
- textView.setAdapter((ArrayAdapter<?>) null);
- }
- });
- instrumentation.waitForIdleSync();
-
- // now try moving "down" - nothing should happen since there's no longer an adapter
- sendKeys("DPAD_DOWN");
- }
-}
diff --git a/tests/FrameworkTest/tests/src/android/widget/SimpleCursorAdapterTest.java b/tests/FrameworkTest/tests/src/android/widget/SimpleCursorAdapterTest.java
deleted file mode 100644
index 58f4ccb..0000000
--- a/tests/FrameworkTest/tests/src/android/widget/SimpleCursorAdapterTest.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.widget;
-
-import com.android.internal.database.ArrayListCursor;
-import com.google.android.collect.Lists;
-
-import android.content.Context;
-import android.database.Cursor;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import java.util.ArrayList;
-import java.util.Random;
-
-/**
- * This is a series of tests of basic API contracts for SimpleCursorAdapter. It is
- * incomplete and can use work.
- *
- * NOTE: This contract holds for underlying cursor types too and these should
- * be extracted into a set of tests that can be run on any descendant of CursorAdapter.
- */
-public class SimpleCursorAdapterTest extends AndroidTestCase {
-
- String[] mFrom;
- int[] mTo;
- int mLayout;
- Context mContext;
-
- ArrayList<ArrayList> mData2x2;
- Cursor mCursor2x2;
-
- /**
- * Set up basic columns and cursor for the tests
- */
- @Override
- public void setUp() throws Exception {
- super.setUp();
-
- // all the pieces needed for the various tests
- mFrom = new String[]{"Column1", "Column2"};
- mTo = new int[]{com.android.internal.R.id.text1, com.android.internal.R.id.text2};
- mLayout = com.android.internal.R.layout.simple_list_item_2;
- mContext = getContext();
-
- // raw data for building a basic test cursor
- mData2x2 = createTestList(2, 2);
- mCursor2x2 = new ArrayListCursor(mFrom, mData2x2);
- }
-
- /**
- * Borrowed from CursorWindowTest.java
- */
- private ArrayList<ArrayList> createTestList(int rows, int cols) {
- ArrayList<ArrayList> list = Lists.newArrayList();
- Random generator = new Random();
-
- for (int i = 0; i < rows; i++) {
- ArrayList<Integer> col = Lists.newArrayList();
- list.add(col);
- for (int j = 0; j < cols; j++) {
- // generate random number
- Integer r = generator.nextInt();
- col.add(r);
- }
- }
- return list;
- }
-
- /**
- * Test creating with a live cursor
- */
- @SmallTest
- public void testCreateLive() {
- SimpleCursorAdapter ca = new SimpleCursorAdapter(mContext, mLayout, mCursor2x2, mFrom, mTo);
-
- // Now see if we can pull 2 rows from the adapter
- assertEquals(2, ca.getCount());
- }
-
- /**
- * Test creating with a null cursor
- */
- @SmallTest
- public void testCreateNull() {
- SimpleCursorAdapter ca = new SimpleCursorAdapter(mContext, mLayout, null, mFrom, mTo);
-
- // The adapter should report zero rows
- assertEquals(0, ca.getCount());
- }
-
- /**
- * Test changeCursor() with live cursor
- */
- @SmallTest
- public void testChangeCursorLive() {
- SimpleCursorAdapter ca = new SimpleCursorAdapter(mContext, mLayout, mCursor2x2, mFrom, mTo);
-
- // Now see if we can pull 2 rows from the adapter
- assertEquals(2, ca.getCount());
-
- // now put in a different cursor (5 rows)
- ArrayList<ArrayList> data2 = createTestList(5, 2);
- Cursor c2 = new ArrayListCursor(mFrom, data2);
- ca.changeCursor(c2);
-
- // Now see if we can pull 5 rows from the adapter
- assertEquals(5, ca.getCount());
- }
-
- /**
- * Test changeCursor() with null cursor
- */
- @SmallTest
- public void testChangeCursorNull() {
- SimpleCursorAdapter ca = new SimpleCursorAdapter(mContext, mLayout, mCursor2x2, mFrom, mTo);
-
- // Now see if we can pull 2 rows from the adapter
- assertEquals(2, ca.getCount());
-
- // now put in null
- ca.changeCursor(null);
-
- // The adapter should report zero rows
- assertEquals(0, ca.getCount());
- }
-
- /**
- * Test changeCursor() with differing column layout. This confirms that the Adapter can
- * deal with cursors that have the same essential data (as defined by the original mFrom
- * array) but it's OK if the physical structure of the cursor changes (columns rearranged).
- */
- @SmallTest
- public void testChangeCursorColumns() {
- TestSimpleCursorAdapter ca = new TestSimpleCursorAdapter(mContext, mLayout, mCursor2x2,
- mFrom, mTo);
-
- // check columns of original - mFrom and mTo should line up
- int[] columns = ca.getConvertedFrom();
- assertEquals(columns[0], 0);
- assertEquals(columns[1], 1);
-
- // Now make a new cursor with similar data but rearrange the columns
- String[] swappedFrom = new String[]{"Column2", "Column1"};
- Cursor c2 = new ArrayListCursor(swappedFrom, mData2x2);
- ca.changeCursor(c2);
- assertEquals(2, ca.getCount());
-
- // check columns to see if rearrangement tracked (should be swapped now)
- columns = ca.getConvertedFrom();
- assertEquals(columns[0], 1);
- assertEquals(columns[1], 0);
- }
-
- /**
- * Test that you can safely construct with a null cursor *and* null to/from arrays.
- * This is new functionality added in 12/2008.
- */
- @SmallTest
- public void testNullConstructor() {
- SimpleCursorAdapter ca = new SimpleCursorAdapter(mContext, mLayout, null, null, null);
- assertEquals(0, ca.getCount());
- }
-
- /**
- * Test going from a null cursor to a non-null cursor *and* setting the to/from arrays
- * This is new functionality added in 12/2008.
- */
- @SmallTest
- public void testChangeNullToMapped() {
- TestSimpleCursorAdapter ca = new TestSimpleCursorAdapter(mContext, mLayout, null, null, null);
- assertEquals(0, ca.getCount());
-
- ca.changeCursorAndColumns(mCursor2x2, mFrom, mTo);
- assertEquals(2, ca.getCount());
-
- // check columns of original - mFrom and mTo should line up
- int[] columns = ca.getConvertedFrom();
- assertEquals(2, columns.length);
- assertEquals(0, columns[0]);
- assertEquals(1, columns[1]);
- int[] viewIds = ca.getTo();
- assertEquals(2, viewIds.length);
- assertEquals(com.android.internal.R.id.text1, viewIds[0]);
- assertEquals(com.android.internal.R.id.text2, viewIds[1]);
- }
-
- /**
- * Test going from one mapping to a different mapping
- * This is new functionality added in 12/2008.
- */
- @SmallTest
- public void testChangeMapping() {
- TestSimpleCursorAdapter ca = new TestSimpleCursorAdapter(mContext, mLayout, mCursor2x2,
- mFrom, mTo);
- assertEquals(2, ca.getCount());
-
- // Now create a new configuration with same cursor and just one column mapped
- String[] singleFrom = new String[]{"Column1"};
- int[] singleTo = new int[]{com.android.internal.R.id.text1};
- ca.changeCursorAndColumns(mCursor2x2, singleFrom, singleTo);
-
- // And examine the results, make sure they're still consistent
- int[] columns = ca.getConvertedFrom();
- assertEquals(1, columns.length);
- assertEquals(0, columns[0]);
- int[] viewIds = ca.getTo();
- assertEquals(1, viewIds.length);
- assertEquals(com.android.internal.R.id.text1, viewIds[0]);
-
- // And again, same cursor, different map
- singleFrom = new String[]{"Column2"};
- singleTo = new int[]{com.android.internal.R.id.text2};
- ca.changeCursorAndColumns(mCursor2x2, singleFrom, singleTo);
-
- // And examine the results, make sure they're still consistent
- columns = ca.getConvertedFrom();
- assertEquals(1, columns.length);
- assertEquals(1, columns[0]);
- viewIds = ca.getTo();
- assertEquals(1, viewIds.length);
- assertEquals(com.android.internal.R.id.text2, viewIds[0]);
- }
-
- /**
- * This is simply a way to sneak a look at the protected mFrom() array. A more API-
- * friendly way to do this would be to mock out a View and a ViewBinder and exercise
- * it via those seams.
- */
- private static class TestSimpleCursorAdapter extends SimpleCursorAdapter {
-
- public TestSimpleCursorAdapter(Context context, int layout, Cursor c,
- String[] from, int[] to) {
- super(context, layout, c, from, to);
- }
-
- int[] getConvertedFrom() {
- return mFrom;
- }
-
- int[] getTo() {
- return mTo;
- }
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/AllTests.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/AllTests.java
deleted file mode 100644
index e43ebb8..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/AllTests.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import android.test.suitebuilder.TestSuiteBuilder;
-
-public class AllTests extends TestSuite {
-
- public static Test suite() {
- return new TestSuiteBuilder(AllTests.class)
- .includeAllPackagesUnderHere()
- .includePackages("android.content")
- .includePackages("android.widget")
- .build();
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/drawable/DrawableBgMinSizeTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/drawable/DrawableBgMinSizeTest.java
deleted file mode 100644
index ef6297d..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/drawable/DrawableBgMinSizeTest.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.drawable;
-
-import com.android.frameworktest.R;
-import com.android.frameworktest.drawable.DrawableBgMinSize;
-import android.test.TouchUtils;
-import android.test.suitebuilder.annotation.MediumTest;
-
-import android.graphics.drawable.Drawable;
-import android.test.ActivityInstrumentationTestCase;
-import android.view.View;
-import android.widget.AbsoluteLayout;
-import android.widget.Button;
-import android.widget.FrameLayout;
-import android.widget.LinearLayout;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-/**
- * {@link DrawableBgMinSize} exercises Views to obey their background drawable's
- * minimum sizes.
- */
-public class DrawableBgMinSizeTest extends
- ActivityInstrumentationTestCase<DrawableBgMinSize> {
- private Button mChangeBackgroundsButton;
-
- private Drawable mBackgroundDrawable;
- private Drawable mBigBackgroundDrawable;
-
- private TextView mTextView;
- private LinearLayout mLinearLayout;
- private RelativeLayout mRelativeLayout;
- private FrameLayout mFrameLayout;
- private AbsoluteLayout mAbsoluteLayout;
-
- public DrawableBgMinSizeTest() {
- super("com.android.frameworktest", DrawableBgMinSize.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- final DrawableBgMinSize a = getActivity();
-
- mChangeBackgroundsButton = (Button) a.findViewById(R.id.change_backgrounds);
- mBackgroundDrawable = a.getResources().getDrawable(R.drawable.drawable_background);
- mBigBackgroundDrawable = a.getResources().getDrawable(R.drawable.big_drawable_background);
- mTextView = (TextView) a.findViewById(R.id.text_view);
- mLinearLayout = (LinearLayout) a.findViewById(R.id.linear_layout);
- mRelativeLayout = (RelativeLayout) a.findViewById(R.id.relative_layout);
- mFrameLayout = (FrameLayout) a.findViewById(R.id.frame_layout);
- mAbsoluteLayout = (AbsoluteLayout) a.findViewById(R.id.absolute_layout);
- }
-
- @MediumTest
- public void testSetUpConditions() throws Exception {
- assertNotNull(mChangeBackgroundsButton);
- assertNotNull(mBackgroundDrawable);
- assertNotNull(mBigBackgroundDrawable);
- assertNotNull(mTextView);
- assertNotNull(mLinearLayout);
- assertNotNull(mRelativeLayout);
- assertNotNull(mFrameLayout);
- assertNotNull(mAbsoluteLayout);
- }
-
- public void doMinimumSizeTest(View view) throws Exception {
- assertTrue(view.getClass().getSimpleName() + " should respect the background Drawable's minimum width",
- view.getWidth() >= mBackgroundDrawable.getMinimumWidth());
- assertTrue(view.getClass().getSimpleName() + " should respect the background Drawable's minimum height",
- view.getHeight() >= mBackgroundDrawable.getMinimumHeight());
- }
-
- @MediumTest
- public void testTextViewMinimumSize() throws Exception {
- doMinimumSizeTest(mTextView);
- }
-
- @MediumTest
- public void testLinearLayoutMinimumSize() throws Exception {
- doMinimumSizeTest(mLinearLayout);
- }
-
- @MediumTest
- public void testRelativeLayoutMinimumSize() throws Exception {
- doMinimumSizeTest(mRelativeLayout);
- }
-
- @MediumTest
- public void testAbsoluteLayoutMinimumSize() throws Exception {
- doMinimumSizeTest(mAbsoluteLayout);
- }
-
- @MediumTest
- public void testFrameLayoutMinimumSize() throws Exception {
- doMinimumSizeTest(mFrameLayout);
- }
-
- public void doDiffBgMinimumSizeTest(final View view) throws Exception {
- // Change to the bigger backgrounds
- TouchUtils.tapView(this, mChangeBackgroundsButton);
-
- assertTrue(view.getClass().getSimpleName()
- + " should respect the different bigger background Drawable's minimum width", view
- .getWidth() >= mBigBackgroundDrawable.getMinimumWidth());
- assertTrue(view.getClass().getSimpleName()
- + " should respect the different bigger background Drawable's minimum height", view
- .getHeight() >= mBigBackgroundDrawable.getMinimumHeight());
- }
-
- @MediumTest
- public void testTextViewDiffBgMinimumSize() throws Exception {
- doDiffBgMinimumSizeTest(mTextView);
- }
-
- @MediumTest
- public void testLinearLayoutDiffBgMinimumSize() throws Exception {
- doDiffBgMinimumSizeTest(mLinearLayout);
- }
-
- @MediumTest
- public void testRelativeLayoutDiffBgMinimumSize() throws Exception {
- doDiffBgMinimumSizeTest(mRelativeLayout);
- }
-
- @MediumTest
- public void testAbsoluteLayoutDiffBgMinimumSize() throws Exception {
- doDiffBgMinimumSizeTest(mAbsoluteLayout);
- }
-
- @MediumTest
- public void testFrameLayoutDiffBgMinimumSize() throws Exception {
- doDiffBgMinimumSizeTest(mFrameLayout);
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/drawable/MutateDrawableTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/drawable/MutateDrawableTest.java
deleted file mode 100644
index 53085ca..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/drawable/MutateDrawableTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.drawable;
-
-import android.test.ActivityInstrumentationTestCase2;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.View;
-
-public class MutateDrawableTest extends ActivityInstrumentationTestCase2<MutateDrawable> {
- private View mFirstButton;
- private View mSecondButton;
-
- public MutateDrawableTest() {
- super("com.android.frameworktest", MutateDrawable.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mFirstButton = getActivity().findViewById(com.android.frameworktest.R.id.a);
- mSecondButton = getActivity().findViewById(com.android.frameworktest.R.id.b);
- }
-
- @MediumTest
- public void testSetUpConditions() throws Exception {
- assertNotNull(mFirstButton);
- assertNotNull(mSecondButton);
- assertNotSame(mFirstButton.getBackground(), mSecondButton.getBackground());
- }
-
- @MediumTest
- public void testDrawableCanMutate() throws Exception {
- assertNotSame(mFirstButton.getBackground().getConstantState(),
- mSecondButton.getBackground().getConstantState());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/expandablelistview/ExpandableListBasicTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/expandablelistview/ExpandableListBasicTest.java
deleted file mode 100644
index 163e084..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/expandablelistview/ExpandableListBasicTest.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.expandablelistview;
-
-import com.android.frameworktest.expandablelistview.ExpandableListSimple;
-import com.android.frameworktest.util.ExpandableListScenario;
-import com.android.frameworktest.util.ListUtil;
-import com.android.frameworktest.util.ExpandableListScenario.MyGroup;
-
-import java.util.List;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.widget.BaseExpandableListAdapter;
-import android.widget.ExpandableListAdapter;
-import android.widget.ExpandableListView;
-
-public class ExpandableListBasicTest extends ActivityInstrumentationTestCase<ExpandableListSimple> {
- private ExpandableListScenario mActivity;
- private ExpandableListView mListView;
- private ExpandableListAdapter mAdapter;
- private ListUtil mListUtil;
-
- public ExpandableListBasicTest() {
- super("com.android.frameworktest",
- ExpandableListSimple.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mListView = mActivity.getExpandableListView();
- mAdapter = mListView.getExpandableListAdapter();
- mListUtil = new ListUtil(mListView, getInstrumentation());
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mListView);
- }
-
- private int expandGroup(int numChildren, boolean atLeastOneChild) {
- final int groupPos = mActivity.findGroupWithNumChildren(numChildren, atLeastOneChild);
-
- assertTrue("Could not find group to expand", groupPos >= 0);
- assertFalse("Group is already expanded", mListView.isGroupExpanded(groupPos));
- mListUtil.arrowScrollToSelectedPosition(groupPos);
- getInstrumentation().waitForIdleSync();
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
- getInstrumentation().waitForIdleSync();
- assertTrue("Group did not expand", mListView.isGroupExpanded(groupPos));
-
- return groupPos;
- }
-
- @MediumTest
- public void testExpandGroup() {
- expandGroup(-1, true);
- }
-
- @MediumTest
- public void testCollapseGroup() {
- final int groupPos = expandGroup(-1, true);
-
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
- getInstrumentation().waitForIdleSync();
- assertFalse("Group did not collapse", mListView.isGroupExpanded(groupPos));
- }
-
- @MediumTest
- public void testExpandedGroupMovement() {
-
- // Expand the first group
- mListUtil.arrowScrollToSelectedPosition(0);
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
- getInstrumentation().waitForIdleSync();
-
- // Ensure it expanded
- assertTrue("Group did not expand", mListView.isGroupExpanded(0));
-
- // Wait until that's all good
- getInstrumentation().waitForIdleSync();
-
- // Make sure it expanded
- assertTrue("Group did not expand", mListView.isGroupExpanded(0));
-
- // Insert a collapsed group in front of the one just expanded
- List<MyGroup> groups = mActivity.getGroups();
- MyGroup insertedGroup = new MyGroup(1);
- groups.add(0, insertedGroup);
-
- // Notify data change
- assertTrue("Adapter is not an instance of the base adapter",
- mAdapter instanceof BaseExpandableListAdapter);
- final BaseExpandableListAdapter adapter = (BaseExpandableListAdapter) mAdapter;
-
- mActivity.runOnUiThread(new Runnable() {
- public void run() {
- adapter.notifyDataSetChanged();
- }
- });
- getInstrumentation().waitForIdleSync();
-
- // Make sure the right group is expanded
- assertTrue("The expanded state didn't stay with the proper group",
- mListView.isGroupExpanded(1));
- assertFalse("The expanded state was given to the inserted group",
- mListView.isGroupExpanded(0));
- }
-
-} \ No newline at end of file
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/expandablelistview/ExpandableListWithHeadersTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/expandablelistview/ExpandableListWithHeadersTest.java
deleted file mode 100644
index 49b5106..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/expandablelistview/ExpandableListWithHeadersTest.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.expandablelistview;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.widget.ExpandableListView;
-
-import com.android.frameworktest.expandablelistview.ExpandableListWithHeaders;
-import com.android.frameworktest.util.ListUtil;
-
-public class ExpandableListWithHeadersTest extends ActivityInstrumentationTestCase<ExpandableListWithHeaders> {
- private ExpandableListView mExpandableListView;
- private ListUtil mListUtil;
-
- public ExpandableListWithHeadersTest() {
- super("com.android.frameworktest",
- ExpandableListWithHeaders.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mExpandableListView = getActivity().getExpandableListView();
- mListUtil = new ListUtil(mExpandableListView, getInstrumentation());
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mExpandableListView);
- }
-
- @MediumTest
- public void testExpandOnFirstPosition() {
- // Should be a header, and hence the first group should NOT have expanded
- mListUtil.arrowScrollToSelectedPosition(0);
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
- getInstrumentation().waitForIdleSync();
- assertFalse(mExpandableListView.isGroupExpanded(0));
- }
-
- @LargeTest
- public void testExpandOnFirstGroup() {
- mListUtil.arrowScrollToSelectedPosition(getActivity().getNumOfHeadersAndFooters());
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
- getInstrumentation().waitForIdleSync();
- assertTrue(mExpandableListView.isGroupExpanded(0));
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/DescendantFocusabilityTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/DescendantFocusabilityTest.java
deleted file mode 100644
index 6bdd416..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/DescendantFocusabilityTest.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import com.android.frameworktest.focus.DescendantFocusability;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.UiThreadTest;
-import android.test.TouchUtils;
-import android.view.ViewGroup;
-
-public class DescendantFocusabilityTest extends ActivityInstrumentationTestCase<DescendantFocusability> {
-
- private DescendantFocusability a;
-
- public DescendantFocusabilityTest() {
- super("com.android.frameworktest", DescendantFocusability.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- a = getActivity();
-
- }
-
- @MediumTest
- public void testPreconditions() {
- assertEquals(ViewGroup.FOCUS_BEFORE_DESCENDANTS,
- a.beforeDescendants.getDescendantFocusability());
- assertEquals(ViewGroup.FOCUS_AFTER_DESCENDANTS,
- a.afterDescendants.getDescendantFocusability());
- assertEquals(ViewGroup.FOCUS_BLOCK_DESCENDANTS,
- a.blocksDescendants.getDescendantFocusability());
-
- assertTrue(a.beforeDescendantsChild.isFocusable());
- assertTrue(a.afterDescendantsChild.isFocusable());
- assertTrue(a.blocksDescendantsChild.isFocusable());
- }
-
- @UiThreadTest
- @MediumTest
- public void testBeforeDescendants() {
- a.beforeDescendants.setFocusable(true);
-
- assertTrue(a.beforeDescendants.requestFocus());
- assertTrue(a.beforeDescendants.isFocused());
-
- a.beforeDescendants.setFocusable(false);
- a.beforeDescendants.requestFocus();
- assertTrue(a.beforeDescendantsChild.isFocused());
- }
-
- @UiThreadTest
- @MediumTest
- public void testAfterDescendants() {
- a.afterDescendants.setFocusable(true);
-
- assertTrue(a.afterDescendants.requestFocus());
- assertTrue(a.afterDescendantsChild.isFocused());
-
- a.afterDescendants.setFocusable(false);
- assertTrue(a.afterDescendants.requestFocus());
- assertTrue(a.afterDescendantsChild.isFocused());
- }
-
- @UiThreadTest
- @MediumTest
- public void testBlocksDescendants() {
- a.blocksDescendants.setFocusable(true);
- assertTrue(a.blocksDescendants.requestFocus());
- assertTrue(a.blocksDescendants.isFocused());
- assertFalse(a.blocksDescendantsChild.isFocused());
-
- a.blocksDescendants.setFocusable(false);
- assertFalse(a.blocksDescendants.requestFocus());
- assertFalse(a.blocksDescendants.isFocused());
- assertFalse(a.blocksDescendantsChild.isFocused());
- }
-
- @UiThreadTest
- @MediumTest
- public void testChildOfDescendantBlockerRequestFocusFails() {
- assertFalse(a.blocksDescendantsChild.requestFocus());
- }
-
- @LargeTest
- public void testBeforeDescendantsEnterTouchMode() {
- a.runOnUiThread(new Runnable() {
- public void run() {
- a.beforeDescendants.setFocusableInTouchMode(true);
- a.beforeDescendantsChild.requestFocus();
- }
- });
- getInstrumentation().waitForIdleSync();
- assertTrue(a.beforeDescendantsChild.isFocused());
- assertFalse(a.beforeDescendantsChild.isInTouchMode());
-
- TouchUtils.clickView(this, a.beforeDescendantsChild);
- assertTrue(a.beforeDescendantsChild.isInTouchMode());
- assertFalse(a.beforeDescendants.isFocused());
- }
-
- @LargeTest
- public void testAfterDescendantsEnterTouchMode() {
- a.runOnUiThread(new Runnable() {
- public void run() {
- a.afterDescendants.setFocusableInTouchMode(true);
- a.afterDescendantsChild.requestFocus();
- }
- });
- getInstrumentation().waitForIdleSync();
- assertTrue(a.afterDescendantsChild.isFocused());
- assertFalse(a.afterDescendantsChild.isInTouchMode());
-
- TouchUtils.clickView(this, a.afterDescendantsChild);
- assertTrue(a.afterDescendantsChild.isInTouchMode());
- assertTrue(a.afterDescendants.isFocused());
- }
-
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/FocusAfterRemovalTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/FocusAfterRemovalTest.java
deleted file mode 100644
index 8fb9b01..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/FocusAfterRemovalTest.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import com.android.frameworktest.focus.FocusAfterRemoval;
-import com.android.frameworktest.R;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.Button;
-import android.widget.LinearLayout;
-import android.view.KeyEvent;
-import android.view.View;
-
-/**
- * {@link FocusAfterRemoval} is set up to exercise cases where the views that
- * have focus become invisible or GONE.
- */
-public class FocusAfterRemovalTest extends ActivityInstrumentationTestCase<FocusAfterRemoval> {
-
- private LinearLayout mLeftLayout;
- private Button mTopLeftButton;
- private Button mBottomLeftButton;
- private Button mTopRightButton;
- private Button mBottomRightButton;
-
- public FocusAfterRemovalTest() {
- super("com.android.frameworktest", FocusAfterRemoval.class);
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
-
- final FocusAfterRemoval a = getActivity();
- mLeftLayout = (LinearLayout) a.findViewById(R.id.leftLayout);
- mTopLeftButton = (Button) a.findViewById(R.id.topLeftButton);
- mBottomLeftButton = (Button) a.findViewById(R.id.bottomLeftButton);
- mTopRightButton = (Button) a.findViewById(R.id.topRightButton);
- mBottomRightButton = (Button) a.findViewById(R.id.bottomRightButton);
- }
-
- // Test that setUp did what we expect it to do. These asserts
- // can't go in SetUp, or the test will hang.
- @MediumTest
- public void testSetUpConditions() throws Exception {
- assertNotNull(mLeftLayout);
- assertNotNull(mTopLeftButton);
- assertNotNull(mTopRightButton);
- assertNotNull(mBottomLeftButton);
- assertNotNull(mBottomRightButton);
-
- assertTrue(mTopLeftButton.hasFocus());
- }
-
- // if a parent layout becomes GONE when one of its children has focus,
- // make sure the focus moves to something visible (bug 827087)
- @MediumTest
- public void testFocusLeavesWhenParentLayoutIsGone() throws Exception {
-
- // clicking on this button makes its parent linear layout GONE
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
- assertEquals(View.GONE, mLeftLayout.getVisibility());
-
- assertTrue("focus should jump to visible button",
- mTopRightButton.hasFocus());
-
- }
-
- @MediumTest
- public void testFocusLeavesWhenParentLayoutInvisible() throws Exception {
-
- // move down to bottom left button
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertTrue(mBottomLeftButton.hasFocus());
-
- // clicking on this button makes its parent linear layout INVISIBLE
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
- assertEquals(View.INVISIBLE,
- getActivity().findViewById(R.id.leftLayout).getVisibility());
-
- assertTrue("focus should jump to visible button",
- mTopRightButton.hasFocus());
- }
-
- @MediumTest
- public void testFocusLeavesWhenFocusedViewBecomesGone() throws Exception {
-
- // move to top right
- sendKeys(KeyEvent.KEYCODE_DPAD_RIGHT);
- assertTrue(mTopRightButton.hasFocus());
-
- // click making it GONE
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
- assertEquals(View.GONE, mTopRightButton.getVisibility());
-
- assertTrue("focus should jump to visible button",
- mTopLeftButton.hasFocus());
- }
-
- @MediumTest
- public void testFocusLeavesWhenFocusedViewBecomesInvisible() throws Exception {
-
- // move to bottom right
- sendKeys(KeyEvent.KEYCODE_DPAD_RIGHT);
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertTrue(mBottomRightButton.hasFocus());
-
- // click making it INVISIBLE
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
- assertEquals(View.INVISIBLE, mBottomRightButton.getVisibility());
-
- assertTrue("focus should jump to visible button",
- mTopLeftButton.hasFocus());
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/FocusChangeWithInterestingRectHintTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/FocusChangeWithInterestingRectHintTest.java
deleted file mode 100644
index 6bdb1ca..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/FocusChangeWithInterestingRectHintTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import com.android.frameworktest.focus.AdjacentVerticalRectLists;
-import com.android.frameworktest.util.InternalSelectionView;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-
-/**
- * {@link android.view.FocusFinder#findNextFocus(android.view.ViewGroup, android.view.View, int)}
- * and
- * {@link android.view.View#requestFocus(int, android.graphics.Rect)}
- * work together to give a newly focused item a hint about the most interesting
- * rectangle of the previously focused view. The view taking focus can use this
- * to set an internal selection more appropriate using this rect.
- *
- * This tests that behavior using three adjacent {@link com.android.frameworktest.util.InternalSelectionView}
- * that report interesting rects when giving up focus, and use interesting rects
- * when taking focus to best select the internal row to show as selected.
- *
- */
-public class FocusChangeWithInterestingRectHintTest extends ActivityInstrumentationTestCase<AdjacentVerticalRectLists> {
-
- private InternalSelectionView mLeftColumn;
- private InternalSelectionView mMiddleColumn;
- private InternalSelectionView mRightColumn;
-
- public FocusChangeWithInterestingRectHintTest() {
- super("com.android.frameworktest", AdjacentVerticalRectLists.class);
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- mLeftColumn = getActivity().getLeftColumn();
- mMiddleColumn = getActivity().getMiddleColumn();
- mRightColumn = getActivity().getRightColumn();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mLeftColumn);
- assertNotNull(mMiddleColumn);
- assertNotNull(mRightColumn);
- assertTrue(mLeftColumn.hasFocus());
- assertTrue("need at least 3 rows", mLeftColumn.getNumRows() > 2);
- assertEquals(mLeftColumn.getNumRows(), mMiddleColumn.getNumRows());
- assertEquals(mMiddleColumn.getNumRows(), mRightColumn.getNumRows());
- }
-
-
- @LargeTest
- public void testSnakeBackAndForth() {
- final int numRows = mLeftColumn.getNumRows();
- for (int row = 0; row < numRows; row++) {
-
- if ((row % 2) == 0) {
- assertEquals("row " + row + ": should be at left column",
- row, mLeftColumn.getSelectedRow());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_RIGHT);
- assertTrue("row " + row + ": should be at middle column",
- mMiddleColumn.hasFocus());
- assertEquals(row, mMiddleColumn.getSelectedRow());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_RIGHT);
- assertTrue("row " + row + ": should be at right column",
- mRightColumn.hasFocus());
- assertEquals(row, mRightColumn.getSelectedRow());
-
- if (row < numRows - 1) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertEquals(row + 1, mRightColumn.getSelectedRow());
- }
- } else {
- assertTrue("row " + row + ": should be at right column",
- mRightColumn.hasFocus());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_LEFT);
- assertTrue("row " + row + ": should be at middle column",
- mMiddleColumn.hasFocus());
- assertEquals(row, mMiddleColumn.getSelectedRow());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_LEFT);
- assertEquals("row " + row + ": should be at left column",
- row, mLeftColumn.getSelectedRow());
-
- if (row < numRows - 1) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertEquals(row + 1, mLeftColumn.getSelectedRow());
- }
- }
- }
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/GoneParentFocusedChildTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/GoneParentFocusedChildTest.java
deleted file mode 100644
index a490322..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/GoneParentFocusedChildTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.view.View;
-import com.android.frameworktest.focus.GoneParentFocusedChild;
-
-/**
- * When a parent is GONE, key events shouldn't go to its children, even if they
- * have focus. (part of investigation into issue 945150).
- */
-public class GoneParentFocusedChildTest
- extends ActivityInstrumentationTestCase<GoneParentFocusedChild> {
-
-
- public GoneParentFocusedChildTest() {
- super("com.android.frameworktest", GoneParentFocusedChild.class);
- }
-
- @MediumTest
- public void testPreconditinos() {
- assertNotNull(getActivity().getLayout());
- assertNotNull(getActivity().getGoneGroup());
- assertNotNull(getActivity().getButton());
- assertTrue("button should have focus",
- getActivity().getButton().hasFocus());
- assertEquals("gone group should be, well, gone!",
- View.GONE,
- getActivity().getGoneGroup().getVisibility());
- assertFalse("the activity should have received no key events",
- getActivity().isUnhandledKeyEvent());
- }
-
- @MediumTest
- public void testKeyEventGoesToActivity() {
- sendKeys(KeyEvent.KEYCODE_J);
- assertTrue(getActivity().isUnhandledKeyEvent());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/HorizontalFocusSearchTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/HorizontalFocusSearchTest.java
deleted file mode 100644
index ca7cd7e..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/HorizontalFocusSearchTest.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import com.android.frameworktest.focus.HorizontalFocusSearch;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.Suppress;
-import android.widget.LinearLayout;
-import android.widget.Button;
-import android.view.View;
-
-import static com.android.frameworktest.focus.VerticalFocusSearchTest.FocusSearchAlg;
-import static com.android.frameworktest.focus.VerticalFocusSearchTest.NewFocusSearchAlg;
-
-/**
- * Tests that focus searching works on a horizontal linear layout of buttons of
- * various widths and vertical placements.
- */
-// Suppress until bug http://b/issue?id=1416545 is fixed.
-@Suppress
-public class HorizontalFocusSearchTest extends ActivityInstrumentationTestCase<HorizontalFocusSearch> {
-
- private FocusSearchAlg mFocusFinder;
-
- private LinearLayout mLayout;
- private Button mLeftTall;
- private Button mMidShort1Top;
- private Button mMidShort2Bottom;
- private Button mRightTall;
-
-
- public HorizontalFocusSearchTest() {
- super("com.android.frameworktest", HorizontalFocusSearch.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mFocusFinder = new NewFocusSearchAlg();
-
- mLayout = getActivity().getLayout();
- mLeftTall = getActivity().getLeftTall();
- mMidShort1Top = getActivity().getMidShort1Top();
- mMidShort2Bottom = getActivity().getMidShort2Bottom();
- mRightTall = getActivity().getRightTall();
- }
-
- public void testPreconditions() {
- assertNotNull(mLayout);
- assertNotNull(mLeftTall);
- assertNotNull(mMidShort1Top);
- assertNotNull(mMidShort2Bottom);
- assertNotNull(mRightTall);
- }
-
- public void testSearchFromLeftButton() {
- assertNull("going up from mLeftTall",
- mFocusFinder.findNextFocus(mLayout, mLeftTall, View.FOCUS_UP));
- assertNull("going down from mLeftTall",
- mFocusFinder.findNextFocus(mLayout, mLeftTall, View.FOCUS_DOWN));
- assertNull("going left from mLeftTall",
- mFocusFinder.findNextFocus(mLayout, mLeftTall, View.FOCUS_LEFT));
-
- assertEquals("going right from mLeftTall",
- mMidShort1Top,
- mFocusFinder.findNextFocus(mLayout, mLeftTall, View.FOCUS_RIGHT));
- }
-
- public void TODO_testSearchFromMiddleLeftButton() {
- assertNull("going up from mMidShort1Top",
- mFocusFinder.findNextFocus(mLayout, mMidShort1Top, View.FOCUS_UP));
- assertEquals("going down from mMidShort1Top",
- mMidShort2Bottom,
- mFocusFinder.findNextFocus(mLayout, mMidShort1Top, View.FOCUS_DOWN));
- assertEquals("going left from mMidShort1Top",
- mLeftTall,
- mFocusFinder.findNextFocus(mLayout, mMidShort1Top, View.FOCUS_LEFT));
- assertEquals("going right from mMidShort1Top",
- mMidShort2Bottom,
- mFocusFinder.findNextFocus(mLayout, mMidShort1Top, View.FOCUS_RIGHT));
- }
-
- public void TODO_testSearchFromMiddleRightButton() {
- assertEquals("going up from mMidShort2Bottom",
- mMidShort1Top,
- mFocusFinder.findNextFocus(mLayout, mMidShort2Bottom, View.FOCUS_UP));
- assertNull("going down from mMidShort2Bottom",
- mFocusFinder.findNextFocus(mLayout, mMidShort2Bottom, View.FOCUS_DOWN));
- assertEquals("going left from mMidShort2Bottom",
- mMidShort1Top,
- mFocusFinder.findNextFocus(mLayout, mMidShort2Bottom, View.FOCUS_LEFT));
- assertEquals("goind right from mMidShort2Bottom",
- mRightTall,
- mFocusFinder.findNextFocus(mLayout, mMidShort2Bottom, View.FOCUS_RIGHT));
- }
-
- public void testSearchFromRightButton() {
- assertNull("going up from mRightTall",
- mFocusFinder.findNextFocus(mLayout, mRightTall, View.FOCUS_UP));
- assertNull("going down from mRightTall",
- mFocusFinder.findNextFocus(mLayout, mRightTall, View.FOCUS_DOWN));
- assertEquals("going left from mRightTall",
- mMidShort2Bottom,
- mFocusFinder.findNextFocus(mLayout, mRightTall, View.FOCUS_LEFT));
- assertNull("going right from mRightTall",
- mFocusFinder.findNextFocus(mLayout, mRightTall, View.FOCUS_RIGHT));
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/LinearLayoutGridTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/LinearLayoutGridTest.java
deleted file mode 100644
index c26c331..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/LinearLayoutGridTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import android.test.SingleLaunchActivityTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.FocusFinder;
-import android.view.View;
-import android.view.ViewGroup;
-import com.android.frameworktest.focus.LinearLayoutGrid;
-
-/**
- * Tests focus searching between buttons within a grid that are touching, for example,
- * two buttons next two each other would have the left button's right equal to the
- * right button's left. Same goes for top and bottom edges.
- *
- * This exercises some edge cases of {@link android.view.FocusFinder}.
- */
-public class LinearLayoutGridTest extends SingleLaunchActivityTestCase<LinearLayoutGrid> {
- private ViewGroup mRootView;
-
- public LinearLayoutGridTest() {
- super("com.android.frameworktest", LinearLayoutGrid.class);
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- mRootView = getActivity().getRootView();
- }
-
- @MediumTest
- public void testGoDownFromMiddle() {
- assertEquals(getActivity().getButtonAt(2, 1),
- FocusFinder.getInstance().findNextFocus(
- mRootView,
- getActivity().getButtonAt(1, 1),
- View.FOCUS_DOWN));
- }
-
- @MediumTest
- public void testGoUpFromMiddle() {
- assertEquals(getActivity().getButtonAt(0, 1),
- FocusFinder.getInstance().findNextFocus(
- mRootView,
- getActivity().getButtonAt(1, 1),
- View.FOCUS_UP));
- }
-
- @MediumTest
- public void testGoRightFromMiddle() {
- assertEquals(getActivity().getButtonAt(1, 2),
- FocusFinder.getInstance().findNextFocus(
- mRootView,
- getActivity().getButtonAt(1, 1),
- View.FOCUS_RIGHT));
- }
-
- @MediumTest
- public void testGoLeftFromMiddle() {
- assertEquals(getActivity().getButtonAt(1, 0),
- FocusFinder.getInstance().findNextFocus(
- mRootView,
- getActivity().getButtonAt(1, 1),
- View.FOCUS_LEFT));
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/ListOfButtonsTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/ListOfButtonsTest.java
deleted file mode 100644
index 902fc1c..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/ListOfButtonsTest.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import com.android.frameworktest.focus.ListOfButtons;
-import com.android.frameworktest.R;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.ListAdapter;
-import android.widget.Button;
-import android.widget.ListView;
-import android.view.KeyEvent;
-import android.view.View;
-
-/**
- * Tests that focus works as expected when navigating into and out of
- * a {@link ListView} that has buttons in it.
- */
-public class ListOfButtonsTest extends ActivityInstrumentationTestCase<ListOfButtons> {
-
- private ListAdapter mListAdapter;
- private Button mButtonAtTop;
-
- private ListView mListView;
-
- public ListOfButtonsTest() {
- super("com.android.frameworktest", ListOfButtons.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- ListOfButtons a = getActivity();
- mListAdapter = a.getListAdapter();
- mButtonAtTop = (Button) a.findViewById(R.id.button);
- mListView = a.getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mListAdapter);
- assertNotNull(mButtonAtTop);
- assertNotNull(mListView);
-
- assertFalse(mButtonAtTop.hasFocus());
- assertTrue(mListView.hasFocus());
- assertEquals("expecting 0 index to be selected",
- 0, mListView.getSelectedItemPosition());
- }
-
- @MediumTest
- public void testNavigateToButtonAbove() {
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
-
- assertTrue(mButtonAtTop.hasFocus());
- assertFalse(mListView.hasFocus());
- }
-
- @MediumTest
- public void testNavigateToSecondItem() {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
-
- assertTrue(mListView.hasFocus());
-
- View childOne = mListView.getChildAt(1);
- assertNotNull(childOne);
- assertEquals(childOne, mListView.getFocusedChild());
- assertTrue(childOne.hasFocus());
- }
-
- @MediumTest
- public void testNavigateUpAboveAndBackOut() {
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
-
- assertFalse("button at top should have focus back",
- mButtonAtTop.hasFocus());
- assertTrue(mListView.hasFocus());
- }
-
- // TODO: this reproduces bug 981791
- public void TODO_testNavigateThroughAllButtonsAndBack() {
-
- String[] labels = getActivity().getLabels();
- for (int i = 0; i < labels.length; i++) {
- String label = labels[i];
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- getInstrumentation().waitForIdleSync();
-
- String indexInfo = "index: " + i + ", label: " + label;
-
- assertTrue(indexInfo, mListView.hasFocus());
-
- Button button = (Button) mListView.getSelectedView();
- assertNotNull(indexInfo, button);
- assertEquals(indexInfo, label, button.getText().toString());
- assertTrue(indexInfo, button.hasFocus());
- }
-
- // pressing down again shouldn't matter; make sure last item keeps focus
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
-
-
- for (int i = labels.length - 1; i >= 0; i--) {
- String label = labels[i];
-
- String indexInfo = "index: " + i + ", label: " + label;
-
- assertTrue(indexInfo, mListView.hasFocus());
-
- Button button = (Button) mListView.getSelectedView();
- assertNotNull(indexInfo, button);
- assertEquals(indexInfo, label, button.getText().toString());
- assertTrue(indexInfo, button.hasFocus());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- getInstrumentation().waitForIdleSync();
- }
-
- assertTrue("button at top should have focus back",
- mButtonAtTop.hasFocus());
- assertFalse(mListView.hasFocus());
- }
-
- @MediumTest
- public void testGoInAndOutOfListWithItemsFocusable() {
-
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
-
- assertTrue(mButtonAtTop.hasFocus());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
-
- final String firstButtonLabel = getActivity().getLabels()[0];
- final Button firstButton = (Button) mListView.getSelectedView();
-
- assertTrue(firstButton.isFocused());
- assertEquals(firstButtonLabel, firstButton.getText());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- assertTrue(mButtonAtTop.isFocused());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertTrue(firstButton.isFocused());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- assertTrue(mButtonAtTop.isFocused());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertTrue(firstButton.isFocused());
- }
-
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/ListWithFooterViewAndNewLabelsTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/ListWithFooterViewAndNewLabelsTest.java
deleted file mode 100644
index c094882..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/ListWithFooterViewAndNewLabelsTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import com.android.frameworktest.focus.ListWithFooterViewAndNewLabels;
-import com.android.frameworktest.R;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.widget.Button;
-import android.widget.ListAdapter;
-import android.widget.ListView;
-
-public class ListWithFooterViewAndNewLabelsTest
- extends ActivityInstrumentationTestCase<ListWithFooterViewAndNewLabels> {
-
- private Button mButton;
-
- private ListAdapter mAdapter;
-
- private ListView mListView;
-
-
- public ListWithFooterViewAndNewLabelsTest() {
- super("com.android.frameworktest",
- ListWithFooterViewAndNewLabels.class);
- }
-
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- ListWithFooterViewAndNewLabels a = getActivity();
- mButton = (Button) a.findViewById(R.id.button);
- mAdapter = a.getListAdapter();
- mListView = a.getListView();
- }
-
- // bug 900885
- public void FAILING_testPreconditions() {
- assertNotNull(mButton);
- assertNotNull(mAdapter);
- assertNotNull(mListView);
-
- assertTrue(mButton.hasFocus());
- assertEquals("expected list adapter to have 1 item",
- 1, mAdapter.getCount());
- assertEquals("expected list view to have 2 items (1 in adapter, plus "
- + "the footer view).",
- 2, mListView.getCount());
-
- // fails here!!!
- assertEquals("Expecting the selected index to be 0, the first non footer "
- + "view item.",
- 0, mListView.getSelectedItemPosition());
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/RequestFocusTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/RequestFocusTest.java
deleted file mode 100644
index 5fb3a29..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/RequestFocusTest.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import com.android.frameworktest.focus.RequestFocus;
-import com.android.frameworktest.R;
-
-import android.os.Handler;
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.Button;
-import android.util.AndroidRuntimeException;
-
-/**
- * {@link RequestFocusTest} is set up to exercise cases where the views that
- * have focus become invisible or GONE.
- */
-public class RequestFocusTest extends ActivityInstrumentationTestCase<RequestFocus> {
-
- private Button mTopLeftButton;
- private Button mBottomLeftButton;
- private Button mTopRightButton;
- private Button mBottomRightButton;
- private Handler mHandler;
-
- public RequestFocusTest() {
- super("com.android.frameworktest", RequestFocus.class);
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
-
- final RequestFocus a = getActivity();
- mHandler = a.getHandler();
- mTopLeftButton = (Button) a.findViewById(R.id.topLeftButton);
- mBottomLeftButton = (Button) a.findViewById(R.id.bottomLeftButton);
- mTopRightButton = (Button) a.findViewById(R.id.topRightButton);
- mBottomRightButton = (Button) a.findViewById(R.id.bottomRightButton);
- }
-
- // Test that setUp did what we expect it to do. These asserts
- // can't go in SetUp, or the test will hang.
- @MediumTest
- public void testSetUpConditions() throws Exception {
- assertNotNull(mHandler);
- assertNotNull(mTopLeftButton);
- assertNotNull(mTopRightButton);
- assertNotNull(mBottomLeftButton);
- assertNotNull(mBottomRightButton);
- assertTrue("requestFocus() should work from onCreate.", mBottomRightButton.hasFocus());
- }
-
- // Test that a posted requestFocus works.
- @LargeTest
- public void testPostedRequestFocus() throws Exception {
- mHandler.post(new Runnable() { public void run() {
- mBottomLeftButton.requestFocus();
- }});
- synchronized(this) {
- try {
- wait(500);
- } catch (InterruptedException e) {
- // Don't care.
- }
- }
- assertTrue("Focus should move to bottom left", mBottomLeftButton.hasFocus());
- }
-
- // Test that a requestFocus from the wrong thread fails.
- @MediumTest
- public void testWrongThreadRequestFocusFails() throws Exception {
- try {
- mTopRightButton.requestFocus();
- fail("requestFocus from wrong thread should raise exception.");
- } catch (AndroidRuntimeException e) {
- // Expected. The actual exception is not public, so we can't catch it.
- assertEquals("android.view.ViewRoot$CalledFromWrongThreadException",
- e.getClass().getName());
- }
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/ScrollingThroughListOfFocusablesTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/ScrollingThroughListOfFocusablesTest.java
deleted file mode 100644
index 07916ee..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/ScrollingThroughListOfFocusablesTest.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import android.graphics.Rect;
-import android.test.InstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.widget.ListView;
-import com.android.frameworktest.focus.ListOfInternalSelectionViews;
-import com.android.frameworktest.util.InternalSelectionView;
-
-
-/**
- * TODO: extract base test case that launches {@link ListOfInternalSelectionViews} with
- * bundle params.
- */
-public class ScrollingThroughListOfFocusablesTest extends InstrumentationTestCase {
-
- Rect mTempRect = new Rect();
-
- private ListOfInternalSelectionViews mActivity;
- private ListView mListView;
-
- private int mNumItems = 4;
- private int mNumRowsPerItem = 5;
- private double mScreenHeightFactor = 5 /4;
-
- @Override
- protected void setUp() throws Exception {
- mActivity = launchActivity(
- "com.android.frameworktest",
- ListOfInternalSelectionViews.class,
- ListOfInternalSelectionViews.getBundleFor(
- mNumItems, // 4 items
- mNumRowsPerItem, // 5 internally selectable rows per item
- mScreenHeightFactor)); // each item is 5 / 4 screen height tall
- mListView = mActivity.getListView();
- }
-
- @Override
- protected void tearDown() throws Exception {
- mActivity.finish();
- super.tearDown();
- }
-
- @MediumTest
- public void testPreconditions() throws Exception {
- assertNotNull(mActivity);
- assertNotNull(mListView);
- assertEquals(mNumItems, mActivity.getNumItems());
- assertEquals(mNumRowsPerItem, mActivity.getNumRowsPerItem());
- }
-
- @MediumTest
- public void testScrollingDownInFirstItem() throws Exception {
-
- for (int i = 0; i < mNumRowsPerItem; i++) {
- assertEquals(0, mListView.getSelectedItemPosition());
- InternalSelectionView view = mActivity.getSelectedView();
-
- assertInternallySelectedRowOnScreen(view, i);
-
- // move to next row
- if (i < mNumRowsPerItem - 1) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- getInstrumentation().waitForIdleSync();
- }
- }
-
- {
- assertEquals(0, mListView.getSelectedItemPosition());
- InternalSelectionView view = (InternalSelectionView)
- mListView.getSelectedView();
-
- // 1 pixel tolerance in case height / 4 is not an even number
- final int fadingEdge = mListView.getBottom() - mListView.getVerticalFadingEdgeLength();
- assertTrue("bottom of view should be just above fading edge",
- view.getBottom() >= fadingEdge - 1 &&
- view.getBottom() <= fadingEdge);
- }
-
-
- // make sure fading edge is the expected view
- {
- assertEquals("should be a second view visible due to the fading edge",
- 2, mListView.getChildCount());
- InternalSelectionView peekingChild = (InternalSelectionView)
- mListView.getChildAt(1);
- assertNotNull(peekingChild);
- assertEquals("wrong value for peeking list item",
- mActivity.getLabelForPosition(1), peekingChild.getLabel());
- }
- }
-
-
- @MediumTest
- public void testScrollingToSecondItem() throws Exception {
-
- for (int i = 0; i < mNumRowsPerItem; i++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- getInstrumentation().waitForIdleSync();
- }
-
- assertEquals("should have moved to second item",
- 1, mListView.getSelectedItemPosition());
- }
-
- @LargeTest
- public void testNoFadingEdgeAtBottomOfLastItem() {
-
- // move down to last item
- for (int i = 0; i < mNumItems; i++) {
- for (int j = 0; j < mNumRowsPerItem; j++) {
- if (i < mNumItems - 1 || j < mNumRowsPerItem - 1) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- getInstrumentation().waitForIdleSync();
- }
- }
- }
-
- assertEquals(mNumItems - 1, mListView.getSelectedItemPosition());
- InternalSelectionView view = mActivity.getSelectedView();
- assertEquals(mNumRowsPerItem - 1, view.getSelectedRow());
-
- view.getRectForRow(mTempRect, mNumRowsPerItem - 1);
- mListView.offsetDescendantRectToMyCoords(view, mTempRect);
-
- assertTrue("bottom of last row of last item should be at " +
- "the bottom of the list view (no fading edge)",
- mListView.getBottom() - mListView.getVerticalFadingEdgeLength() < mTempRect.bottom);
- }
-
- @LargeTest
- public void testNavigatingUpThroughInternalSelection() throws Exception {
-
- // get to bottom of second item
- for (int i = 0; i < 2; i++) {
- for (int j = 0; j < mNumRowsPerItem; j++) {
- if (i < 1 || j < mNumRowsPerItem - 1) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- getInstrumentation().waitForIdleSync();
- }
- }
- }
-
-
- // (make sure we are at last row of second item)
- {
- assertEquals(1, mListView.getSelectedItemPosition());
- InternalSelectionView view = mActivity.getSelectedView();
- assertEquals(mNumRowsPerItem - 1, view.getSelectedRow());
- }
-
- // go back up to the top of the second item
- for (int i = mNumRowsPerItem - 1; i >= 0; i--) {
- assertEquals(1, mListView.getSelectedItemPosition());
- InternalSelectionView view = mActivity.getSelectedView();
-
- assertInternallySelectedRowOnScreen(view, i);
-
- // move up to next row
- if (i > 0) {
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- getInstrumentation().waitForIdleSync();
- }
- }
-
- // now we are at top row, should have caused scrolling, and fading edge...
- {
- assertEquals(1, mListView.getSelectedItemPosition());
- InternalSelectionView view = mActivity.getSelectedView();
- assertEquals(0, view.getSelectedRow());
-
- view.getDrawingRect(mTempRect);
- mListView.offsetDescendantRectToMyCoords(view, mTempRect);
- assertEquals("top of selected row should be just below top vertical fading edge",
- mListView.getVerticalFadingEdgeLength(),
- view.getTop());
- }
-
- // make sure fading edge is the view we expect
- {
- final InternalSelectionView view =
- (InternalSelectionView) mListView.getChildAt(0);
- assertEquals(mActivity.getLabelForPosition(0), view.getLabel());
- }
-
-
- }
-
- /**
- * @param internalFocused The view to check
- * @param row
- */
- private void assertInternallySelectedRowOnScreen(
- InternalSelectionView internalFocused,
- int row) {
- assertEquals("expecting selected row",
- row, internalFocused.getSelectedRow());
-
- internalFocused.getRectForRow(mTempRect, row);
- mListView.offsetDescendantRectToMyCoords(internalFocused, mTempRect);
-
- assertTrue("top of row " + row + " should be on sreen",
- mTempRect.top >= 0);
- assertTrue("bottom of row " + row + " should be on sreen",
- mTempRect.bottom < mActivity.getScreenHeight());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/VerticalFocusSearchTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/VerticalFocusSearchTest.java
deleted file mode 100644
index 47a81fb..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/focus/VerticalFocusSearchTest.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.focus;
-
-import com.android.frameworktest.focus.VerticalFocusSearch;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.Suppress;
-import android.view.FocusFinder;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.LinearLayout;
-
-/**
- * Tests that focus searching works on a vertical linear layout of buttons of
- * various widths and horizontal placements.
- */
-// Suppress until bug http://b/issue?id=1416545 is fixed
-@Suppress
-public class VerticalFocusSearchTest extends ActivityInstrumentationTestCase<VerticalFocusSearch> {
-
- private LinearLayout mLayout;
-
- private Button mTopWide;
- private Button mMidSkinny1Left;
- private Button mMidSkinny2Right;
- private Button mBottomWide;
-
- private FocusSearchAlg mFocusFinder;
-
- // helps test old and new impls when figuring out why something that used
- // to work doesn't anymore (or verifying that new works as well as old).
- interface FocusSearchAlg {
- View findNextFocus(ViewGroup root, View focused, int direction);
- }
-
- // calls new impl
- static class NewFocusSearchAlg implements FocusSearchAlg {
-
- public View findNextFocus(ViewGroup root, View focused, int direction) {
- return FocusFinder.getInstance()
- .findNextFocus(root, focused, direction);
- }
- }
-
- public VerticalFocusSearchTest() {
- super("com.android.frameworktest", VerticalFocusSearch.class);
- }
-
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mLayout = getActivity().getLayout();
- mTopWide = getActivity().getTopWide();
- mMidSkinny1Left = getActivity().getMidSkinny1Left();
- mMidSkinny2Right = getActivity().getMidSkinny2Right();
- mBottomWide = getActivity().getBottomWide();
-
- mFocusFinder = new NewFocusSearchAlg();
- }
-
- public void testPreconditions() {
- assertNotNull(mLayout);
- assertNotNull(mTopWide);
- assertNotNull(mMidSkinny1Left);
- assertNotNull(mMidSkinny2Right);
- assertNotNull(mBottomWide);
- }
-
- public void testSearchFromTopButton() {
- assertNull("going up from mTopWide.",
- mFocusFinder.findNextFocus(mLayout, mTopWide, View.FOCUS_UP));
-
- assertNull("going left from mTopWide.",
- mFocusFinder.findNextFocus(mLayout, mTopWide, View.FOCUS_LEFT));
-
- assertNull("going right from mTopWide.",
- mFocusFinder.findNextFocus(mLayout, mTopWide, View.FOCUS_RIGHT));
-
- assertEquals("going down from mTopWide.",
- mMidSkinny1Left,
- mFocusFinder
- .findNextFocus(mLayout, mTopWide, View.FOCUS_DOWN));
- }
-
- public void testSearchFromMidLeft() {
- assertNull("going left should have no next focus",
- mFocusFinder.findNextFocus(mLayout, mMidSkinny1Left, View.FOCUS_LEFT));
-
- assertEquals("going right from mMidSkinny1Left should go to mMidSkinny2Right",
- mMidSkinny2Right,
- mFocusFinder.findNextFocus(mLayout, mMidSkinny1Left, View.FOCUS_RIGHT));
-
- assertEquals("going up from mMidSkinny1Left should go to mTopWide",
- mTopWide,
- mFocusFinder.findNextFocus(mLayout, mMidSkinny1Left, View.FOCUS_UP));
-
- assertEquals("going down from mMidSkinny1Left should go to mMidSkinny2Right",
- mMidSkinny2Right,
- mFocusFinder.findNextFocus(mLayout, mMidSkinny1Left, View.FOCUS_DOWN));
- }
-
- public void testSearchFromMidRight() {
- assertEquals("going left from mMidSkinny2Right should go to mMidSkinny1Left",
- mMidSkinny1Left,
- mFocusFinder.findNextFocus(mLayout, mMidSkinny2Right, View.FOCUS_LEFT));
-
- assertNull("going right should have no next focus",
- mFocusFinder.findNextFocus(mLayout, mMidSkinny2Right, View.FOCUS_RIGHT));
-
- assertEquals("going up from mMidSkinny2Right should go to mMidSkinny1Left",
- mMidSkinny1Left,
- mFocusFinder.findNextFocus(mLayout, mMidSkinny2Right, View.FOCUS_UP));
-
- assertEquals("going down from mMidSkinny2Right should go to mBottomWide",
- mBottomWide,
- mFocusFinder.findNextFocus(mLayout, mMidSkinny2Right, View.FOCUS_DOWN));
-
- }
-
- public void testSearchFromFromBottom() {
- assertNull("going down from bottom button should have no next focus.",
- mFocusFinder.findNextFocus(mLayout, mBottomWide, View.FOCUS_DOWN));
-
- assertNull("going left from bottom button should have no next focus.",
- mFocusFinder.findNextFocus(mLayout, mBottomWide, View.FOCUS_LEFT));
-
- assertNull("going right from bottom button should have no next focus.",
- mFocusFinder.findNextFocus(mLayout, mBottomWide, View.FOCUS_RIGHT));
-
- assertEquals("going up from bottom button should go to mMidSkinny2Right.",
- mMidSkinny2Right,
- mFocusFinder.findNextFocus(mLayout, mBottomWide, View.FOCUS_UP));
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridInHorizontalTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridInHorizontalTest.java
deleted file mode 100644
index 8af6214..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridInHorizontalTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.GridView;
-
-import com.android.frameworktest.gridview.GridInHorizontal;
-
-public class GridInHorizontalTest extends ActivityInstrumentationTestCase<GridInHorizontal> {
-
- private GridInHorizontal mActivity;
- private GridView mGridView;
-
- public GridInHorizontalTest() {
- super("com.android.frameworktest", GridInHorizontal.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mGridView = getActivity().getGridView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mGridView);
- assertTrue("Grid has 0 width", mGridView.getMeasuredWidth() > 0);
- assertTrue("Grid has 0 height", mGridView.getMeasuredHeight() > 0);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridInVerticalTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridInVerticalTest.java
deleted file mode 100644
index 61e1c8b..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridInVerticalTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.GridView;
-
-import com.android.frameworktest.gridview.GridInVertical;
-
-public class GridInVerticalTest extends ActivityInstrumentationTestCase<GridInVertical> {
-
- private GridInVertical mActivity;
- private GridView mGridView;
-
- public GridInVerticalTest() {
- super("com.android.frameworktest", GridInVertical.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mGridView = getActivity().getGridView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mGridView);
- assertTrue("Grid has 0 width", mGridView.getMeasuredWidth() > 0);
- assertTrue("Grid has 0 height", mGridView.getMeasuredHeight() > 0);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridPaddingTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridPaddingTest.java
deleted file mode 100644
index 43581c6..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridPaddingTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import android.test.ActivityInstrumentationTestCase2;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.GridView;
-
-public class GridPaddingTest extends ActivityInstrumentationTestCase2<GridPadding> {
- private GridView mGridView;
-
- public GridPaddingTest() {
- super("com.android.frameworktest", GridPadding.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- setActivityInitialTouchMode(true);
- mGridView = getActivity().getGridView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mGridView);
- assertTrue("Not in touch mode", mGridView.isInTouchMode());
- }
-
- @MediumTest
- public void testResurrectSelection() {
- sendKeys("DPAD_DOWN");
- assertEquals("The first item should be selected", mGridView.getSelectedItemPosition(), 0);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridScrollListenerTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridScrollListenerTest.java
deleted file mode 100644
index f939f16..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridScrollListenerTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import android.app.Instrumentation;
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.TouchUtils;
-import android.view.KeyEvent;
-import android.widget.AbsListView;
-import android.widget.GridView;
-
-import com.android.frameworktest.gridview.GridScrollListener;
-
-public class GridScrollListenerTest extends ActivityInstrumentationTestCase<GridScrollListener> implements
- AbsListView.OnScrollListener {
- private GridScrollListener mActivity;
- private GridView mGridView;
- private int mFirstVisibleItem = -1;
- private int mVisibleItemCount = -1;
- private int mTotalItemCount = -1;
-
- public GridScrollListenerTest() {
- super("com.android.frameworktest", GridScrollListener.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mGridView = getActivity().getGridView();
- mGridView.setOnScrollListener(this);
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mGridView);
-
- assertEquals(0, mFirstVisibleItem);
- }
-
- @LargeTest
- public void testKeyScrolling() {
- Instrumentation inst = getInstrumentation();
-
- int firstVisibleItem = mFirstVisibleItem;
- for (int i = 0; i < mVisibleItemCount * 2; i++) {
- inst.sendCharacterSync(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- inst.waitForIdleSync();
-
- assertTrue("Arrow scroll did not happen", mFirstVisibleItem > firstVisibleItem);
-
- firstVisibleItem = mFirstVisibleItem;
- inst.sendCharacterSync(KeyEvent.KEYCODE_SPACE);
- inst.waitForIdleSync();
-
- assertTrue("Page scroll did not happen", mFirstVisibleItem > firstVisibleItem);
-
- firstVisibleItem = mFirstVisibleItem;
- KeyEvent down = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN,
- KeyEvent.KEYCODE_DPAD_DOWN, 0, KeyEvent.META_ALT_ON);
- KeyEvent up = new KeyEvent(0, 0, KeyEvent.ACTION_UP,
- KeyEvent.KEYCODE_DPAD_DOWN, 0, KeyEvent.META_ALT_ON);
- inst.sendKeySync(down);
- inst.sendKeySync(up);
- inst.waitForIdleSync();
-
- assertTrue("Full scroll did not happen", mFirstVisibleItem > firstVisibleItem);
- assertEquals("Full scroll did not happen", mTotalItemCount,
- mFirstVisibleItem + mVisibleItemCount);
- }
-
- @LargeTest
- public void testTouchScrolling() {
- Instrumentation inst = getInstrumentation();
-
- int firstVisibleItem = mFirstVisibleItem;
- TouchUtils.dragQuarterScreenUp(this);
- TouchUtils.dragQuarterScreenUp(this);
- assertTrue("Touch scroll did not happen", mFirstVisibleItem > firstVisibleItem);
- }
-
-
- public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
- mFirstVisibleItem = firstVisibleItem;
- mVisibleItemCount = visibleItemCount;
- mTotalItemCount = totalItemCount;
- }
-
- public void onScrollStateChanged(AbsListView view, int scrollState) {
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSetSelectionBaseTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSetSelectionBaseTest.java
deleted file mode 100644
index 3ca9b09..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSetSelectionBaseTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import com.android.frameworktest.util.GridScenario;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.ViewAsserts;
-import android.widget.GridView;
-
-public class GridSetSelectionBaseTest<T extends GridScenario> extends ActivityInstrumentationTestCase<T> {
- private T mActivity;
- private GridView mGridView;
-
- protected GridSetSelectionBaseTest(Class<T> klass) {
- super("com.android.frameworktest", klass);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mGridView = getActivity().getGridView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mGridView);
-
- // First item should be selected
- if (mGridView.isStackFromBottom()) {
- assertEquals(mGridView.getAdapter().getCount() - 1,
- mGridView.getSelectedItemPosition());
- } else {
- assertEquals(0, mGridView.getSelectedItemPosition());
- }
- }
-
- @MediumTest
- public void testSetSelectionToTheEnd() {
- final int target = mGridView.getAdapter().getCount() - 1;
- mActivity.runOnUiThread(new Runnable() {
- public void run() {
- mGridView.setSelection(target);
- }
- });
- getInstrumentation().waitForIdleSync();
-
- assertEquals(mGridView.getSelectedItemPosition(), target);
- assertNotNull(mGridView.getSelectedView());
-
- ViewAsserts.assertOnScreen(mGridView, mGridView.getSelectedView());
- }
-
- @MediumTest
- public void testSetSelectionToMiddle() {
- final int target = mGridView.getAdapter().getCount() / 2;
- mActivity.runOnUiThread(new Runnable() {
- public void run() {
- mGridView.setSelection(target);
- }
- });
- getInstrumentation().waitForIdleSync();
-
- assertEquals(mGridView.getSelectedItemPosition(), target);
- assertNotNull(mGridView.getSelectedView());
-
- ViewAsserts.assertOnScreen(mGridView, mGridView.getSelectedView());
- }
-
- @MediumTest
- public void testSetSelectionToTheTop() {
- mActivity.runOnUiThread(new Runnable() {
- public void run() {
- mGridView.setSelection(0);
- }
- });
- getInstrumentation().waitForIdleSync();
-
- assertEquals(mGridView.getSelectedItemPosition(), 0);
- assertNotNull(mGridView.getSelectedView());
-
- ViewAsserts.assertOnScreen(mGridView, mGridView.getSelectedView());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSetSelectionManyTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSetSelectionManyTest.java
deleted file mode 100644
index aadc185..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSetSelectionManyTest.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import com.android.frameworktest.gridview.GridSetSelectionMany;
-
-public class GridSetSelectionManyTest extends GridSetSelectionBaseTest<GridSetSelectionMany> {
- public GridSetSelectionManyTest() {
- super(GridSetSelectionMany.class);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSetSelectionStackFromBottomManyTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSetSelectionStackFromBottomManyTest.java
deleted file mode 100644
index 831ba85..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSetSelectionStackFromBottomManyTest.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import com.android.frameworktest.gridview.GridSetSelectionStackFromBottomMany;
-
-public class GridSetSelectionStackFromBottomManyTest extends GridSetSelectionBaseTest<GridSetSelectionStackFromBottomMany> {
- public GridSetSelectionStackFromBottomManyTest() {
- super(GridSetSelectionStackFromBottomMany.class);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSetSelectionStackFromBottomTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSetSelectionStackFromBottomTest.java
deleted file mode 100644
index c4d0513..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSetSelectionStackFromBottomTest.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import com.android.frameworktest.gridview.GridSetSelectionStackFromBottom;
-
-public class GridSetSelectionStackFromBottomTest extends GridSetSelectionBaseTest<GridSetSelectionStackFromBottom> {
- public GridSetSelectionStackFromBottomTest() {
- super(GridSetSelectionStackFromBottom.class);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSetSelectionTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSetSelectionTest.java
deleted file mode 100644
index 5a584a5..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSetSelectionTest.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import com.android.frameworktest.gridview.GridSetSelection;
-
-public class GridSetSelectionTest extends GridSetSelectionBaseTest<GridSetSelection> {
- public GridSetSelectionTest() {
- super(GridSetSelection.class);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSingleColumnTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSingleColumnTest.java
deleted file mode 100644
index b72a2e0..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridSingleColumnTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.GridView;
-
-import com.android.frameworktest.gridview.GridSingleColumn;
-
-public class GridSingleColumnTest extends ActivityInstrumentationTestCase<GridSingleColumn> {
- private GridSingleColumn mActivity;
- private GridView mGridView;
-
- public GridSingleColumnTest() {
- super("com.android.frameworktest", GridSingleColumn.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mGridView = getActivity().getGridView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mGridView);
- assertEquals(0, mGridView.getSelectedItemPosition());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridStackFromBottomManyTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridStackFromBottomManyTest.java
deleted file mode 100644
index a0b819e..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridStackFromBottomManyTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import com.android.frameworktest.gridview.GridStackFromBottomMany;
-
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.GridView;
-import android.test.ActivityInstrumentationTestCase;
-
-public class GridStackFromBottomManyTest extends ActivityInstrumentationTestCase<GridStackFromBottomMany> {
- private GridStackFromBottomMany mActivity;
- private GridView mGridView;
-
- public GridStackFromBottomManyTest() {
- super("com.android.frameworktest", GridStackFromBottomMany.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mGridView = getActivity().getGridView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mGridView);
-
- // Last item should be selected
- assertEquals(mGridView.getAdapter().getCount() - 1, mGridView.getSelectedItemPosition());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridStackFromBottomTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridStackFromBottomTest.java
deleted file mode 100644
index 821c7a5..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/GridStackFromBottomTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview;
-
-import com.android.frameworktest.gridview.GridStackFromBottom;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.GridView;
-
-public class GridStackFromBottomTest extends ActivityInstrumentationTestCase<GridStackFromBottom> {
- private GridStackFromBottom mActivity;
- private GridView mGridView;
-
- public GridStackFromBottomTest() {
- super("com.android.frameworktest", GridStackFromBottom.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mGridView = getActivity().getGridView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mGridView);
-
- // Last item should be selected
- assertEquals(mGridView.getAdapter().getCount() - 1, mGridView.getSelectedItemPosition());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/touch/GridTouchSetSelectionTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/touch/GridTouchSetSelectionTest.java
deleted file mode 100644
index 926d662..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/touch/GridTouchSetSelectionTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview.touch;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.TouchUtils;
-import android.view.View;
-import android.widget.GridView;
-
-import com.android.frameworktest.gridview.GridSimple;
-
-/**
- * Tests setting the selection in touch mode
- */
-public class GridTouchSetSelectionTest extends ActivityInstrumentationTestCase<GridSimple> {
- private GridSimple mActivity;
- private GridView mGridView;
-
- public GridTouchSetSelectionTest() {
- super("com.android.frameworktest", GridSimple.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mGridView = getActivity().getGridView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mGridView);
- }
-
- @LargeTest
- public void testSetSelection() {
- TouchUtils.dragQuarterScreenDown(this);
- TouchUtils.dragQuarterScreenUp(this);
-
- // Nothing should be selected
- assertEquals("Selection still available after touch", -1,
- mGridView.getSelectedItemPosition());
-
- final int targetPosition = mGridView.getAdapter().getCount() / 2;
-
- mActivity.runOnUiThread(new Runnable() {
- public void run() {
- mGridView.setSelection(targetPosition);
- }
- });
- getInstrumentation().waitForIdleSync();
-
- boolean found = false;
- int childCount = mGridView.getChildCount();
- for (int i=0; i<childCount; i++) {
- View child = mGridView.getChildAt(i);
- if (child.getId() == targetPosition) {
- found = true;
- break;
- }
- }
- assertTrue("Selected item not visible in list", found);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/touch/GridTouchStackFromBottomManyTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/touch/GridTouchStackFromBottomManyTest.java
deleted file mode 100644
index 710617e..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/touch/GridTouchStackFromBottomManyTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview.touch;
-
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.TouchUtils;
-import com.android.frameworktest.gridview.GridStackFromBottomMany;
-
-import android.widget.GridView;
-import android.view.View;
-import android.test.ActivityInstrumentationTestCase;
-
-public class GridTouchStackFromBottomManyTest extends ActivityInstrumentationTestCase<GridStackFromBottomMany> {
- private GridStackFromBottomMany mActivity;
- private GridView mGridView;
-
- public GridTouchStackFromBottomManyTest() {
- super("com.android.frameworktest", GridStackFromBottomMany.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mGridView = getActivity().getGridView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mGridView);
-
- // Last item should be selected
- assertEquals(mGridView.getAdapter().getCount() - 1, mGridView.getSelectedItemPosition());
- }
-
- @LargeTest
- public void testScrollToTop() {
- View firstChild;
- TouchUtils.scrollToTop(this, mGridView);
-
- // Nothing should be selected
- assertEquals("Selection still available after touch", -1,
- mGridView.getSelectedItemPosition());
-
- firstChild = mGridView.getChildAt(0);
-
- assertEquals("Item zero not the first child in the grid", 0, firstChild.getId());
-
- assertEquals("Item zero not at the top of the grid",
- mGridView.getListPaddingTop(), firstChild.getTop());
- }
-
- @MediumTest
- public void testScrollToBottom() {
- TouchUtils.scrollToBottom(this, mGridView);
-
- // Nothing should be selected
- assertEquals("Selection still available after touch", -1,
- mGridView.getSelectedItemPosition());
-
- View lastChild = mGridView.getChildAt(mGridView.getChildCount() - 1);
-
- assertEquals("Grid is not scrolled to the bottom", mGridView.getAdapter().getCount() - 1,
- lastChild.getId());
-
- assertEquals("Last item is not touching the bottom edge",
- mGridView.getHeight() - mGridView.getListPaddingBottom(), lastChild.getBottom());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/touch/GridTouchStackFromBottomTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/touch/GridTouchStackFromBottomTest.java
deleted file mode 100644
index e085105..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/touch/GridTouchStackFromBottomTest.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview.touch;
-
-import com.android.frameworktest.gridview.GridStackFromBottom;
-import android.test.TouchUtils;
-import android.test.suitebuilder.annotation.MediumTest;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.widget.GridView;
-import android.view.View;
-
-public class GridTouchStackFromBottomTest extends ActivityInstrumentationTestCase<GridStackFromBottom> {
- private GridStackFromBottom mActivity;
- private GridView mGridView;
-
- public GridTouchStackFromBottomTest() {
- super("com.android.frameworktest", GridStackFromBottom.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mGridView = getActivity().getGridView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mGridView);
-
- // First item should be selected
- assertEquals(mGridView.getAdapter().getCount() - 1, mGridView.getSelectedItemPosition());
- }
-
- @MediumTest
- public void testPushUp() {
- TouchUtils.scrollToBottom(this, mGridView);
-
- // Nothing should be selected
- assertEquals("Selection still available after touch", -1,
- mGridView.getSelectedItemPosition());
-
- View lastChild = mGridView.getChildAt(mGridView.getChildCount() - 1);
-
- assertEquals("Last item not the last child in the grid",
- mGridView.getAdapter().getCount() - 1, lastChild.getId());
-
- assertEquals("Last item not at the bottom of the grid",
- mGridView.getHeight() - mGridView.getListPaddingBottom(), lastChild.getBottom());
- }
-
- @MediumTest
- public void testPullDown() {
- TouchUtils.scrollToTop(this, mGridView);
-
- // Nothing should be selected
- assertEquals("Selection still available after touch", -1,
- mGridView.getSelectedItemPosition());
-
- View lastChild = mGridView.getChildAt(mGridView.getChildCount() - 1);
-
- assertEquals("Last item not the last child in the grid",
- mGridView.getAdapter().getCount() - 1, lastChild.getId());
-
- assertEquals("Last item not at the bottom of the grid",
- mGridView.getHeight() - mGridView.getListPaddingBottom(), lastChild.getBottom());
- }
-
- @MediumTest
- public void testPushUpFast() {
- TouchUtils.dragViewToTop(this, mGridView.getChildAt(mGridView.getChildCount() - 1), 2);
-
- // Nothing should be selected
- assertEquals("Selection still available after touch", -1,
- mGridView.getSelectedItemPosition());
-
- View lastChild = mGridView.getChildAt(mGridView.getChildCount() - 1);
-
- assertEquals("Last item not the last child in the grid",
- mGridView.getAdapter().getCount() - 1, lastChild.getId());
-
- assertEquals("Last item not at the bottom of the grid",
- mGridView.getHeight() - mGridView.getListPaddingBottom(), lastChild.getBottom());
- }
-
- @MediumTest
- public void testPullDownFast() {
- TouchUtils.dragViewToBottom(this, mGridView.getChildAt(0), 2);
-
- // Nothing should be selected
- assertEquals("Selection still available after touch", -1,
- mGridView.getSelectedItemPosition());
-
- View lastChild = mGridView.getChildAt(mGridView.getChildCount() - 1);
-
- assertEquals("Last item not the last child in the grid",
- mGridView.getAdapter().getCount() - 1, lastChild.getId());
-
- assertEquals("Last item not at the bottom of the grid",
- mGridView.getHeight() - mGridView.getListPaddingBottom(), lastChild.getBottom());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/touch/GridTouchVerticalSpacingStackFromBottomTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/touch/GridTouchVerticalSpacingStackFromBottomTest.java
deleted file mode 100644
index 3937c43..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/touch/GridTouchVerticalSpacingStackFromBottomTest.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview.touch;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.TouchUtils;
-import android.view.Gravity;
-import android.view.View;
-import android.view.ViewConfiguration;
-import android.widget.GridView;
-
-import com.android.frameworktest.gridview.GridVerticalSpacingStackFromBottom;
-
-public class GridTouchVerticalSpacingStackFromBottomTest extends ActivityInstrumentationTestCase<GridVerticalSpacingStackFromBottom> {
- private GridVerticalSpacingStackFromBottom mActivity;
- private GridView mGridView;
-
- public GridTouchVerticalSpacingStackFromBottomTest() {
- super("com.android.frameworktest", GridVerticalSpacingStackFromBottom.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mGridView = getActivity().getGridView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mGridView);
-
- // Last item should be selected
- assertEquals(mGridView.getAdapter().getCount() - 1, mGridView.getSelectedItemPosition());
-
- }
-
- @MediumTest
- public void testNoScroll() {
- View firstChild = mGridView.getChildAt(0);
- View lastChild = mGridView.getChildAt(mGridView.getChildCount() - 1);
-
- int lastTop = lastChild.getTop();
-
- TouchUtils.dragViewBy(this, firstChild, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0,
- ViewConfiguration.getTouchSlop());
-
- View newLastChild = mGridView.getChildAt(mGridView.getChildCount() - 1);
-
- assertEquals("View scrolled too early", lastTop, newLastChild.getTop());
- assertEquals("Wrong view in last position", mGridView.getAdapter().getCount() - 1,
- newLastChild.getId());
- }
-
- @LargeTest
- public void testShortScroll() {
- View firstChild = mGridView.getChildAt(0);
- if (firstChild.getTop() < this.mGridView.getListPaddingTop()) {
- firstChild = mGridView.getChildAt(1);
- }
-
- View lastChild = mGridView.getChildAt(mGridView.getChildCount() - 1);
-
- int lastTop = lastChild.getTop();
-
- TouchUtils.dragViewBy(this, firstChild, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0,
- ViewConfiguration.getTouchSlop() + 1 + 10);
-
- View newLastChild = mGridView.getChildAt(mGridView.getChildCount() - 1);
-
- assertEquals("View scrolled to wrong position", lastTop, newLastChild.getTop() - 10);
- assertEquals("Wrong view in last position", mGridView.getAdapter().getCount() - 1,
- newLastChild.getId());
- }
-
- @LargeTest
- public void testLongScroll() {
- View firstChild = mGridView.getChildAt(0);
- if (firstChild.getTop() < mGridView.getListPaddingTop()) {
- firstChild = mGridView.getChildAt(1);
- }
-
- int firstTop = firstChild.getTop();
-
- int distance = TouchUtils.dragViewBy(this, firstChild,
- Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0,
- (int) (mActivity.getWindowManager().getDefaultDisplay().getHeight() * 0.75f));
-
- assertEquals("View scrolled to wrong position", firstTop
- + (distance - ViewConfiguration.getTouchSlop() - 1), firstChild.getTop());
- }
-
- @LargeTest
- public void testManyScrolls() {
- int originalCount = mGridView.getChildCount();
-
- View firstChild;
- int firstId = Integer.MIN_VALUE;
- int firstTop = Integer.MIN_VALUE;
- int prevId;
- int prevTop;
- do {
- prevId = firstId;
- prevTop = firstTop;
- TouchUtils.dragQuarterScreenDown(this);
- assertTrue(String.format("Too many children created: %d expected no more than %d",
- mGridView.getChildCount(), originalCount + 4),
- mGridView.getChildCount() <= originalCount + 4);
- firstChild = mGridView.getChildAt(0);
- firstId = firstChild.getId();
- firstTop = firstChild.getTop();
- } while ((prevId != firstId) || (prevTop != firstTop));
-
-
- firstChild = mGridView.getChildAt(0);
- assertEquals("View scrolled to wrong position", 0, firstChild.getId());
-
- firstId = Integer.MIN_VALUE;
- firstTop = Integer.MIN_VALUE;
- do {
- prevId = firstId;
- prevTop = firstTop;
- TouchUtils.dragQuarterScreenUp(this);
- assertTrue(String.format("Too many children created: %d expected no more than %d",
- mGridView.getChildCount(), originalCount + 4),
- mGridView.getChildCount() <= originalCount + 4);
- firstChild = mGridView.getChildAt(0);
- firstId = firstChild.getId();
- firstTop = firstChild.getTop();
- } while ((prevId != firstId) || (prevTop != firstTop));
-
- View lastChild = mGridView.getChildAt(mGridView.getChildCount() - 1);
- assertEquals("Grid is not scrolled to the bottom", mGridView.getAdapter().getCount() - 1,
- lastChild.getId());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/touch/GridTouchVerticalSpacingTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/touch/GridTouchVerticalSpacingTest.java
deleted file mode 100644
index 0b39909..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/gridview/touch/GridTouchVerticalSpacingTest.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.gridview.touch;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.TouchUtils;
-import android.view.Gravity;
-import android.view.View;
-import android.view.ViewConfiguration;
-import android.widget.GridView;
-
-import com.android.frameworktest.gridview.GridVerticalSpacing;
-
-public class GridTouchVerticalSpacingTest extends ActivityInstrumentationTestCase<GridVerticalSpacing> {
- private GridVerticalSpacing mActivity;
- private GridView mGridView;
-
- public GridTouchVerticalSpacingTest() {
- super("com.android.frameworktest", GridVerticalSpacing.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mGridView = getActivity().getGridView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mGridView);
-
- assertEquals(0, mGridView.getSelectedItemPosition());
- }
-
- @MediumTest
- public void testNoScroll() {
- View firstChild = mGridView.getChildAt(0);
- View lastChild = mGridView.getChildAt(mGridView.getChildCount() - 1);
-
- int firstTop = firstChild.getTop();
-
- TouchUtils.dragViewBy(this, lastChild, Gravity.TOP | Gravity.LEFT,
- 0, -(ViewConfiguration.getTouchSlop()));
-
- View newFirstChild = mGridView.getChildAt(0);
-
- assertEquals("View scrolled too early", firstTop, newFirstChild.getTop());
- assertEquals("Wrong view in first position", 0, newFirstChild.getId());
- }
-
- @LargeTest
- public void testShortScroll() {
- View firstChild = mGridView.getChildAt(0);
- View lastChild = mGridView.getChildAt(mGridView.getChildCount() - 1);
-
- int firstTop = firstChild.getTop();
-
- TouchUtils.dragViewBy(this, lastChild, Gravity.TOP | Gravity.LEFT,
- 0, -(ViewConfiguration.getTouchSlop() + 1 + 10));
-
- View newFirstChild = mGridView.getChildAt(0);
-
- assertEquals("View scrolled to wrong position", firstTop, newFirstChild.getTop() + 10);
- assertEquals("Wrong view in first position", 0, newFirstChild.getId());
- }
-
- @LargeTest
- public void testLongScroll() {
- View lastChild = mGridView.getChildAt(mGridView.getChildCount() - 1);
-
- int lastTop = lastChild.getTop();
-
- int distance = TouchUtils.dragViewToY(this, lastChild, Gravity.TOP | Gravity.LEFT,
- mGridView.getTop());
-
- assertEquals("View scrolled to wrong position",
- lastTop - (distance - ViewConfiguration.getTouchSlop() - 1), lastChild.getTop());
- }
-
- @LargeTest
- public void testManyScrolls() {
- int originalCount = mGridView.getChildCount();
-
- View firstChild;
- int firstId = Integer.MIN_VALUE;
- int firstTop = Integer.MIN_VALUE;
- int prevId;
- int prevTop;
- do {
- prevId = firstId;
- prevTop = firstTop;
- TouchUtils.dragQuarterScreenUp(this);
- assertTrue(String.format("Too many children created: %d expected no more than %d",
- mGridView.getChildCount(), originalCount + 4),
- mGridView.getChildCount() <= originalCount + 4);
- firstChild = mGridView.getChildAt(0);
- firstId = firstChild.getId();
- firstTop = firstChild.getTop();
- } while ((prevId != firstId) || (prevTop != firstTop));
-
-
- View lastChild = mGridView.getChildAt(mGridView.getChildCount() - 1);
- assertEquals("Grid is not scrolled to the bottom", mGridView.getAdapter().getCount() - 1,
- lastChild.getId());
-
- firstId = Integer.MIN_VALUE;
- firstTop = Integer.MIN_VALUE;
- do {
- prevId = firstId;
- prevTop = firstTop;
- TouchUtils.dragQuarterScreenDown(this);
- assertTrue(String.format("Too many children created: %d expected no more than %d",
- mGridView.getChildCount(), originalCount + 4),
- mGridView.getChildCount() <= originalCount + 4);
- firstChild = mGridView.getChildAt(0);
- firstId = firstChild.getId();
- firstTop = firstChild.getTop();
- } while ((prevId != firstId) || (prevTop != firstTop));
-
- firstChild = mGridView.getChildAt(0);
- assertEquals("Grid is not scrolled to the top", 0, firstChild.getId());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/frame/FrameLayoutGravityTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/frame/FrameLayoutGravityTest.java
deleted file mode 100644
index 239bd7d..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/frame/FrameLayoutGravityTest.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.frame;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.ViewAsserts;
-import android.app.Activity;
-import android.view.View;
-import com.android.frameworktest.layout.frame.FrameLayoutGravity;
-import com.android.frameworktest.R;
-
-public class FrameLayoutGravityTest extends ActivityInstrumentationTestCase<FrameLayoutGravity> {
- private View mLeftView;
- private View mRightView;
- private View mCenterHorizontalView;
- private View mLeftCenterVerticalView;
- private View mRighCenterVerticalView;
- private View mCenterView;
- private View mLeftBottomView;
- private View mRightBottomView;
- private View mCenterHorizontalBottomView;
- private View mParent;
-
- public FrameLayoutGravityTest() {
- super("com.android.frameworktest", FrameLayoutGravity.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- final Activity activity = getActivity();
-
- mParent = activity.findViewById(R.id.parent);
-
- mLeftView = activity.findViewById(R.id.left);
- mRightView = activity.findViewById(R.id.right);
- mCenterHorizontalView = activity.findViewById(R.id.center_horizontal);
-
- mLeftCenterVerticalView = activity.findViewById(R.id.left_center_vertical);
- mRighCenterVerticalView = activity.findViewById(R.id.right_center_vertical);
- mCenterView = activity.findViewById(R.id.center);
-
- mLeftBottomView = activity.findViewById(R.id.left_bottom);
- mRightBottomView = activity.findViewById(R.id.right_bottom);
- mCenterHorizontalBottomView = activity.findViewById(R.id.center_horizontal_bottom);
- }
-
- @MediumTest
- public void testSetUpConditions() throws Exception {
- assertNotNull(mParent);
- assertNotNull(mLeftView);
- assertNotNull(mRightView);
- assertNotNull(mCenterHorizontalView);
- assertNotNull(mLeftCenterVerticalView);
- assertNotNull(mRighCenterVerticalView);
- assertNotNull(mCenterView);
- assertNotNull(mLeftBottomView);
- assertNotNull(mRightBottomView);
- assertNotNull(mCenterHorizontalBottomView);
- }
-
- @MediumTest
- public void testLeftTopAligned() throws Exception {
- ViewAsserts.assertLeftAligned(mParent, mLeftView);
- ViewAsserts.assertTopAligned(mParent, mLeftView);
- }
-
- @MediumTest
- public void testRightTopAligned() throws Exception {
- ViewAsserts.assertRightAligned(mParent, mRightView);
- ViewAsserts.assertTopAligned(mParent, mRightView);
- }
-
- @MediumTest
- public void testCenterHorizontalTopAligned() throws Exception {
- ViewAsserts.assertHorizontalCenterAligned(mParent, mCenterHorizontalView);
- ViewAsserts.assertTopAligned(mParent, mCenterHorizontalView);
- }
-
- @MediumTest
- public void testLeftCenterVerticalAligned() throws Exception {
- ViewAsserts.assertLeftAligned(mParent, mLeftCenterVerticalView);
- ViewAsserts.assertVerticalCenterAligned(mParent, mLeftCenterVerticalView);
- }
-
- @MediumTest
- public void testRightCenterVerticalAligned() throws Exception {
- ViewAsserts.assertRightAligned(mParent, mRighCenterVerticalView);
- ViewAsserts.assertVerticalCenterAligned(mParent, mRighCenterVerticalView);
- }
-
- @MediumTest
- public void testCenterAligned() throws Exception {
- ViewAsserts.assertHorizontalCenterAligned(mParent, mCenterView);
- ViewAsserts.assertVerticalCenterAligned(mParent, mCenterView);
- }
-
- @MediumTest
- public void testLeftBottomAligned() throws Exception {
- ViewAsserts.assertLeftAligned(mParent, mLeftBottomView);
- ViewAsserts.assertBottomAligned(mParent, mLeftBottomView);
- }
-
- @MediumTest
- public void testRightBottomAligned() throws Exception {
- ViewAsserts.assertRightAligned(mParent, mRightBottomView);
- ViewAsserts.assertBottomAligned(mParent, mRightBottomView);
- }
-
- @MediumTest
- public void testCenterHorizontalBottomAligned() throws Exception {
- ViewAsserts.assertHorizontalCenterAligned(mParent, mCenterHorizontalBottomView);
- ViewAsserts.assertBottomAligned(mParent, mCenterHorizontalBottomView);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/frame/FrameLayoutMarginTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/frame/FrameLayoutMarginTest.java
deleted file mode 100644
index 4df4805..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/frame/FrameLayoutMarginTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.frame;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.ViewAsserts;
-import android.app.Activity;
-import android.view.View;
-import android.view.ViewGroup;
-import com.android.frameworktest.layout.frame.FrameLayoutMargin;
-import com.android.frameworktest.R;
-
-public class FrameLayoutMarginTest extends ActivityInstrumentationTestCase<FrameLayoutMargin> {
- private View mLeftView;
- private View mRightView;
- private View mTopView;
- private View mBottomView;
- private View mParent;
-
- public FrameLayoutMarginTest() {
- super("com.android.frameworktest", FrameLayoutMargin.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- final Activity activity = getActivity();
-
- mParent = activity.findViewById(R.id.parent);
-
- mLeftView = activity.findViewById(R.id.left);
- mRightView = activity.findViewById(R.id.right);
- mTopView = activity.findViewById(R.id.top);
- mBottomView = activity.findViewById(R.id.bottom);
- }
-
- @MediumTest
- public void testSetUpConditions() throws Exception {
- assertNotNull(mParent);
- assertNotNull(mLeftView);
- assertNotNull(mRightView);
- assertNotNull(mTopView);
- assertNotNull(mBottomView);
- }
-
- @MediumTest
- public void testLeftMarginAligned() throws Exception {
- ViewAsserts.assertLeftAligned(mParent, mLeftView,
- ((ViewGroup.MarginLayoutParams) mLeftView.getLayoutParams()).leftMargin);
- }
-
- @MediumTest
- public void testRightMarginAligned() throws Exception {
- ViewAsserts.assertRightAligned(mParent, mRightView,
- ((ViewGroup.MarginLayoutParams) mRightView.getLayoutParams()).rightMargin);
- }
-
- @MediumTest
- public void testTopMarginAligned() throws Exception {
- ViewAsserts.assertTopAligned(mParent, mTopView,
- ((ViewGroup.MarginLayoutParams) mTopView.getLayoutParams()).topMargin);
- }
-
- @MediumTest
- public void testBottomMarginAligned() throws Exception {
- ViewAsserts.assertBottomAligned(mParent, mBottomView,
- ((ViewGroup.MarginLayoutParams) mBottomView.getLayoutParams()).bottomMargin);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/BaselineAlignmentCenterGravityTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/BaselineAlignmentCenterGravityTest.java
deleted file mode 100644
index 0b6360e..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/BaselineAlignmentCenterGravityTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.linear;
-
-import android.app.Activity;
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.ViewAsserts;
-import android.view.View;
-import android.widget.Button;
-
-import com.android.frameworktest.R;
-import com.android.frameworktest.layout.linear.BaselineAlignmentCenterGravity;
-
-public class BaselineAlignmentCenterGravityTest extends ActivityInstrumentationTestCase<BaselineAlignmentCenterGravity> {
- private Button mButton1;
- private Button mButton2;
- private Button mButton3;
-
- public BaselineAlignmentCenterGravityTest() {
- super("com.android.frameworktest", BaselineAlignmentCenterGravity.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- final Activity activity = getActivity();
- mButton1 = (Button) activity.findViewById(R.id.button1);
- mButton2 = (Button) activity.findViewById(R.id.button2);
- mButton3 = (Button) activity.findViewById(R.id.button3);
- }
-
- @MediumTest
- public void testSetUpConditions() throws Exception {
- assertNotNull(mButton1);
- assertNotNull(mButton2);
- assertNotNull(mButton3);
- }
-
- @MediumTest
- public void testChildrenAligned() throws Exception {
- final View parent = (View) mButton1.getParent();
- ViewAsserts.assertTopAligned(mButton1, parent);
- ViewAsserts.assertTopAligned(mButton2, parent);
- ViewAsserts.assertTopAligned(mButton3, parent);
- ViewAsserts.assertBottomAligned(mButton1, parent);
- ViewAsserts.assertBottomAligned(mButton2, parent);
- ViewAsserts.assertBottomAligned(mButton3, parent);
- ViewAsserts.assertTopAligned(mButton1, mButton2);
- ViewAsserts.assertTopAligned(mButton2, mButton3);
- ViewAsserts.assertBottomAligned(mButton1, mButton2);
- ViewAsserts.assertBottomAligned(mButton2, mButton3);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/BaselineAlignmentSpinnerButton.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/BaselineAlignmentSpinnerButton.java
deleted file mode 100644
index 050e053..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/BaselineAlignmentSpinnerButton.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.linear;
-
-import android.app.Activity;
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.ViewAsserts;
-import android.view.View;
-
-import com.android.frameworktest.R;
-import com.android.frameworktest.layout.linear.HorizontalOrientationVerticalAlignment;
-
-public class BaselineAlignmentSpinnerButton extends ActivityInstrumentationTestCase<HorizontalOrientationVerticalAlignment> {
- private View mSpinner;
- private View mButton;
-
- public BaselineAlignmentSpinnerButton() {
- super("com.android.frameworktest", HorizontalOrientationVerticalAlignment.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- final Activity activity = getActivity();
- mSpinner = activity.findViewById(R.id.reminder_value);
- mButton = activity.findViewById(R.id.reminder_remove);
- }
-
- @MediumTest
- public void testSetUpConditions() throws Exception {
- assertNotNull(mSpinner);
- assertNotNull(mButton);
- }
-
- @MediumTest
- public void testChildrenAligned() throws Exception {
- ViewAsserts.assertBaselineAligned(mSpinner, mButton);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/BaselineAlignmentZeroWidthAndWeightTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/BaselineAlignmentZeroWidthAndWeightTest.java
deleted file mode 100644
index a315d81..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/BaselineAlignmentZeroWidthAndWeightTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.linear;
-
-import com.android.frameworktest.R;
-import com.android.frameworktest.layout.linear.BaselineAlignmentZeroWidthAndWeight;
-import com.android.frameworktest.layout.linear.ExceptionTextView;
-
-import android.app.Activity;
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.widget.Button;
-
-public class BaselineAlignmentZeroWidthAndWeightTest extends ActivityInstrumentationTestCase<BaselineAlignmentZeroWidthAndWeight> {
- private Button mShowButton;
-
- public BaselineAlignmentZeroWidthAndWeightTest() {
- super("com.android.frameworktest", BaselineAlignmentZeroWidthAndWeight.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- final Activity activity = getActivity();
- mShowButton = (Button) activity.findViewById(R.id.show);
- }
-
- @MediumTest
- public void testSetUpConditions() throws Exception {
- assertNotNull(mShowButton);
- }
-
- @MediumTest
- public void testComputeTexViewWithoutIllegalArgumentException() throws Exception {
- assertTrue(mShowButton.hasFocus());
-
- // Pressing the button will show an ExceptionTextView that might set a failed bit if
- // the test fails.
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
- getInstrumentation().waitForIdleSync();
-
- final ExceptionTextView etv = (ExceptionTextView) getActivity()
- .findViewById(R.id.routeToField);
- assertFalse("exception test view should not fail", etv.isFailed());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/BaselineButtonsTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/BaselineButtonsTest.java
deleted file mode 100644
index 9f2e138..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/BaselineButtonsTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.linear;
-
-import android.app.Activity;
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.View;
-import android.widget.ImageButton;
-
-import com.android.frameworktest.R;
-import com.android.frameworktest.layout.linear.BaselineButtons;
-
-public class BaselineButtonsTest extends ActivityInstrumentationTestCase<BaselineButtons> {
- private View mCurrentTime;
- private View mTotalTime;
- private ImageButton mPrev;
- private ImageButton mNext;
- private ImageButton mPause;
- private View mLayout;
-
- public BaselineButtonsTest() {
- super("com.android.frameworktest", BaselineButtons.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- final Activity activity = getActivity();
- mCurrentTime = activity.findViewById(R.id.currenttime);
- mTotalTime = activity.findViewById(R.id.totaltime);
- mPrev = (ImageButton) activity.findViewById(R.id.prev);
- mNext = (ImageButton) activity.findViewById(R.id.next);
- mPause = (ImageButton) activity.findViewById(R.id.pause);
- mLayout = activity.findViewById(R.id.layout);
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mCurrentTime);
- assertNotNull(mTotalTime);
- assertNotNull(mPrev);
- assertNotNull(mNext);
- assertNotNull(mPause);
- assertNotNull(mLayout);
- }
-
- @MediumTest
- public void testLayout() {
- int pauseHeight = Math.max(mPause.getDrawable().getIntrinsicHeight()
- + mPause.getPaddingTop() + mPause.getPaddingBottom(),
- mPause.getBackground().getMinimumHeight());
- int prevHeight = Math.max(mPrev.getDrawable().getIntrinsicHeight() + mPrev.getPaddingTop()
- + mPrev.getPaddingBottom(),
- mPrev.getBackground().getMinimumHeight());
- int nextHeight = Math.max(mNext.getDrawable().getIntrinsicHeight() + mNext.getPaddingTop()
- + mNext.getPaddingBottom(),
- mNext.getBackground().getMinimumHeight());
- assertEquals("Layout incorrect height", pauseHeight, mLayout.getHeight());
- assertEquals("Pause incorrect height", pauseHeight, mPause.getHeight());
- assertEquals("Prev incorrect height", prevHeight, mPrev.getHeight());
- assertEquals("Next incorrect height", nextHeight, mNext.getHeight());
- assertEquals("Pause wrong top", 0, mPause.getTop());
- assertEquals("Prev wrong top", (pauseHeight - prevHeight) / 2, mPrev.getTop());
- assertEquals("Next wrong top", (pauseHeight - nextHeight) / 2, mNext.getTop());
- assertEquals("CurrentTime wrong bottom", pauseHeight, mCurrentTime.getBottom());
- assertEquals("TotalTime wrong bottom", pauseHeight, mTotalTime.getBottom());
- assertTrue("CurrentTime too tall", mCurrentTime.getTop() > 0);
- assertTrue("TotalTime too tall", mTotalTime.getTop() > 0);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/FillInWrapTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/FillInWrapTest.java
deleted file mode 100644
index 0e7a4a0..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/FillInWrapTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.linear;
-
-import android.app.Activity;
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.View;
-
-import com.android.frameworktest.R;
-
-public class FillInWrapTest extends ActivityInstrumentationTestCase<FillInWrap> {
- private View mChild;
- private View mContainer;
-
- public FillInWrapTest() {
- super("com.android.frameworktest", FillInWrap.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- final Activity activity = getActivity();
- mChild = activity.findViewById(R.id.data);
- mContainer = activity.findViewById(R.id.layout);
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mChild);
- assertNotNull(mContainer);
- }
-
- @MediumTest
- public void testLayout() {
- assertTrue("the child's height should be less than the parent's",
- mChild.getMeasuredHeight() < mContainer.getMeasuredHeight());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/LinearLayoutEditTextsTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/LinearLayoutEditTextsTest.java
deleted file mode 100644
index 9dde62c..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/LinearLayoutEditTextsTest.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.linear;
-
-import com.android.frameworktest.layout.linear.LinearLayoutEditTexts;
-import com.android.frameworktest.R;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.View;
-import android.app.Activity;
-
-public class LinearLayoutEditTextsTest extends ActivityInstrumentationTestCase<LinearLayoutEditTexts> {
- private View mChild;
- private View mContainer;
-
- public LinearLayoutEditTextsTest() {
- super("com.android.frameworktest", LinearLayoutEditTexts.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- final Activity activity = getActivity();
- mChild = activity.findViewById(R.id.editText1);
- mContainer = activity.findViewById(R.id.layout);
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mChild);
- assertNotNull(mContainer);
- }
-
- @MediumTest
- public void testLayout() {
- final int childHeight = mChild.getHeight();
- final int containerHeight = mContainer.getHeight();
-
- assertEquals(containerHeight, childHeight);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/WeightSumTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/WeightSumTest.java
deleted file mode 100644
index a51743b..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/WeightSumTest.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.linear;
-
-import android.app.Activity;
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.View;
-
-import com.android.frameworktest.R;
-import com.android.frameworktest.layout.linear.WeightSum;
-
-public class WeightSumTest extends ActivityInstrumentationTestCase<WeightSum> {
- private View mChild;
- private View mContainer;
-
- public WeightSumTest() {
- super("com.android.frameworktest", WeightSum.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- final Activity activity = getActivity();
- mChild = activity.findViewById(R.id.child);
- mContainer = activity.findViewById(R.id.container);
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mChild);
- assertNotNull(mContainer);
- }
-
- @MediumTest
- public void testLayout() {
- final int childWidth = mChild.getWidth();
- final int containerWidth = mContainer.getWidth();
-
- assertEquals(containerWidth / 2, childWidth);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/WeightTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/WeightTest.java
deleted file mode 100644
index f7fec78..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/linear/WeightTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.linear;
-
-import android.app.Activity;
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.ViewAsserts;
-import android.view.View;
-
-import com.android.frameworktest.R;
-import com.android.frameworktest.layout.linear.Weight;
-
-public class WeightTest extends ActivityInstrumentationTestCase<Weight> {
- private View mChild;
- private View mContainer;
-
- public WeightTest() {
- super("com.android.frameworktest", Weight.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- final Activity activity = getActivity();
- mChild = activity.findViewById(R.id.child4);
- mContainer = activity.findViewById(R.id.layout);
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mChild);
- assertNotNull(mContainer);
- }
-
- @MediumTest
- public void testLayout() {
- ViewAsserts.assertRightAligned(mChild, mContainer);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/AddColumnTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/AddColumnTest.java
deleted file mode 100644
index 9d713c8..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/AddColumnTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.table;
-
-import com.android.frameworktest.layout.table.AddColumn;
-import com.android.frameworktest.R;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.widget.Button;
-import android.widget.TableLayout;
-import android.widget.TableRow;
-
-/**
- * {@link com.android.frameworktest.layout.table.AddColumn} is
- * setup to exercise the case of adding row programmatically in a table.
- */
-public class AddColumnTest extends ActivityInstrumentationTestCase<AddColumn> {
- private Button mAddRow;
- private TableLayout mTable;
-
- public AddColumnTest() {
- super("com.android.frameworktest", AddColumn.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- final AddColumn activity = getActivity();
- mAddRow = (Button) activity.findViewById(R.id.add_row_button);
- mTable = (TableLayout) activity.findViewById(R.id.table);
- }
-
- @MediumTest
- public void testSetUpConditions() throws Exception {
- assertNotNull(mAddRow);
- assertNotNull(mTable);
- assertTrue(mAddRow.hasFocus());
- }
-
- @MediumTest
- public void testWidths() throws Exception {
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
- getInstrumentation().waitForIdleSync();
-
- TableRow row1 = (TableRow) mTable.getChildAt(0);
- TableRow row2 = (TableRow) mTable.getChildAt(1);
-
- assertTrue(row1.getChildCount() < row2.getChildCount());
-
- for (int i = 0; i < row1.getChildCount(); i++) {
- assertEquals(row2.getChildAt(i).getWidth(), row1.getChildAt(i).getWidth());
- }
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/CellSpanTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/CellSpanTest.java
deleted file mode 100644
index 85f9c2c..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/CellSpanTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.table;
-
-import com.android.frameworktest.layout.table.CellSpan;
-import com.android.frameworktest.R;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.View;
-
-/**
- * {@link com.android.frameworktest.layout.table.CellSpan} is
- * setup to exercise tables in which cells use spanning.
- */
-public class CellSpanTest extends ActivityInstrumentationTestCase<CellSpan> {
- private View mA;
- private View mB;
- private View mC;
- private View mSpanThenCell;
- private View mCellThenSpan;
- private View mSpan;
-
- public CellSpanTest() {
- super("com.android.frameworktest", CellSpan.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- final CellSpan activity = getActivity();
- mA = activity.findViewById(R.id.a);
- mB = activity.findViewById(R.id.b);
- mC = activity.findViewById(R.id.c);
- mSpanThenCell = activity.findViewById(R.id.spanThenCell);
- mCellThenSpan = activity.findViewById(R.id.cellThenSpan);
- mSpan = activity.findViewById(R.id.span);
- }
-
- @MediumTest
- public void testSetUpConditions() throws Exception {
- assertNotNull(mA);
- assertNotNull(mB);
- assertNotNull(mC);
- assertNotNull(mSpanThenCell);
- assertNotNull(mCellThenSpan);
- assertNotNull(mSpan);
- }
-
- @MediumTest
- public void testSpanThenCell() throws Exception {
- int spanWidth = mA.getMeasuredWidth() + mB.getMeasuredWidth();
- assertEquals("span followed by cell is broken", spanWidth,
- mSpanThenCell.getMeasuredWidth());
- }
-
- @MediumTest
- public void testCellThenSpan() throws Exception {
- int spanWidth = mB.getMeasuredWidth() + mC.getMeasuredWidth();
- assertEquals("cell followed by span is broken", spanWidth,
- mCellThenSpan.getMeasuredWidth());
- }
-
- @MediumTest
- public void testSpan() throws Exception {
- int spanWidth = mA.getMeasuredWidth() + mB.getMeasuredWidth() +
- mC.getMeasuredWidth();
- assertEquals("span is broken", spanWidth, mSpan.getMeasuredWidth());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/FixedWidthTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/FixedWidthTest.java
deleted file mode 100644
index a54d503..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/FixedWidthTest.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.table;
-
-import com.android.frameworktest.layout.table.FixedWidth;
-import com.android.frameworktest.R;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.View;
-
-/**
- * {@link com.android.frameworktest.layout.table.FixedWidth} is
- * setup to exercise tables in which cells use fixed width and height.
- */
-public class FixedWidthTest extends ActivityInstrumentationTestCase<FixedWidth> {
- private View mFixedWidth;
- private View mFixedHeight;
- private View mNonFixedWidth;
-
- public FixedWidthTest() {
- super("com.android.frameworktest", FixedWidth.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- final FixedWidth activity = getActivity();
- mFixedWidth = activity.findViewById(R.id.fixed_width);
- mNonFixedWidth = activity.findViewById(R.id.non_fixed_width);
- mFixedHeight = activity.findViewById(R.id.fixed_height);
- }
-
- @MediumTest
- public void testSetUpConditions() throws Exception {
- assertNotNull(mFixedWidth);
- assertNotNull(mFixedHeight);
- assertNotNull(mNonFixedWidth);
- }
-
- @MediumTest
- public void testFixedWidth() throws Exception {
- assertEquals(150, mFixedWidth.getWidth());
- assertEquals(mFixedWidth.getWidth(), mNonFixedWidth.getWidth());
- }
-
- @MediumTest
- public void testFixedHeight() throws Exception {
- assertEquals(48, mFixedHeight.getHeight());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/HorizontalGravityTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/HorizontalGravityTest.java
deleted file mode 100644
index 1355cb3..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/HorizontalGravityTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.table;
-
-import com.android.frameworktest.layout.table.HorizontalGravity;
-import com.android.frameworktest.R;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.ViewAsserts;
-import android.view.View;
-
-/**
- * {@link com.android.frameworktest.layout.table.HorizontalGravity} is
- * setup to exercise tables in which cells use horizontal gravity.
- */
-public class HorizontalGravityTest extends ActivityInstrumentationTestCase<HorizontalGravity> {
- private View mReference;
- private View mCenter;
- private View mBottomRight;
- private View mLeft;
-
- public HorizontalGravityTest() {
- super("com.android.frameworktest", HorizontalGravity.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- final HorizontalGravity activity = getActivity();
- mReference = activity.findViewById(R.id.reference);
- mCenter = activity.findViewById(R.id.center);
- mBottomRight = activity.findViewById(R.id.bottomRight);
- mLeft = activity.findViewById(R.id.left);
- }
-
- @MediumTest
- public void testSetUpConditions() throws Exception {
- assertNotNull(mReference);
- assertNotNull(mCenter);
- assertNotNull(mBottomRight);
- assertNotNull(mLeft);
- }
-
- @MediumTest
- public void testCenterGravity() throws Exception {
- ViewAsserts.assertHorizontalCenterAligned(mReference, mCenter);
- }
-
- @MediumTest
- public void testLeftGravity() throws Exception {
- ViewAsserts.assertLeftAligned(mReference, mLeft);
- }
-
- @MediumTest
- public void testRightGravity() throws Exception {
- ViewAsserts.assertRightAligned(mReference, mBottomRight);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/VerticalGravityTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/VerticalGravityTest.java
deleted file mode 100644
index de3e68b..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/VerticalGravityTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.table;
-
-import com.android.frameworktest.layout.table.VerticalGravity;
-import com.android.frameworktest.R;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.ViewAsserts;
-import android.view.View;
-
-/**
- * {@link com.android.frameworktest.layout.table.VerticalGravity} is
- * setup to exercise tables in which cells use vertical gravity.
- */
-public class VerticalGravityTest extends ActivityInstrumentationTestCase<VerticalGravity> {
- private View mReference1;
- private View mReference2;
- private View mReference3;
- private View mTop;
- private View mCenter;
- private View mBottom;
-
- public VerticalGravityTest() {
- super("com.android.frameworktest", VerticalGravity.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- final VerticalGravity activity = getActivity();
- mReference1 = activity.findViewById(R.id.reference1);
- mReference2 = activity.findViewById(R.id.reference2);
- mReference3 = activity.findViewById(R.id.reference3);
- mTop = activity.findViewById(R.id.cell_top);
- mCenter = activity.findViewById(R.id.cell_center);
- mBottom = activity.findViewById(R.id.cell_bottom);
- }
-
- @MediumTest
- public void testSetUpConditions() throws Exception {
- assertNotNull(mReference1);
- assertNotNull(mReference2);
- assertNotNull(mReference3);
- assertNotNull(mTop);
- assertNotNull(mCenter);
- assertNotNull(mBottom);
- }
-
- @MediumTest
- public void testTopGravity() throws Exception {
- ViewAsserts.assertTopAligned(mReference1, mTop);
- }
-
- @MediumTest
- public void testCenterGravity() throws Exception {
- ViewAsserts.assertVerticalCenterAligned(mReference2, mCenter);
- }
-
- @MediumTest
- public void testBottomGravity() throws Exception {
- ViewAsserts.assertBottomAligned(mReference3, mBottom);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/WeightTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/WeightTest.java
deleted file mode 100644
index 9e20686..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/layout/table/WeightTest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.layout.table;
-
-import com.android.frameworktest.layout.table.Weight;
-import com.android.frameworktest.R;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.View;
-
-/**
- * {@link com.android.frameworktest.layout.table.Weight} is
- * setup to exercise tables in which cells use a weight.
- */
-public class WeightTest extends ActivityInstrumentationTestCase<Weight> {
- private View mCell1;
- private View mCell2;
- private View mCell3;
- private View mRow;
-
- public WeightTest() {
- super("com.android.frameworktest", Weight.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- final Weight activity = getActivity();
- mCell1 = activity.findViewById(R.id.cell1);
- mCell3 = activity.findViewById(R.id.cell2);
- mCell2 = activity.findViewById(R.id.cell3);
- mRow = activity.findViewById(R.id.row);
- }
-
- @MediumTest
- public void testSetUpConditions() throws Exception {
- assertNotNull(mCell1);
- assertNotNull(mCell2);
- assertNotNull(mCell3);
- assertNotNull(mRow);
- }
-
- @MediumTest
- public void testAllCellsFillParent() throws Exception {
- assertEquals(mCell1.getWidth() + mCell2.getWidth() + mCell3.getWidth(), mRow.getWidth());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListBottomGravityManyTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListBottomGravityManyTest.java
deleted file mode 100644
index d36e343..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListBottomGravityManyTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.ListView;
-
-import com.android.frameworktest.listview.ListBottomGravityMany;
-
-public class ListBottomGravityManyTest extends ActivityInstrumentationTestCase<ListBottomGravityMany> {
- private ListBottomGravityMany mActivity;
- private ListView mListView;
-
- public ListBottomGravityManyTest() {
- super("com.android.frameworktest", ListBottomGravityMany.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mListView);
-
- // Last item should be selected
- assertEquals(mListView.getAdapter().getCount() - 1, mListView.getSelectedItemPosition());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListBottomGravityTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListBottomGravityTest.java
deleted file mode 100644
index 79556cf..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListBottomGravityTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.ListView;
-
-import com.android.frameworktest.listview.ListBottomGravity;
-
-public class ListBottomGravityTest extends ActivityInstrumentationTestCase<ListBottomGravity> {
- private ListBottomGravity mActivity;
- private ListView mListView;
-
- public ListBottomGravityTest() {
- super("com.android.frameworktest", ListBottomGravity.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mListView);
-
- // Last item should be selected
- assertEquals(mListView.getAdapter().getCount() - 1, mListView.getSelectedItemPosition());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListEmptyViewTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListEmptyViewTest.java
deleted file mode 100644
index ca12154..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListEmptyViewTest.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.app.Instrumentation;
-import android.content.Intent;
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.view.View;
-import android.widget.ListView;
-
-public class ListEmptyViewTest extends ActivityInstrumentationTestCase<ListWithEmptyView> {
- private ListWithEmptyView mActivity;
- private ListView mListView;
-
-
- public ListEmptyViewTest() {
- super("com.android.frameworktest", ListWithEmptyView.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mListView);
-
- assertTrue("Empty view not shown", mListView.getVisibility() == View.GONE);
- }
-
- @MediumTest
- public void testZeroToOne() {
- Instrumentation inst = getInstrumentation();
-
- inst.invokeMenuActionSync(mActivity, mActivity.MENU_ADD, 0);
- inst.waitForIdleSync();
- assertTrue("Empty view still shown", mActivity.getEmptyView().getVisibility() == View.GONE);
- assertTrue("List not shown", mActivity.getListView().getVisibility() == View.VISIBLE);
- }
-
- @MediumTest
- public void testZeroToOneForwardBack() {
- Instrumentation inst = getInstrumentation();
-
- inst.invokeMenuActionSync(mActivity, mActivity.MENU_ADD, 0);
- inst.waitForIdleSync();
- assertTrue("Empty view still shown", mActivity.getEmptyView().getVisibility() == View.GONE);
- assertTrue("List not shown", mActivity.getListView().getVisibility() == View.VISIBLE);
-
- // Navigate forward
- Intent intent = new Intent();
- intent.setClass(mActivity, ListWithEmptyView.class);
- mActivity.startActivity(intent);
-
- // Navigate backward
- inst.sendCharacterSync(KeyEvent.KEYCODE_BACK);
- inst.waitForIdleSync();
- assertTrue("Empty view still shown", mActivity.getEmptyView().getVisibility() == View.GONE);
- assertTrue("List not shown", mActivity.getListView().getVisibility() == View.VISIBLE);
-
- }
-
- @LargeTest
- public void testZeroToManyToZero() {
- Instrumentation inst = getInstrumentation();
-
- int i;
-
- for (i = 0; i < 10; i++) {
- inst.invokeMenuActionSync(mActivity, mActivity.MENU_ADD, 0);
- inst.waitForIdleSync();
- assertTrue("Empty view still shown",
- mActivity.getEmptyView().getVisibility() == View.GONE);
- assertTrue("List not shown", mActivity.getListView().getVisibility() == View.VISIBLE);
- }
-
- for (i = 0; i < 10; i++) {
- inst.invokeMenuActionSync(mActivity, mActivity.MENU_REMOVE, 0);
- inst.waitForIdleSync();
- if (i < 9) {
- assertTrue("Empty view still shown",
- mActivity.getEmptyView().getVisibility() == View.GONE);
- assertTrue("List not shown",
- mActivity.getListView().getVisibility() == View.VISIBLE);
- } else {
- assertTrue("Empty view not shown",
- mActivity.getEmptyView().getVisibility() == View.VISIBLE);
- assertTrue("List still shown",
- mActivity.getListView().getVisibility() == View.GONE);
- }
- }
-
- // Navigate forward
- Intent intent = new Intent();
- intent.setClass(mActivity, ListWithEmptyView.class);
- mActivity.startActivity(intent);
-
- // Navigate backward
- inst.sendCharacterSync(KeyEvent.KEYCODE_BACK);
- inst.waitForIdleSync();
- assertTrue("Empty view not shown", mActivity.getEmptyView().getVisibility() == View.VISIBLE);
- assertTrue("List still shown", mActivity.getListView().getVisibility() == View.GONE);
- }
-
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListFocusableTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListFocusableTest.java
deleted file mode 100644
index 1bb1f1c..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListFocusableTest.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.ListView;
-import android.widget.ListAdapter;
-import android.widget.ArrayAdapter;
-
-public class ListFocusableTest extends ActivityInstrumentationTestCase<ListTopGravity> {
- private ListTopGravity mActivity;
- private ListView mListView;
-
- public ListFocusableTest() {
- super("com.android.frameworktest", ListTopGravity.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mListView);
-
- // First item should be selected
- assertEquals(0, mListView.getSelectedItemPosition());
- }
-
- @MediumTest
- public void testAdapterFull() {
- setFullAdapter();
- assertTrue(mListView.isFocusable());
- }
-
- @MediumTest
- public void testAdapterEmpty() {
- setEmptyAdapter();
- assertFalse(mListView.isFocusable());
- }
-
- @MediumTest
- public void testAdapterNull() {
- setNullAdapter();
- assertFalse(mListView.isFocusable());
- }
-
- @MediumTest
- public void testAdapterFullSetFocusable() {
- assertTrue(mListView.isFocusable());
-
- setFocusable();
- assertTrue(mListView.isFocusable());
- }
-
- @MediumTest
- public void testAdapterFullSetNonFocusable() {
- assertTrue(mListView.isFocusable());
-
- setNonFocusable();
- assertFalse(mListView.isFocusable());
- }
-
- @MediumTest
- public void testAdapterEmptySetFocusable() {
- setEmptyAdapter();
- assertFalse(mListView.isFocusable());
-
- setFocusable();
- assertFalse(mListView.isFocusable());
- }
-
- @MediumTest
- public void testAdapterEmptySetNonFocusable() {
- setEmptyAdapter();
- assertFalse(mListView.isFocusable());
-
- setNonFocusable();
- assertFalse(mListView.isFocusable());
- }
-
- @MediumTest
- public void testAdapterNullSetFocusable() {
- setNullAdapter();
- assertFalse(mListView.isFocusable());
-
- setFocusable();
- assertFalse(mListView.isFocusable());
- }
-
- @MediumTest
- public void testAdapterNullSetNonFocusable() {
- setNullAdapter();
- assertFalse(mListView.isFocusable());
-
- setNonFocusable();
- assertFalse(mListView.isFocusable());
- }
-
- @MediumTest
- public void testFocusableSetAdapterFull() {
- assertTrue(mListView.isFocusable());
-
- setFullAdapter();
- assertTrue(mListView.isFocusable());
- }
-
- @MediumTest
- public void testNonFocusableSetAdapterFull() {
- assertTrue(mListView.isFocusable());
-
- setNonFocusable();
- assertFalse(mListView.isFocusable());
-
- setFullAdapter();
- assertFalse(mListView.isFocusable());
- }
-
- @MediumTest
- public void testFocusableSetAdapterEmpty() {
- assertTrue(mListView.isFocusable());
-
- setEmptyAdapter();
- assertFalse(mListView.isFocusable());
- }
-
- @MediumTest
- public void testNonFocusableSetAdapterEmpty() {
- assertTrue(mListView.isFocusable());
-
- setNonFocusable();
- assertFalse(mListView.isFocusable());
-
- setEmptyAdapter();
- assertFalse(mListView.isFocusable());
- }
-
- @MediumTest
- public void testFocusableSetAdapterNull() {
- assertTrue(mListView.isFocusable());
-
- setNullAdapter();
- assertFalse(mListView.isFocusable());
- }
-
- @MediumTest
- public void testNonFocusableSetAdapterNull() {
- assertTrue(mListView.isFocusable());
-
- setNonFocusable();
- assertFalse(mListView.isFocusable());
-
- setNullAdapter();
- assertFalse(mListView.isFocusable());
- }
-
- private ListAdapter createFullAdapter() {
- return new ArrayAdapter<String>(mActivity, android.R.layout.simple_list_item_1,
- new String[] { "Android", "Robot" });
- }
-
- private ListAdapter createEmptyAdapter() {
- return new ArrayAdapter<String>(mActivity, android.R.layout.simple_list_item_1,
- new String[] { });
- }
-
-
- private void setFullAdapter() {
- mActivity.runOnUiThread(new Runnable() {
- public void run() {
- mListView.setAdapter(createFullAdapter());
- }
- });
- getInstrumentation().waitForIdleSync();
- }
-
- private void setEmptyAdapter() {
- mActivity.runOnUiThread(new Runnable() {
- public void run() {
- mListView.setAdapter(createEmptyAdapter());
- }
- });
- getInstrumentation().waitForIdleSync();
- }
-
- private void setNullAdapter() {
- mActivity.runOnUiThread(new Runnable() {
- public void run() {
- mListView.setAdapter(null);
- }
- });
- getInstrumentation().waitForIdleSync();
- }
-
- private void setFocusable() {
- mActivity.runOnUiThread(new Runnable() {
- public void run() {
- mListView.setFocusable(true);
- }
- });
- getInstrumentation().waitForIdleSync();
- }
-
- private void setNonFocusable() {
- mActivity.runOnUiThread(new Runnable() {
- public void run() {
- mListView.setFocusable(false);
- }
- });
- getInstrumentation().waitForIdleSync();
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListHeterogeneousTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListHeterogeneousTest.java
deleted file mode 100644
index 0e48993..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListHeterogeneousTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.app.Instrumentation;
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.widget.ListView;
-
-import com.android.frameworktest.listview.ListHeterogeneous;
-
-public class ListHeterogeneousTest extends ActivityInstrumentationTestCase<ListHeterogeneous> {
- private ListHeterogeneous mActivity;
- private ListView mListView;
-
-
- public ListHeterogeneousTest() {
- super("com.android.frameworktest", ListHeterogeneous.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mListView);
- }
-
- @LargeTest
- public void testKeyScrolling() {
- Instrumentation inst = getInstrumentation();
-
- int count = mListView.getAdapter().getCount();
-
-
- for (int i = 0; i < count - 1; i++) {
- inst.sendCharacterSync(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- inst.waitForIdleSync();
- int convertMissesBefore = mActivity.getConvertMisses();
-
- assertEquals("Unexpected convert misses", 0, convertMissesBefore);
-
- for (int i = 0; i < count - 1; i++) {
- inst.sendCharacterSync(KeyEvent.KEYCODE_DPAD_UP);
- }
- inst.waitForIdleSync();
- int convertMissesAfter = mActivity.getConvertMisses();
-
- assertEquals("Unexpected convert misses", 0, convertMissesAfter);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListInHorizontalTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListInHorizontalTest.java
deleted file mode 100644
index 1432576..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListInHorizontalTest.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.listview.ListInHorizontal;
-
-public class ListInHorizontalTest extends ListUnspecifiedMeasure<ListInHorizontal> {
- public ListInHorizontalTest() {
- super(ListInHorizontal.class);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListInVerticalTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListInVerticalTest.java
deleted file mode 100644
index 73078b9..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListInVerticalTest.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.listview.ListInVertical;
-
-public class ListInVerticalTest extends ListUnspecifiedMeasure<ListInVertical> {
- public ListInVerticalTest() {
- super(ListInVertical.class);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListItemRequestRectAboveThinFirstItemTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListItemRequestRectAboveThinFirstItemTest.java
deleted file mode 100644
index 16c4d39..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListItemRequestRectAboveThinFirstItemTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.graphics.Rect;
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.View;
-import android.view.KeyEvent;
-import android.widget.ListView;
-import com.android.frameworktest.listview.ListOfThinItems;
-
-public class ListItemRequestRectAboveThinFirstItemTest
- extends ActivityInstrumentationTestCase<ListOfThinItems> {
- private ListView mListView;
-
- public ListItemRequestRectAboveThinFirstItemTest() {
- super("com.android.frameworktest", ListOfThinItems.class);
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
-
- assertTrue("first child needs to be within fading edge height",
- mListView.getChildAt(0).getBottom() < mListView.getVerticalFadingEdgeLength());
- assertTrue("should be at least two visible children",
- mListView.getChildCount() >= 2);
- }
-
- // reproduce bug 998501: when first item fits within fading edge,
- // having the second item call requestRectangleOnScreen with a rect above
- // the bounds of the list, it was scrolling too far
- @MediumTest
- public void testSecondItemRequestRectAboveTop() throws Exception {
-
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertEquals("selected position", 1, mListView.getSelectedItemPosition());
-
- final View second = mListView.getChildAt(1);
- final Rect rect = new Rect();
- second.getDrawingRect(rect);
- rect.offset(0, -2 * second.getBottom());
-
- getActivity().requestRectangleOnScreen(1, rect);
- getInstrumentation().waitForIdleSync();
-
- assertEquals("top of first item",
- mListView.getListPaddingTop(), mListView.getChildAt(0).getTop());
-
- }
-
- // same thing, but at bottom
- @LargeTest
- public void testSecondToLastItemRequestRectBelowBottom() throws Exception {
-
- final int secondToLastPos = mListView.getCount() - 2;
-
- while (mListView.getSelectedItemPosition() < secondToLastPos) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- assertEquals("selected position", secondToLastPos,
- mListView.getSelectedItemPosition());
-
- final View secondToLast = mListView.getSelectedView();
- final Rect rect = new Rect();
- secondToLast.getDrawingRect(rect);
- rect.offset(0,
- 2 * (mListView.getBottom() - secondToLast.getTop()));
-
- final int secondToLastIndex = mListView.getChildCount() - 2;
- getActivity().requestRectangleOnScreen(secondToLastIndex, rect);
- getInstrumentation().waitForIdleSync();
-
- int listBottom = mListView.getHeight() - mListView.getPaddingBottom();
- assertEquals("bottom of last item should be at bottom of list",
- listBottom,
- mListView.getChildAt(mListView.getChildCount() - 1).getBottom());
- }
-
-
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListManagedCursorTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListManagedCursorTest.java
deleted file mode 100644
index 0251dfb..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListManagedCursorTest.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.app.Instrumentation;
-import android.test.ActivityInstrumentationTestCase;
-import android.test.FlakyTest;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.widget.ListView;
-import android.test.TouchUtils;
-
-/**
- * Tests restoring the scroll position in a list with a managed cursor.
- */
-public class ListManagedCursorTest extends ActivityInstrumentationTestCase<ListManagedCursor> {
- private ListManagedCursor mActivity;
- private ListView mListView;
-
- public ListManagedCursorTest() {
- super("com.android.frameworktest", ListManagedCursor.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mListView);
-
- assertEquals(0, mListView.getFirstVisiblePosition());
- }
-
- /**
- * Scroll the list using arrows, launch new activity, hit back, make sure we're still scrolled.
- */
- @LargeTest
- public void testKeyScrolling() {
- Instrumentation inst = getInstrumentation();
-
- int firstVisiblePosition = arrowScroll(inst);
-
- inst.sendCharacterSync(KeyEvent.KEYCODE_BACK);
- inst.waitForIdleSync();
-
- assertTrue("List changed to touch mode", !mListView.isInTouchMode());
- assertTrue("List did not preserve scroll position",
- firstVisiblePosition == mListView.getFirstVisiblePosition());
- }
-
- /**
- * Scroll the list using touch, launch new activity, hit back, make sure we're still scrolled.
- */
- @LargeTest
- public void testTouchScrolling() {
- Instrumentation inst = getInstrumentation();
-
- int firstVisiblePosition = touchScroll(inst);
-
- inst.sendCharacterSync(KeyEvent.KEYCODE_BACK);
- inst.waitForIdleSync();
-
- assertTrue("List not in touch mode", mListView.isInTouchMode());
- assertTrue("List did not preserve scroll position",
- firstVisiblePosition == mListView.getFirstVisiblePosition());
- }
-
- /**
- * Scroll the list using arrows, launch new activity, change to touch mode, hit back, make sure
- * we're still scrolled.
- */
- @LargeTest
- public void testKeyScrollingToTouchMode() {
- Instrumentation inst = getInstrumentation();
-
- int firstVisiblePosition = arrowScroll(inst);
-
- TouchUtils.dragQuarterScreenUp(this);
- inst.sendCharacterSync(KeyEvent.KEYCODE_BACK);
- inst.waitForIdleSync();
-
- assertTrue("List did not change to touch mode", mListView.isInTouchMode());
- assertTrue("List did not preserve scroll position",
- firstVisiblePosition == mListView.getFirstVisiblePosition());
- }
-
-
- /**
- * Scroll the list using touch, launch new activity, change to trackball mode, hit back, make
- * sure we're still scrolled.
- */
- @FlakyTest(tolerance=3)
- @LargeTest
- public void testTouchScrollingToTrackballMode() {
- Instrumentation inst = getInstrumentation();
-
- int firstVisiblePosition = touchScroll(inst);
-
- inst.sendCharacterSync(KeyEvent.KEYCODE_DPAD_DOWN);
- inst.waitForIdleSync();
- inst.sendCharacterSync(KeyEvent.KEYCODE_DPAD_DOWN);
- inst.waitForIdleSync();
- inst.sendCharacterSync(KeyEvent.KEYCODE_BACK);
- inst.waitForIdleSync();
- assertTrue("List not in trackball mode", !mListView.isInTouchMode());
- assertTrue("List did not preserve scroll position", firstVisiblePosition == mListView
- .getFirstVisiblePosition());
- }
-
- public int arrowScroll(Instrumentation inst) {
- int count = mListView.getChildCount();
-
- for (int i = 0; i < count * 2; i++) {
- inst.sendCharacterSync(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- inst.waitForIdleSync();
-
- int firstVisiblePosition = mListView.getFirstVisiblePosition();
- assertTrue("Arrow scroll did not happen", firstVisiblePosition > 0);
- assertTrue("List still in touch mode", !mListView.isInTouchMode());
-
- inst.sendCharacterSync(KeyEvent.KEYCODE_DPAD_CENTER);
- inst.waitForIdleSync();
-
- try {
- Thread.sleep(3000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
-
- return firstVisiblePosition;
- }
-
- public int touchScroll(Instrumentation inst) {
- TouchUtils.dragQuarterScreenUp(this);
- inst.waitForIdleSync();
- TouchUtils.dragQuarterScreenUp(this);
- inst.waitForIdleSync();
- TouchUtils.dragQuarterScreenUp(this);
- inst.waitForIdleSync();
- TouchUtils.dragQuarterScreenUp(this);
- inst.waitForIdleSync();
-
- int firstVisiblePosition = mListView.getFirstVisiblePosition();
- assertTrue("Touch scroll did not happen", firstVisiblePosition > 0);
- assertTrue("List not in touch mode", mListView.isInTouchMode());
-
- TouchUtils.clickView(this, mListView.getChildAt(mListView.getChildCount() - 1));
- inst.waitForIdleSync();
-
- try {
- Thread.sleep(3000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
-
- return firstVisiblePosition;
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListRetainsFocusAcrossLayoutsTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListRetainsFocusAcrossLayoutsTest.java
deleted file mode 100644
index 02a8beb..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListRetainsFocusAcrossLayoutsTest.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.listview.ListItemFocusablesClose;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-
-public class ListRetainsFocusAcrossLayoutsTest extends ActivityInstrumentationTestCase<ListItemFocusablesClose> {
-
- public ListRetainsFocusAcrossLayoutsTest() {
- super("com.android.frameworktest", ListItemFocusablesClose.class);
- }
-
- private void requestLayoutOnList() {
- getActivity().runOnUiThread(new Runnable() {
- public void run() {
- getActivity().getListView().requestLayout();
- }
- });
- }
-
- @MediumTest
- public void testPreconditions() {
- assertTrue("top button at position 0 should be focused",
- getActivity().getChildOfItem(0, 0).isFocused());
- }
-
- @MediumTest
- public void testBottomButtonRetainsFocusAfterLayout() throws Exception {
-
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
-
- assertTrue("bottom botton at position 0 should be focused",
- getActivity().getChildOfItem(0, 2).isFocused());
-
- requestLayoutOnList();
- getInstrumentation().waitForIdleSync();
-
- assertTrue("bottom botton at position 0 should be focused after layout",
- getActivity().getChildOfItem(0, 2).isFocused());
- }
-
- @MediumTest
- public void testTopButtonOfSecondPositionRetainsFocusAfterLayout() {
- sendRepeatedKeys(2, KeyEvent.KEYCODE_DPAD_DOWN);
-
- assertTrue("top botton at position 1 should be focused",
- getActivity().getChildOfItem(1, 0).isFocused());
-
- requestLayoutOnList();
- getInstrumentation().waitForIdleSync();
-
- assertTrue("top botton at position 1 should be focused after layout",
- getActivity().getChildOfItem(1, 0).isFocused());
-
- }
-
- @MediumTest
- public void testBottomButtonOfSecondPositionRetainsFocusAfterLayout() {
- sendRepeatedKeys(3, KeyEvent.KEYCODE_DPAD_DOWN);
-
- assertTrue("bottom botton at position 1 should be focused",
- getActivity().getChildOfItem(1, 2).isFocused());
-
- requestLayoutOnList();
- getInstrumentation().waitForIdleSync();
-
- assertTrue("bottom botton at position 1 should be focused after layout",
- getActivity().getChildOfItem(1, 2).isFocused());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListScrollListenerTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListScrollListenerTest.java
deleted file mode 100644
index 44958d9..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListScrollListenerTest.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.app.Instrumentation;
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.widget.AbsListView;
-import android.widget.ListView;
-
-import android.test.TouchUtils;
-
-public class ListScrollListenerTest extends ActivityInstrumentationTestCase<ListScrollListener> implements
- AbsListView.OnScrollListener {
- private ListScrollListener mActivity;
- private ListView mListView;
- private int mFirstVisibleItem = -1;
- private int mVisibleItemCount = -1;
- private int mTotalItemCount = -1;
-
- public ListScrollListenerTest() {
- super("com.android.frameworktest", ListScrollListener.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mListView = getActivity().getListView();
- mListView.setOnScrollListener(this);
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mListView);
-
- assertEquals(0, mFirstVisibleItem);
- }
-
- @LargeTest
- public void testKeyScrolling() {
- Instrumentation inst = getInstrumentation();
-
- int firstVisibleItem = mFirstVisibleItem;
- for (int i = 0; i < mVisibleItemCount * 2; i++) {
- inst.sendCharacterSync(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- inst.waitForIdleSync();
- assertTrue("Arrow scroll did not happen", mFirstVisibleItem > firstVisibleItem);
-
- firstVisibleItem = mFirstVisibleItem;
- inst.sendCharacterSync(KeyEvent.KEYCODE_SPACE);
- inst.waitForIdleSync();
- assertTrue("Page scroll did not happen", mFirstVisibleItem > firstVisibleItem);
-
- firstVisibleItem = mFirstVisibleItem;
- KeyEvent down = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN,
- KeyEvent.KEYCODE_DPAD_DOWN, 0, KeyEvent.META_ALT_ON);
- KeyEvent up = new KeyEvent(0, 0, KeyEvent.ACTION_UP,
- KeyEvent.KEYCODE_DPAD_DOWN, 0, KeyEvent.META_ALT_ON);
- inst.sendKeySync(down);
- inst.sendKeySync(up);
- inst.waitForIdleSync();
-
- assertTrue("Full scroll did not happen", mFirstVisibleItem > firstVisibleItem);
- assertEquals("Full scroll did not happen", mTotalItemCount,
- mFirstVisibleItem + mVisibleItemCount);
- }
-
- @LargeTest
- public void testTouchScrolling() {
- int firstVisibleItem = mFirstVisibleItem;
- TouchUtils.dragQuarterScreenUp(this);
- TouchUtils.dragQuarterScreenUp(this);
- assertTrue("Touch scroll did not happen", mFirstVisibleItem > firstVisibleItem);
- }
-
-
- public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
- mFirstVisibleItem = firstVisibleItem;
- mVisibleItemCount = visibleItemCount;
- mTotalItemCount = totalItemCount;
- }
-
- public void onScrollStateChanged(AbsListView view, int scrollState) {
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListSetSelectionTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListSetSelectionTest.java
deleted file mode 100644
index e35d894..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListSetSelectionTest.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.test.ActivityInstrumentationTestCase2;
-import android.test.UiThreadTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.ListView;
-
-/**
- * Basic tests of setting & clearing the selection
- */
-public class ListSetSelectionTest extends ActivityInstrumentationTestCase2<ListSimple> {
- private ListSimple mActivity;
- private ListView mListView;
-
- public ListSetSelectionTest() {
- super("com.android.frameworktest", ListSimple.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mListView);
- }
-
- /** Confirm that we can set the selection to each specific position */
- @MediumTest
- @UiThreadTest
- public void testSetSelection() {
- // Set the selection to each position
- int childCount = mListView.getChildCount();
- for (int i=0; i<childCount; i++) {
- mListView.setSelection(i);
- assertEquals("Set selection", i, mListView.getSelectedItemPosition());
- }
- }
-
- /** Confirm that you cannot unset the selection using the same API */
- @MediumTest
- @UiThreadTest
- public void testClearSelection() {
- // Set the selection to first position
- mListView.setSelection(0);
- assertEquals("Set selection", 0, mListView.getSelectedItemPosition());
-
- // Clear the selection
- mListView.setSelection(ListView.INVALID_POSITION);
- assertEquals("Set selection", 0, mListView.getSelectedItemPosition());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListUnspecifiedMeasure.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListUnspecifiedMeasure.java
deleted file mode 100644
index 55a57ef..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListUnspecifiedMeasure.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import com.android.frameworktest.R;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.app.Activity;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.ListView;
-
-public class ListUnspecifiedMeasure<T extends Activity> extends ActivityInstrumentationTestCase<T> {
- private T mActivity;
- private ListView mListView;
-
- protected ListUnspecifiedMeasure(Class<T> klass) {
- super("com.android.frameworktest", klass);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mListView = (ListView) mActivity.findViewById(R.id.list);
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mListView);
- }
-
- @MediumTest
- public void testWasMeasured() {
- assertTrue(mListView.getMeasuredWidth() > 0);
- assertTrue(mListView.getWidth() > 0);
- assertTrue(mListView.getMeasuredHeight() > 0);
- assertTrue(mListView.getHeight() > 0);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListViewHeightTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListViewHeightTest.java
deleted file mode 100644
index d5bdf8b..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/ListViewHeightTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview;
-
-import android.app.Instrumentation;
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.Button;
-import android.widget.ListView;
-
-import com.android.frameworktest.R;
-import com.android.frameworktest.listview.ListViewHeight;
-
-public class ListViewHeightTest extends ActivityInstrumentationTestCase<ListViewHeight> {
- private ListViewHeight mActivity;
-
-
- public ListViewHeightTest() {
- super("com.android.frameworktest", ListViewHeight.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- }
-
- @MediumTest
- public void testButtons() {
- Instrumentation inst = getInstrumentation();
- final Button button1 = (Button) mActivity.findViewById(R.id.button1);
- final Button button2 = (Button) mActivity.findViewById(R.id.button2);
- final Button button3 = (Button) mActivity.findViewById(R.id.button3);
-
-
- ListView list = (ListView) mActivity.findViewById(R.id.inner_list);
- assertEquals("Unexpected items in adapter", 0, list.getCount());
- assertEquals("Unexpected children in list view", 0, list.getChildCount());
-
- mActivity.runOnUiThread(new Runnable() {
- public void run() {
- button1.performClick();
- }
- });
- inst.waitForIdleSync();
- assertTrue("List not be visible after clicking button1", list.isShown());
- assertTrue("List incorrect height", list.getHeight() == 200);
-
- mActivity.runOnUiThread(new Runnable() {
- public void run() {
- button2.performClick();
- }
- });
- inst.waitForIdleSync();
- assertTrue("List not be visible after clicking button2", list.isShown());
-
- mActivity.runOnUiThread(new Runnable() {
- public void run() {
- button3.performClick();
- }
- });
- inst.waitForIdleSync();
- assertFalse("List should not be visible clicking button3", list.isShown());
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListInterleaveFocusablesTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListInterleaveFocusablesTest.java
deleted file mode 100644
index 1fe75c4..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListInterleaveFocusablesTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.arrowscroll;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.ListView;
-import android.view.KeyEvent;
-import android.view.View;
-
-import com.android.frameworktest.listview.ListInterleaveFocusables;
-import com.android.frameworktest.util.ListUtil;
-
-public class ListInterleaveFocusablesTest extends ActivityInstrumentationTestCase<ListInterleaveFocusables> {
- private ListView mListView;
- private ListUtil mListUtil;
-
- public ListInterleaveFocusablesTest() {
- super("com.android.frameworktest", ListInterleaveFocusables.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mListView = getActivity().getListView();
- mListUtil = new ListUtil(mListView, getInstrumentation());
- }
-
- @LargeTest
- public void testPreconditions() {
- assertEquals(7, mListView.getChildCount());
- assertTrue(mListView.getChildAt(1).isFocusable());
- assertTrue(mListView.getChildAt(3).isFocusable());
- assertTrue(mListView.getChildAt(6).isFocusable());
- }
-
- @MediumTest
- public void testGoingFromUnFocusableSelectedToFocusable() {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
-
- assertEquals("selected item position", 1, mListView.getSelectedItemPosition());
- assertSelectedViewFocus(true);
- }
-
- // go down from an item that isn't focusable, make sure it finds the focusable
- // below (instead of above). this exposes a (now fixed) bug where the focus search
- // was not starting from the right spot
- @MediumTest
- public void testGoingDownFromUnFocusableSelectedToFocusableWithOtherFocusableAbove() {
- mListUtil.setSelectedPosition(2);
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertEquals("selected item position", 3, mListView.getSelectedItemPosition());
- assertSelectedViewFocus(true);
- }
-
- // same, but going up
- @MediumTest
- public void testGoingUpFromUnFocusableSelectedToFocusableWithOtherFocusableAbove() {
- mListUtil.setSelectedPosition(2);
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- assertEquals("selected item position", 1, mListView.getSelectedItemPosition());
- assertSelectedViewFocus(true);
- }
-
- /**
- * Go down from a focusable when there is a focusable below, but it is more than
- * one item away; make sure it won't give that item focus because it is too far away.
- */
- @MediumTest
- public void testGoingDownFromFocusableToUnfocusableWhenFocusableIsBelow() {
- mListUtil.setSelectedPosition(3);
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertEquals("selected item position", 4, mListView.getSelectedItemPosition());
- assertSelectedViewFocus(false);
- }
-
- // same but going up
- @MediumTest
- public void testGoingUpFromFocusableToUnfocusableWhenFocusableIsBelow() {
- mListUtil.setSelectedPosition(6);
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- assertEquals("selected item position", 5, mListView.getSelectedItemPosition());
- assertSelectedViewFocus(false);
- }
-
- public void assertSelectedViewFocus(boolean isFocused) {
- final View view = mListView.getSelectedView();
- assertEquals("selected view focused", isFocused, view.isFocused());
- assertEquals("selected position's isSelected should be the inverse "
- + "of it having focus", !isFocused, view.isSelected());
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListItemFocusableAboveUnfocusableTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListItemFocusableAboveUnfocusableTest.java
deleted file mode 100644
index 6ff9181..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListItemFocusableAboveUnfocusableTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.arrowscroll;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.ListView;
-import android.view.KeyEvent;
-import com.android.frameworktest.listview.ListItemFocusableAboveUnfocusable;
-
-public class ListItemFocusableAboveUnfocusableTest extends ActivityInstrumentationTestCase<ListItemFocusableAboveUnfocusable> {
- private ListView mListView;
-
- public ListItemFocusableAboveUnfocusableTest() {
- super("com.android.frameworktest", ListItemFocusableAboveUnfocusable.class);
- }
-
- protected void setUp() throws Exception {
- super.setUp();
-
- mListView = getActivity().getListView();
- }
-
-
- @MediumTest
- public void testPreconditions() {
- assertEquals("selected position", 0, mListView.getSelectedItemPosition());
- assertTrue(mListView.getChildAt(0).isFocused());
- assertFalse(mListView.getChildAt(1).isFocusable());
- }
-
- @MediumTest
- public void testMovingToUnFocusableTakesFocusAway() {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
-
- assertFalse("focused item should have lost focus",
- mListView.getChildAt(0).isFocused());
- assertEquals("selected position", 1, mListView.getSelectedItemPosition());
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListItemFocusablesCloseTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListItemFocusablesCloseTest.java
deleted file mode 100644
index 07356ba..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListItemFocusablesCloseTest.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.arrowscroll;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.widget.LinearLayout;
-import android.widget.ListView;
-import com.android.frameworktest.listview.ListItemFocusablesClose;
-
-public class ListItemFocusablesCloseTest extends ActivityInstrumentationTestCase<ListItemFocusablesClose> {
- private ListView mListView;
- private int mListTop;
- private int mListBottom;
-
- public ListItemFocusablesCloseTest() {
- super("com.android.frameworktest", ListItemFocusablesClose.class);
- }
-
- @Override
- protected void setUp() throws Exception{
- super.setUp();
- mListView = getActivity().getListView();
- mListTop = mListView.getListPaddingTop();
- mListBottom = mListView.getHeight() - mListView.getListPaddingBottom();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mListView);
- assertTrue(mListView.getAdapter().areAllItemsEnabled());
- assertTrue(mListView.getItemsCanFocus());
- assertEquals(0, mListView.getSelectedItemPosition());
- final LinearLayout first = (LinearLayout) mListView.getSelectedView();
- getInstrumentation().waitForIdleSync();
- assertEquals("first item should be at top of screen",
- mListView.getListPaddingTop(),
- first.getTop());
- assertTrue("first button of first list item should have focus",
- first.getChildAt(0).isFocused());
- assertTrue("item should be shorter than list for this test to make sense",
- first.getHeight() < mListView.getHeight());
- assertEquals("two items should be on screen",
- 2, mListView.getChildCount());
- assertTrue("first button of second item should be on screen",
- getActivity().getChildOfItem(1, 0).getBottom() < mListBottom);
- }
-
-
- @MediumTest
- public void testChangeFocusWithinItem() {
- final LinearLayout first = (LinearLayout) mListView.getSelectedView();
- final int topOfFirstItemBefore = first.getTop();
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertTrue("focus should have moved to second button of first item",
- first.getChildAt(2).isFocused());
- assertEquals("selection should not have changed",
- 0, mListView.getSelectedItemPosition());
- assertEquals("list item should not have been shifted",
- topOfFirstItemBefore, first.getTop());
-
-
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- assertTrue("focus should have moved back to first button of first item",
- first.getChildAt(0).isFocused());
- assertEquals("list item should not have been shifted",
- topOfFirstItemBefore, first.getTop());
- }
-
- @MediumTest
- public void testMoveDownToButtonInDifferentSelection() {
- final LinearLayout first = (LinearLayout) mListView.getSelectedView();
- final int topOfFirstItemBefore = first.getTop();
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
-
- assertEquals("selection should have moved to second item",
- 1, mListView.getSelectedItemPosition());
- final LinearLayout selectedItem = (LinearLayout) mListView.getSelectedView();
- assertTrue("first button of second item should have focus",
- selectedItem.getChildAt(0).isFocused());
- assertEquals("list item should not have been shifted",
- topOfFirstItemBefore, first.getTop());
- }
-
- @MediumTest
- public void testMoveUpToButtonInDifferentSelection() {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertEquals(1, mListView.getSelectedItemPosition());
- assertTrue("first button of second item should have focus",
- getActivity().getChildOfItem(1, 0).hasFocus());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- assertEquals("first list item should have selection", 0,
- mListView.getSelectedItemPosition());
- assertTrue("second button of first item should have focus",
- getActivity().getChildOfItem(0, 2).hasFocus());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListItemFocusablesFarApartTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListItemFocusablesFarApartTest.java
deleted file mode 100644
index 951e021..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListItemFocusablesFarApartTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.arrowscroll;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.ListView;
-import com.android.frameworktest.listview.ListItemFocusablesFarApart;
-
-public class ListItemFocusablesFarApartTest extends ActivityInstrumentationTestCase<ListItemFocusablesFarApart> {
- private ListView mListView;
- private int mListTop;
- private int mListBottom;
-
- public ListItemFocusablesFarApartTest() {
- super("com.android.frameworktest", ListItemFocusablesFarApart.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mListView = getActivity().getListView();
- mListTop = mListView.getListPaddingTop();
- mListBottom = mListView.getHeight() - mListView.getListPaddingBottom();
- }
-
- /**
- * Get the child of a list item.
- * @param listIndex The index of the currently visible items
- * @param index The index of the child.
- */
- public View getChildOfItem(int listIndex, int index) {
- return ((ViewGroup) mListView.getChildAt(listIndex)).getChildAt(index);
-
- }
-
- public int getTopOfChildOfItem(int listIndex, int index) {
- ViewGroup listItem = (ViewGroup) mListView.getChildAt(listIndex);
- View child = listItem.getChildAt(index);
- return child.getTop() + listItem.getTop();
- }
-
- public int getBottomOfChildOfItem(int listIndex, int index) {
- ViewGroup listItem = (ViewGroup) mListView.getChildAt(listIndex);
- View child = listItem.getChildAt(index);
- return child.getBottom() + listItem.getTop();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mListView);
- assertEquals("should only be one visible list item",
- 1, mListView.getChildCount());
- int topOfFirstButton = getTopOfChildOfItem(0, 0);
- int topOfSecondButton = getTopOfChildOfItem(0, 2);
- assertTrue("second button should be more than max scroll away from first",
- topOfSecondButton - topOfFirstButton > mListView.getMaxScrollAmount());
- }
-
-
- @MediumTest
- public void testPanWhenNextFocusableTooFarDown() {
-
- int expectedTop = mListView.getChildAt(0).getTop();
-
- final Button topButton = (Button) getChildOfItem(0, 0);
-
- int counter = 0;
- while(getTopOfChildOfItem(0, 2) > mListBottom) {
- // just to make sure we never end up with an infinite loop
- if (counter > 5) fail("couldn't reach next button within " + counter + " downs");
-
- if (getBottomOfChildOfItem(0, 0) < mListTop) {
- assertFalse("after " + counter + " downs, top button not visible, should not have focus",
- topButton.isFocused());
- assertFalse("after " + counter + " downs, neither top button nor botom button visible, nothng within first list " +
- "item should have focus", mListView.getChildAt(0).hasFocus());
- } else {
- assertTrue("after " + counter + " downs, top button still visible, should have focus",
- topButton.isFocused());
- }
-
- assertEquals("after " + counter + " downs, " +
- "should have panned by max scroll amount",
- expectedTop, mListView.getChildAt(0).getTop());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- expectedTop -= mListView.getMaxScrollAmount();
- counter++;
- }
-
- // at this point, the second button is visible on screen.
- // it should have focus
- assertTrue("second button should have focus",
- getChildOfItem(0, 2).isFocused());
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListItemsExpandOnSelectionTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListItemsExpandOnSelectionTest.java
deleted file mode 100644
index f61ce7b..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListItemsExpandOnSelectionTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.arrowscroll;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.ListView;
-import android.view.KeyEvent;
-import com.android.frameworktest.listview.ListItemsExpandOnSelection;
-
-public class ListItemsExpandOnSelectionTest extends ActivityInstrumentationTestCase<ListItemsExpandOnSelection> {
- private ListView mListView;
- private int mListTop;
- private int mListBottom;
- private int mExpandedHeight;
- private int mNormalHeight;
-
- public ListItemsExpandOnSelectionTest() {
- super("com.android.frameworktest",
- ListItemsExpandOnSelection.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mListView = getActivity().getListView();
- mListTop = mListView.getListPaddingTop();
- mListBottom = mListView.getHeight() - mListView.getListPaddingBottom();
- mExpandedHeight = mListView.getChildAt(0).getHeight();
- mNormalHeight = mListView.getChildAt(1).getHeight();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertEquals(0, mListView.getSelectedItemPosition());
- assertEquals("selected item should be 1.5 times taller than the others",
- mExpandedHeight, (int) (mNormalHeight * 1.5));
- }
-
- @MediumTest
- public void testMoveSelectionDownNotRequiringScroll() {
-
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
-
- assertEquals(1, mListView.getSelectedItemPosition());
- assertEquals("first item's top should not have shifted",
- mListTop, mListView.getChildAt(0).getTop());
-
- }
-
- @MediumTest
- public void testMoveSelectionUpNotRequiringScroll() {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
-
- assertEquals(1, mListView.getSelectedItemPosition());
- final int oldBottom = mListView.getSelectedView().getBottom();
-
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
-
- assertEquals("bottom of 2nd itme should have stayed the same when " +
- "moving back up",
- oldBottom,
- mListView.getChildAt(1).getBottom());
- }
-
- @MediumTest
- public void testMoveSelectionDownRequiringScroll() {
- int lastItemIndex = mListView.getChildCount() - 1;
-
- for(int i = 0; i < lastItemIndex; i++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- getInstrumentation().waitForIdleSync();
-
- assertEquals("list position", lastItemIndex, mListView.getSelectedItemPosition());
- assertEquals("expanded height", mExpandedHeight, mListView.getSelectedView().getHeight());
- assertEquals("should be above bottom fading edge",
- mListBottom - mListView.getVerticalFadingEdgeLength(),
- mListView.getSelectedView().getBottom());
- }
-
- @LargeTest
- public void testMoveSelectionUpRequiringScroll() {
- int childrenPerScreen = mListView.getChildCount();
-
- // go down past last child on screen
- for(int i = 0; i < childrenPerScreen; i++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
-
- // go back up to second to last
- for(int i = 0; i < childrenPerScreen - 1; i++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- }
- getInstrumentation().waitForIdleSync();
-
- assertEquals("list position", 1, mListView.getSelectedItemPosition());
- assertEquals("expanded height", mExpandedHeight, mListView.getSelectedView().getHeight());
- assertEquals("should be below top fading edge",
- mListTop + mListView.getVerticalFadingEdgeLength(),
- mListView.getSelectedView().getTop());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListLastItemPartiallyVisibleTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListLastItemPartiallyVisibleTest.java
deleted file mode 100644
index 38f4b0e..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListLastItemPartiallyVisibleTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.arrowscroll;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.ListView;
-import android.view.View;
-import android.view.KeyEvent;
-import com.android.frameworktest.listview.ListLastItemPartiallyVisible;
-
-public class ListLastItemPartiallyVisibleTest extends ActivityInstrumentationTestCase<ListLastItemPartiallyVisible> {
- private ListView mListView;
- private int mListBottom;
-
-
- public ListLastItemPartiallyVisibleTest() {
- super("com.android.frameworktest", ListLastItemPartiallyVisible.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mListView = getActivity().getListView();
- mListBottom = mListView.getHeight() - mListView.getPaddingBottom();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertEquals("number of elements visible should be the same as number of items " +
- "in adapter", mListView.getCount(), mListView.getChildCount());
-
- final View lastChild = mListView.getChildAt(mListView.getChildCount() - 1);
- assertTrue("last item should be partially off screen",
- lastChild.getBottom() > mListBottom);
- assertEquals("selected position", 0, mListView.getSelectedItemPosition());
- }
-
- // reproduce bug 998094
- @MediumTest
- public void testMovingDownToFullyVisibleNoScroll() {
- final View firstChild = mListView.getChildAt(0);
- final int firstBottom = firstChild.getBottom();
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertEquals("shouldn't have scrolled: bottom of first child changed.",
- firstBottom, firstChild.getBottom());
- }
-
- // reproduce bug 998094
- @MediumTest
- public void testMovingUpToFullyVisibleNoScroll() {
- int numMovesToLast = mListView.getCount() - 1;
- for (int i = 0; i < numMovesToLast; i++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- assertEquals("should have moved to last position",
- mListView.getChildCount() - 1, mListView.getSelectedItemPosition());
-
- final View lastChild = mListView.getSelectedView();
- final int lastTop = lastChild.getTop();
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- assertEquals("shouldn't have scrolled: top of last child changed.",
- lastTop, lastChild.getTop());
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListOfItemsShorterThanScreenTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListOfItemsShorterThanScreenTest.java
deleted file mode 100644
index 126eea2..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListOfItemsShorterThanScreenTest.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.arrowscroll;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.view.View;
-import android.widget.ListView;
-import android.widget.TextView;
-import com.android.frameworktest.listview.ListOfItemsShorterThanScreen;
-
-public class ListOfItemsShorterThanScreenTest
- extends ActivityInstrumentationTestCase<ListOfItemsShorterThanScreen> {
- private ListView mListView;
- private ListOfItemsShorterThanScreen mActivity;
-
-
- public ListOfItemsShorterThanScreenTest() {
- super("com.android.frameworktest", ListOfItemsShorterThanScreen.class);
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- mActivity = getActivity();
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertEquals(0, mListView.getSelectedItemPosition());
- assertTrue(mListView.getChildAt(0).isSelected());
- assertEquals(mListView.getListPaddingTop(), mListView.getSelectedView().getTop());
- }
-
- @MediumTest
- public void testMoveDownToOnScreenNextItem() {
- final View next = mListView.getChildAt(1);
- assertFalse(next.isSelected());
- final int secondPosition = mListView.getSelectedView().getBottom();
- assertEquals("second item should be positioned item height pixels from top.",
- secondPosition,
- next.getTop());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertEquals(1, mListView.getSelectedItemPosition());
- assertTrue(next.isSelected());
- assertEquals("next selected item shouldn't have moved",
- secondPosition,
- next.getTop());
- }
-
- @MediumTest
- public void testMoveUpToOnScreenItem() {
- // move down one, then back up
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- assertEquals(0, mListView.getSelectedItemPosition());
- }
-
- @MediumTest
- public void testMoveDownToItemRequiringScrolling() {
- final int lastOnScreenItemIndex = mListView.getChildCount() - 1;
- final View lastItem = mListView.getChildAt(lastOnScreenItemIndex);
- assertTrue("last item should be partially off screen",
- lastItem.getBottom() > mListView.getBottom());
- assertEquals(mListView.getListPaddingTop(), mListView.getSelectedView().getTop());
-
- for (int i = 0; i < lastOnScreenItemIndex; i++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
-
- assertEquals(lastOnScreenItemIndex, mListView.getSelectedItemPosition());
- assertEquals(
- getTopOfBottomFadingEdge(),
- mListView.getSelectedView().getBottom());
-
- // there should be a peeking view
-
- // the current view isn't the last anymore...
- assertEquals(mListView.getSelectedView(), mListView.getChildAt(mListView.getChildCount() - 2));
-
- // peeking view is now last
- final TextView view = (TextView) mListView.getChildAt(mListView.getChildCount() - 1);
- assertEquals(mActivity.getValueAtPosition(lastOnScreenItemIndex + 1), view.getText());
- assertFalse(view.isSelected());
- }
-
- @MediumTest
- public void testMoveUpToItemRequiringScrolling() {
- // go down to one past last item, then back up to the second item. this will
- // require scrolling to get it back on screen, and will need a peeking edge
-
- int numItemsOnScreen = mListView.getChildCount();
- for (int i = 0; i < numItemsOnScreen; i++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- for (int i = 0; i < numItemsOnScreen - 1; i++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- }
-
- assertEquals(1, mListView.getSelectedItemPosition());
- assertEquals("top should be just below vertical fading edge",
- mListView.getVerticalFadingEdgeLength() + mListView.getListPaddingTop(),
- mListView.getSelectedView().getTop());
- }
-
- @MediumTest
- public void testPressUpWhenAlreadyAtTop() {
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
-
- assertEquals(0, mListView.getSelectedItemPosition());
- }
-
- @MediumTest
- public void testPressDownWhenAlreadyAtBottom() {
- final int lastItemPosition = mListView.getAdapter().getCount() - 1;
- for (int i = 0; i < lastItemPosition; i++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- assertEquals(lastItemPosition, mListView.getSelectedItemPosition());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertEquals(lastItemPosition, mListView.getSelectedItemPosition());
- }
-
- @MediumTest
- public void testNoVerticalFadingEdgeWhenMovingToBottom() {
- final int lastItemPosition = mListView.getAdapter().getCount() - 1;
- for (int i = 0; i < lastItemPosition; i++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- assertEquals(lastItemPosition, mListView.getSelectedItemPosition());
-
- assertEquals("bottom of last item should be just above padding; no fading edge.",
- mListView.getHeight() - mListView.getListPaddingBottom(),
- mListView.getSelectedView().getBottom());
-
- }
-
- // the top of the bottom fading edge takes into account the list padding at the bottom,
- // and the fading edge size
- private int getTopOfBottomFadingEdge() {
- return mListView.getHeight() - (mListView.getVerticalFadingEdgeLength() + mListView.getListPaddingBottom());
- }
-
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListOfItemsTallerThanScreenTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListOfItemsTallerThanScreenTest.java
deleted file mode 100644
index ec3a15c..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListOfItemsTallerThanScreenTest.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.arrowscroll;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.ListView;
-import android.view.View;
-import android.view.KeyEvent;
-import com.android.frameworktest.listview.ListOfItemsTallerThanScreen;
-
-public class ListOfItemsTallerThanScreenTest
- extends ActivityInstrumentationTestCase<ListOfItemsTallerThanScreen> {
-
- private ListView mListView;
- private ListOfItemsTallerThanScreen mActivity;
-
-
- protected void setUp() throws Exception {
- super.setUp();
- mActivity = getActivity();
- mListView = getActivity().getListView();
- }
-
- public ListOfItemsTallerThanScreenTest() {
- super("com.android.frameworktest", ListOfItemsTallerThanScreen.class);
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mListView);
- assertEquals("should only be one visible child", 1, mListView.getChildCount());
- final int amountOffScreen = mListView.getChildAt(0).getBottom() - (mListView.getBottom() - mListView.getListPaddingBottom());
- assertTrue("must be more than max scroll off screen for this test to work",
- amountOffScreen > mListView.getMaxScrollAmount());
- }
-
- @MediumTest
- public void testScrollDownAcrossItem() {
- final View view = mListView.getSelectedView();
- assertTrue(view.isSelected());
-
- assertEquals(mListView.getListPaddingTop(),
- view.getTop());
-
- assertTrue("view must be taller than screen for this test to be worth anything",
- view.getBottom() > mListView.getBottom());
-
- // scroll down until next view is peeking ahead
- int numScrollsUntilNextViewVisible = getNumDownPressesToScrollDownAcrossSelected();
-
- for (int i = 0; i < numScrollsUntilNextViewVisible; i++) {
- assertEquals("after " + i + " down scrolls across tall item",
- mListView.getListPaddingTop() - mListView.getMaxScrollAmount() * i,
- view.getTop());
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
-
- // at this point, next view should be on screen peeking ahead, but we haven't given
- // it selection yet
- assertEquals("child count", 2, mListView.getChildCount());
- assertEquals("selected position", 0, mListView.getSelectedItemPosition());
- assertTrue("same view should be selected", view.isSelected());
- final View peekingView = mListView.getChildAt(1);
- assertEquals(view.getBottom(), peekingView.getTop());
- }
-
- @MediumTest
- public void testScrollDownToNextItem() {
- final int numPresses = getNumDownPressesToScrollDownAcrossSelected();
- assertEquals(1, mListView.getChildCount());
-
- for (int i = 0; i < numPresses; i++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- // remember top of peeking child
- final int topOfPeekingNext = mListView.getChildAt(1).getTop();
-
- // next view is peeking, now press one more time
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
-
- // old view should not have selection
- assertFalse(mListView.getChildAt(0).isSelected());
-
- // next view should now have selection, and be scrolled another a third of the list
- // height
- assertEquals(2, mListView.getChildCount());
- final View next = mListView.getChildAt(1);
- assertTrue("has selection", next.isSelected());
- assertEquals(topOfPeekingNext - (mListView.getMaxScrollAmount()), next.getTop());
- }
-
- @MediumTest
- public void testScrollFirstItemOffScreen() {
- int numDownsToGetFirstItemOffScreen =
- (mListView.getSelectedView().getHeight() / mListView.getMaxScrollAmount()) + 1;
-
- for (int i = 0; i < numDownsToGetFirstItemOffScreen; i++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- getInstrumentation().waitForIdleSync();
-
- assertEquals("should be at next item",
- 1, mListView.getSelectedItemPosition());
-
- final int listTop = mListView.getTop() + mListView.getListPaddingTop();
- assertTrue("top of selected view should be above top of list",
- mListView.getSelectedView().getTop() < listTop);
-
- assertEquals("off screen item shouldn't be a child of list view",
- 1, mListView.getChildCount());
- }
-
- @LargeTest
- public void testScrollDownToLastItem() {
- final int numItems = mListView.getAdapter().getCount();
-
- int maxDowns = 20;
- while (mListView.getSelectedItemPosition() < (numItems - 1)) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- if (--maxDowns <= 0) {
- fail("couldn't get to last item within 20 down arrows");
- }
- }
- getInstrumentation().waitForIdleSync();
-
- // press down enough times to get to bottom of last item
- final int numDownsLeft = getNumDownPressesToScrollDownAcrossSelected();
- assertTrue(numDownsLeft > 0);
- for (int i = 0; i < numDownsLeft; i++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- // one more time to get across last item
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- getInstrumentation().waitForIdleSync();
-
- assertEquals(numItems - 1, mListView.getSelectedItemPosition());
- final int realBottom = mListView.getHeight() - mListView.getListPaddingBottom();
- assertEquals(realBottom, mListView.getSelectedView().getBottom());
-
- assertEquals("views scrolled off screen should be removed from view group",
- 1, mListView.getChildCount());
- }
-
- @MediumTest
- public void testScrollUpAcrossFirstItem() {
- final int listTop = mListView.getListPaddingTop();
- assertEquals(listTop, mListView.getSelectedView().getTop());
- final int numPresses = getNumDownPressesToScrollDownAcrossSelected();
- for (int i = 0; i < numPresses; i++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- assertEquals(2, mListView.getChildCount());
- for (int i = 0; i < numPresses; i++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- assertEquals(1, mListView.getChildCount());
- }
- assertEquals(listTop, mListView.getSelectedView().getTop());
- }
-
- /**
- * Assuming the selected view is overlapping the bottom edge, how many times
- * do I have to press down to get beyond it so that either:
- * a) the next view is peeking in
- * b) the selected view is the last item in the list, and we are scrolled to the bottom
- * @return
- */
- private int getNumDownPressesToScrollDownAcrossSelected() {
- View selected = mListView.getSelectedView();
- int realBottom = mListView.getBottom() - mListView.getListPaddingBottom();
- assertTrue("view should be overlapping bottom",
- selected.getBottom() > realBottom);
- assertTrue("view should be overlapping bottom",
- selected.getTop() < realBottom);
-
- int pixelsOffScreen = selected.getBottom() - realBottom;
- return (pixelsOffScreen / mListView.getMaxScrollAmount()) + 1;
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListOfShortShortTallShortShortTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListOfShortShortTallShortShortTest.java
deleted file mode 100644
index e218099..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListOfShortShortTallShortShortTest.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.arrowscroll;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.widget.ListView;
-import com.android.frameworktest.listview.ListOfShortShortTallShortShort;
-import com.android.frameworktest.util.ListUtil;
-
-public class ListOfShortShortTallShortShortTest extends ActivityInstrumentationTestCase<ListOfShortShortTallShortShort> {
- private ListView mListView;
- private ListUtil mListUtil;
-
- public ListOfShortShortTallShortShortTest() {
- super("com.android.frameworktest", ListOfShortShortTallShortShort.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mListView = getActivity().getListView();
- mListUtil = new ListUtil(mListView, getInstrumentation());
- }
-
- @MediumTest
- public void testPreconditions() {
- assertEquals("list item count", 5, mListView.getCount());
- assertEquals("list visible child count", 3, mListView.getChildCount());
- int firstTwoHeight = mListView.getChildAt(0).getHeight() + mListView.getChildAt(1).getHeight();
- assertTrue("first two items should fit within fading edge",
- firstTwoHeight <= mListView.getVerticalFadingEdgeLength());
- assertTrue("first two items should fit within list max scroll",
- firstTwoHeight <= mListView.getMaxScrollAmount());
- }
-
- @MediumTest
- public void testFadeTopTwoItemsOut() {
- // put 2nd item selected
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
-
- // one more to get two items scrolled off
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
-
- assertEquals("selected item position", 2, mListView.getSelectedItemPosition());
- assertTrue("selected item top should be above list top",
- mListView.getSelectedView().getTop() < mListUtil.getListTop());
- assertTrue("selected item bottom should be below list bottom",
- mListView.getSelectedView().getBottom() > mListUtil.getListBottom());
- assertEquals("should only be 1 child of list (2 should have been scrolled off and removed",
- 1, mListView.getChildCount());
- }
-
- @LargeTest
- public void testFadeInTwoBottomItems() {
- // put 2nd item selected
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
-
- // one more to get two items scrolled off
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertEquals("number of list children", 1, mListView.getChildCount());
-
- // last down brings bottom two items into view
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertEquals("should have scrolled two extra views onto screen",
- 3, mListView.getChildCount());
- assertEquals("new view position", 3, mListView.getChildAt(1).getId());
- assertEquals("new view position", 4, mListView.getChildAt(2).getId());
-
- assertTrue("bottom most view shouldn't be above list bottom",
- mListView.getChildAt(2).getBottom() >= mListUtil.getListBottom());
- }
-
- @LargeTest
- public void testFadeOutBottomTwoItems() throws Exception {
- mListUtil.arrowScrollToSelectedPosition(4);
-
- // go up to tall item
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
-
- // one more time to scroll off bottom two items
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
-
-
- assertEquals("selected item position", 2, mListView.getSelectedItemPosition());
- assertTrue("selected item top should be at or above list top",
- mListView.getSelectedView().getTop() <= mListUtil.getListTop());
- assertTrue("selected item bottom should be below list bottom",
- mListView.getSelectedView().getBottom() > mListUtil.getListBottom());
- assertEquals("should only be 1 child of list (2 should have been scrolled off and removed",
- 1, mListView.getChildCount());
- }
-
- @LargeTest
- public void testFadeInTopTwoItems() throws Exception {
- mListUtil.arrowScrollToSelectedPosition(4);
-
- // put 2nd item selected
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
-
- // one more to get two items scrolled off
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- assertEquals("number of list children", 1, mListView.getChildCount());
-
- // last down brings top two items into view
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- assertEquals("should have scrolled two extra views onto screen",
- 3, mListView.getChildCount());
- assertEquals("new view position", 0, mListView.getChildAt(0).getId());
- assertEquals("new view position", 1, mListView.getChildAt(1).getId());
-
- assertTrue("top most view shouldn't be above list top",
- mListView.getChildAt(0).getTop() <= mListUtil.getListTop());
- }
-
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListOfShortTallShortTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListOfShortTallShortTest.java
deleted file mode 100644
index 6a83ada..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListOfShortTallShortTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.arrowscroll;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.ListView;
-import android.view.KeyEvent;
-import com.android.frameworktest.listview.ListOfShortTallShort;
-
-public class ListOfShortTallShortTest extends ActivityInstrumentationTestCase<ListOfShortTallShort> {
- private ListView mListView;
-
- public ListOfShortTallShortTest() {
- super("com.android.frameworktest", ListOfShortTallShort.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertTrue("second item should be taller than screen",
- mListView.getChildAt(1).getHeight() > mListView.getHeight());
- }
-
- @MediumTest
- public void testGoDownFromShortToTall() {
- int topBeforeMove = mListView.getChildAt(1).getTop();
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
-
- assertEquals("selection should have moved to tall item below",
- 1, mListView.getSelectedItemPosition());
- assertEquals("should not have scrolled; top should be the same.",
- topBeforeMove,
- mListView.getSelectedView().getTop());
- }
-
- @MediumTest
- public void testGoUpFromShortToTall() {
- int maxMoves = 8;
- while (mListView.getSelectedItemPosition() != 2 && maxMoves > 0) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- assertEquals("couldn't get to 3rd item",
- 2,
- mListView.getSelectedItemPosition());
-
- assertEquals("should only be two items on screen",
- 2, mListView.getChildCount());
- assertEquals("selected item should be last item on screen",
- mListView.getChildAt(1), mListView.getSelectedView());
-
- final int bottomBeforeMove = mListView.getChildAt(0).getBottom();
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- assertEquals("should have moved selection to tall item above",
- 1, mListView.getSelectedItemPosition());
- assertEquals("should not have scrolled, top should be the same",
- bottomBeforeMove,
- mListView.getChildAt(0).getBottom());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListOfThinItemsTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListOfThinItemsTest.java
deleted file mode 100644
index e8dbbec..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListOfThinItemsTest.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.arrowscroll;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.view.View;
-import android.widget.ListView;
-import com.android.frameworktest.listview.ListOfThinItems;
-
-public class ListOfThinItemsTest extends ActivityInstrumentationTestCase<ListOfThinItems> {
- private ListView mListView;
-
- public ListOfThinItemsTest() {
- super("com.android.frameworktest", ListOfThinItems.class);
- }
-
- @Override
- protected void setUp() throws Exception{
- super.setUp();
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mListView);
- assertTrue("need item height less than fading edge length",
- mListView.getSelectedView().getHeight() < mListView.getVerticalFadingEdgeLength());
- assertTrue("need items off screen",
- mListView.getChildCount() < mListView.getAdapter().getCount());
- }
-
- @LargeTest
- public void testScrollToBottom() {
- final int numItems = mListView.getAdapter().getCount();
- final int listBottom = mListView.getHeight() - mListView.getListPaddingBottom();
- for (int i = 0; i < numItems; i++) {
- assertEquals("wrong selection at position " + i,
- i, mListView.getSelectedItemPosition());
- final int bottomFadingEdge = listBottom - mListView.getVerticalFadingEdgeLength();
- final View lastChild = mListView.getChildAt(mListView.getChildCount() - 1);
- final int lastVisiblePosition = lastChild.getId();
-
-
- int bottomThreshold = (lastVisiblePosition < mListView.getAdapter().getCount() - 1) ?
- bottomFadingEdge : listBottom;
-
- String prefix = "after " + i + " down presses, ";
-
- assertTrue(prefix + "selected item is below bottom threshold (fading edge or bottom as " +
- "appropriate)",
- mListView.getSelectedView().getBottom() <= bottomThreshold);
- assertTrue(prefix + "first item in list must be at very top or just above",
- mListView.getChildAt(0).getTop() <= 0);
- assertTrue(prefix + "last item in list should be at very bottom or just below",
- lastChild.getBottom() >= listBottom);
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- }
-
- @LargeTest
- public void testScrollToTop() {
- final int numItems = mListView.getAdapter().getCount();
-
- for (int i = 0; i < numItems - 1; i++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- assertEquals("should have moved to last position",
- numItems - 1, mListView.getSelectedItemPosition());
-
- int listTop = mListView.getListPaddingTop();
- final int listBottom = mListView.getHeight() - mListView.getListPaddingBottom();
-
- for (int i = 0; i < numItems; i++) {
- int expectedPostion = numItems - (i + 1);
- assertEquals("wrong selection at position " + expectedPostion,
- expectedPostion, mListView.getSelectedItemPosition());
- final int topFadingEdge = listTop + mListView.getVerticalFadingEdgeLength();
- final View firstChild = mListView.getChildAt(0);
- final View lastChild = mListView.getChildAt(mListView.getChildCount() - 1);
- final int firstVisiblePosition = firstChild.getId();
-
-
- int topThreshold = (firstVisiblePosition > 0) ?
- topFadingEdge : listTop;
-
- String prefix = "after " + i + " up presses, ";
-
- assertTrue(prefix + "selected item is above top threshold (fading edge or top as " +
- "appropriate)",
- mListView.getSelectedView().getTop() >= topThreshold);
- assertTrue(prefix + "first item in list must be at very top or just above",
- firstChild.getTop() <= 0);
- assertTrue(prefix + "last item in list should be at very bottom or just below",
- lastChild.getBottom() >= listBottom);
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- }
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithFirstScreenUnSelectableTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithFirstScreenUnSelectableTest.java
deleted file mode 100644
index 307c39d..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithFirstScreenUnSelectableTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2008 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.arrowscroll;
-
-import com.android.frameworktest.listview.ListWithFirstScreenUnSelectable;
-import android.test.ActivityInstrumentationTestCase2;
-import android.view.KeyEvent;
-import android.widget.ListView;
-import android.widget.AdapterView;
-
-public class ListWithFirstScreenUnSelectableTest
- extends ActivityInstrumentationTestCase2<ListWithFirstScreenUnSelectable> {
- private ListView mListView;
-
- public ListWithFirstScreenUnSelectableTest() {
- super("com.android.frameworktest", ListWithFirstScreenUnSelectable.class);
- }
-
- protected void setUp() throws Exception {
- super.setUp();
-
- setActivityInitialTouchMode(true);
-
- mListView = getActivity().getListView();
- }
-
- public void testPreconditions() {
- assertTrue(mListView.isInTouchMode());
- assertEquals(1, mListView.getChildCount());
- assertFalse(mListView.getAdapter().isEnabled(0));
- assertEquals(AdapterView.INVALID_POSITION, mListView.getSelectedItemPosition());
- }
-
- public void testRessurectSelection() {
- sendKeys(KeyEvent.KEYCODE_SPACE);
- assertEquals(AdapterView.INVALID_POSITION, mListView.getSelectedItemPosition());
- }
-
- public void testScrollUpDoesNothing() {
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- assertEquals(AdapterView.INVALID_POSITION, mListView.getSelectedItemPosition());
- assertEquals(1, mListView.getChildCount());
- assertEquals(0, mListView.getFirstVisiblePosition());
- }
-
- public void testScrollDownPansNextItemOn() {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertEquals(2, mListView.getChildCount());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithNoFadingEdgeTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithNoFadingEdgeTest.java
deleted file mode 100644
index 449e048..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithNoFadingEdgeTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.arrowscroll;
-
-import com.android.frameworktest.listview.ListWithNoFadingEdge;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.ListView;
-import android.view.KeyEvent;
-
-public class ListWithNoFadingEdgeTest extends ActivityInstrumentationTestCase<ListWithNoFadingEdge> {
-
- private ListView mListView;
-
- public ListWithNoFadingEdgeTest() {
- super("com.android.frameworktest", ListWithNoFadingEdge.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mListView);
- assertEquals("listview vertical fading edge", 0, mListView.getVerticalFadingEdgeLength());
- assertTrue("expecting that not all views fit on screen",
- mListView.getChildCount() < mListView.getCount());
- }
-
- @MediumTest
- public void testScrollDownToBottom() {
- final int numItems = mListView.getCount();
-
- for (int i = 0; i < numItems; i++) {
- assertEquals("selected position", i, mListView.getSelectedItemPosition());
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- assertEquals("selected position", numItems - 1, mListView.getSelectedItemPosition());
- }
-
- @LargeTest
- public void testScrollFromBottomToTop() {
- final int numItems = mListView.getCount();
-
- getActivity().runOnUiThread(new Runnable() {
- public void run() {
- mListView.setSelection(numItems - 1);
- }
- });
- getInstrumentation().waitForIdleSync();
-
- for (int i = numItems - 1; i >=0; i--) {
- assertEquals(i, mListView.getSelectedItemPosition());
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- }
-
- assertEquals("selected position", 0, mListView.getSelectedItemPosition());
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithOffScreenNextSelectableTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithOffScreenNextSelectableTest.java
deleted file mode 100644
index 6e62ccb..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithOffScreenNextSelectableTest.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.arrowscroll;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.view.View;
-import android.widget.ListView;
-import android.widget.TextView;
-import com.android.frameworktest.listview.ListWithOffScreenNextSelectable;
-
-public class ListWithOffScreenNextSelectableTest
- extends ActivityInstrumentationTestCase<ListWithOffScreenNextSelectable> {
- private ListView mListView;
-
- public ListWithOffScreenNextSelectableTest() {
- super("com.android.frameworktest", ListWithOffScreenNextSelectable.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mListView);
- assertEquals(5, mListView.getAdapter().getCount());
- assertFalse(mListView.getAdapter().areAllItemsEnabled());
- assertFalse(mListView.getAdapter().isEnabled(1));
- assertFalse(mListView.getAdapter().isEnabled(2));
- assertFalse(mListView.getAdapter().isEnabled(3));
- assertEquals("only 4 children should be on screen (so that next selectable is off " +
- "screen) for this test to be meaningful.",
- 4, mListView.getChildCount());
- assertEquals(0, mListView.getSelectedItemPosition());
- }
-
- // when the next items on screen are not selectable, we pan until the next selectable item
- // is (partially visible), then we jump to it
- @MediumTest
- public void testGoDownToOffScreenSelectable() {
-
- final int listBottom = mListView.getHeight() - mListView.getListPaddingBottom();
-
- final View lastVisibleView = mListView.getChildAt(mListView.getChildCount() - 1);
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertEquals("expecting view to be panned to just above fading edge",
- listBottom - mListView.getVerticalFadingEdgeLength(), lastVisibleView.getBottom());
- assertEquals("selection should not have moved yet",
- 0, mListView.getSelectedItemPosition());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertEquals("selection should have moved",
- 4, mListView.getSelectedItemPosition());
- assertEquals("wrong view created when scrolling",
- getActivity().getValueAtPosition(4), ((TextView) mListView.getSelectedView()).getText());
- assertEquals(listBottom, mListView.getSelectedView().getBottom());
- }
-
- @MediumTest
- public void testGoUpToOffScreenSelectable() {
- final int listBottom = mListView.getHeight() - mListView.getListPaddingBottom();
- final int listTop = mListView.getListPaddingTop();
-
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
-
- assertEquals(4, mListView.getSelectedItemPosition());
- assertEquals(listBottom, mListView.getSelectedView().getBottom());
-
- // now we have the reverse situation: the next selectable position upward is off screen
- final View firstVisibleView = mListView.getChildAt(0);
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- assertEquals("should have panned top view just below vertical fading edge",
- listTop + mListView.getVerticalFadingEdgeLength(), firstVisibleView.getTop());
- assertEquals("selection should not have moved yet",
- 4, mListView.getSelectedItemPosition());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- assertEquals("selection should have moved",
- 0, mListView.getSelectedItemPosition());
- assertEquals(getActivity().getValueAtPosition(0),((TextView) mListView.getSelectedView()).getText());
- assertEquals(listTop, mListView.getSelectedView().getTop());
-
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithOnItemSelectedActionTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithOnItemSelectedActionTest.java
deleted file mode 100644
index 0a8af45..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithOnItemSelectedActionTest.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.arrowscroll;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.ListView;
-import android.widget.TextView;
-import android.view.KeyEvent;
-import com.android.frameworktest.listview.ListWithOnItemSelectedAction;
-
-public class ListWithOnItemSelectedActionTest extends ActivityInstrumentationTestCase<ListWithOnItemSelectedAction> {
- private ListView mListView;
-
- public ListWithOnItemSelectedActionTest() {
- super("com.android.frameworktest", ListWithOnItemSelectedAction.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mListView = getActivity().getListView();
- }
-
- private String getValueOfSelectedTextView() {
- return ((TextView) mListView.getSelectedView()).getText().toString();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertEquals(0, mListView.getSelectedItemPosition());
- assertEquals("header text field should be echoing contents of selected item",
- getValueOfSelectedTextView(),
- getActivity().getHeaderValue());
- }
-
- @MediumTest
- public void testHeaderEchoesSelectionAfterMove() {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
-
- assertEquals(1, mListView.getSelectedItemPosition());
- assertEquals("header text field should be echoing contents of selected item",
- getValueOfSelectedTextView(),
- getActivity().getHeaderValue());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithScreenOfNoSelectablesTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithScreenOfNoSelectablesTest.java
deleted file mode 100644
index 0c0084e..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithScreenOfNoSelectablesTest.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.arrowscroll;
-
-import com.android.frameworktest.listview.ListWithScreenOfNoSelectables;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.view.View;
-import android.widget.ListView;
-
-public class ListWithScreenOfNoSelectablesTest extends ActivityInstrumentationTestCase<ListWithScreenOfNoSelectables> {
-
- private ListView mListView;
-
- public ListWithScreenOfNoSelectablesTest() {
- super("com.android.frameworktest", ListWithScreenOfNoSelectables.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertTrue("expecting first position to be selectable",
- mListView.getAdapter().isEnabled(0));
- final int numItems = mListView.getCount();
- for (int i = 1; i < numItems; i++) {
- assertFalse("expecting item to be unselectable (index " + i +")",
- mListView.getAdapter().isEnabled(i));
- }
- assertTrue("expecting that not all views fit on screen",
- mListView.getChildCount() < mListView.getCount());
- }
-
-
- @MediumTest
- public void testGoFromSelectedViewExistsToNoSelectedViewExists() {
-
- // go down untile first (and only selectable) item is off screen
- View first = mListView.getChildAt(0);
- while (first.getParent() != null) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
-
- // nothing should be selected
- assertEquals("selected position", ListView.INVALID_POSITION, mListView.getSelectedItemPosition());
- assertNull("selected view", mListView.getSelectedView());
- }
-
- @LargeTest
- public void testPanDownAcrossUnselectableChildrenToBottom() {
- final int lastPosition = mListView.getCount() - 1;
- final int maxDowns = 20;
- for(int count = 0; count < maxDowns && mListView.getLastVisiblePosition() <= lastPosition; count++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- assertEquals("last visible position not the last position in the list even "
- + "after " + maxDowns + " downs", lastPosition, mListView.getLastVisiblePosition());
- }
-
- @MediumTest
- public void testGoFromNoSelectionToSelectionExists() {
- // go down untile first (and only selectable) item is off screen
- View first = mListView.getChildAt(0);
- while (first.getParent() != null) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
-
- // nothing should be selected
- assertEquals("selected position", ListView.INVALID_POSITION, mListView.getSelectedItemPosition());
- assertNull("selected view", mListView.getSelectedView());
-
- // go up once to bring the selectable back on screen
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- assertEquals("first visible position", 0, mListView.getFirstVisiblePosition());
- assertEquals("selected position", ListView.INVALID_POSITION, mListView.getSelectedItemPosition());
-
-
- // up once more should give it selection
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- assertEquals("selected position", 0, mListView.getSelectedItemPosition());
-
- }
-
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithSeparatorsTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithSeparatorsTest.java
deleted file mode 100644
index fdeaa4a..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/arrowscroll/ListWithSeparatorsTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.arrowscroll;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.ListView;
-import android.view.KeyEvent;
-import com.android.frameworktest.listview.ListWithSeparators;
-
-public class ListWithSeparatorsTest extends ActivityInstrumentationTestCase<ListWithSeparators> {
- private ListWithSeparators mActivity;
- private ListView mListView;
-
- public ListWithSeparatorsTest() {
- super("com.android.frameworktest", ListWithSeparators.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mListView);
- assertFalse(mListView.getAdapter().areAllItemsEnabled());
- assertFalse(mListView.getAdapter().isEnabled(0));
- assertFalse(mListView.getAdapter().isEnabled(2));
- assertEquals(1, mListView.getSelectedItemPosition());
- }
-
- @MediumTest
- public void testGoingUpDoesnNotHitUnselectableItem() {
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- assertEquals("selected position should remain the same",
- 1, mListView.getSelectedItemPosition());
-
- assertEquals("seperator should be scrolled flush with top",
- mListView.getListPaddingTop(), mListView.getChildAt(0).getTop());
- }
-
- @MediumTest
- public void testGoingDownSkipsOverUnselectable() {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertEquals("should have skipped to next selectable ",
- 3,
- mListView.getSelectedItemPosition());
- }
-
- @MediumTest
- public void testGoingUpSkippingOverUnselectable() {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- assertEquals(1, mListView.getSelectedItemPosition());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/focus/AdjacentListsWithAdjacentISVsInsideTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/focus/AdjacentListsWithAdjacentISVsInsideTest.java
deleted file mode 100644
index 2c0c2d8..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/focus/AdjacentListsWithAdjacentISVsInsideTest.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.focus;
-
-import com.android.frameworktest.listview.AdjacentListsWithAdjacentISVsInside;
-import com.android.frameworktest.util.InternalSelectionView;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.widget.ListView;
-
-public class AdjacentListsWithAdjacentISVsInsideTest extends ActivityInstrumentationTestCase<AdjacentListsWithAdjacentISVsInside> {
-
- private ListView mLeftListView;
- private InternalSelectionView mLeftIsv;
- private InternalSelectionView mLeftMiddleIsv;
- private ListView mRightListView;
- private InternalSelectionView mRightMiddleIsv;
- private InternalSelectionView mRightIsv;
-
- public AdjacentListsWithAdjacentISVsInsideTest() {
- super("com.android.frameworktest", AdjacentListsWithAdjacentISVsInside.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- final AdjacentListsWithAdjacentISVsInside a = getActivity();
- mLeftListView = a.getLeftListView();
- mLeftIsv = a.getLeftIsv();
- mLeftMiddleIsv = a.getLeftMiddleIsv();
- mRightListView = a.getRightListView();
- mRightMiddleIsv = a.getRightMiddleIsv();
- mRightIsv = a.getRightIsv();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertTrue(mLeftListView.hasFocus());
- assertTrue(mLeftIsv.isFocused());
- assertEquals(0, mLeftIsv.getSelectedRow());
- }
-
- /**
- * rockinist test name to date!
- */
- @MediumTest
- public void testFocusedRectAndFocusHintWorkWithinListItemHorizontal() {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertEquals(1, mLeftIsv.getSelectedRow());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_RIGHT);
- assertTrue(mLeftListView.hasFocus());
- assertTrue(mLeftMiddleIsv.isFocused());
- assertEquals("mLeftMiddleIsv.getSelectedRow()", 1, mLeftMiddleIsv.getSelectedRow());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_LEFT);
- assertTrue(mLeftIsv.isFocused());
- assertEquals("mLeftIsv.getSelectedRow()", 1, mLeftIsv.getSelectedRow());
- }
-
- @MediumTest
- public void testFocusTransfersOutsideOfListWhenNoCandidateInsideHorizontal() {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN, KeyEvent.KEYCODE_DPAD_DOWN, KeyEvent.KEYCODE_DPAD_RIGHT);
-
- assertTrue(mLeftListView.hasFocus());
- assertTrue(mLeftMiddleIsv.isFocused());
- assertEquals(2, mLeftMiddleIsv.getSelectedRow());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_RIGHT);
- assertTrue("mRightListView.hasFocus()", mRightListView.hasFocus());
- assertTrue("mRightMiddleIsv.isFocused()", mRightMiddleIsv.isFocused());
- assertEquals("mRightMiddleIsv.getSelectedRow()", 2, mRightMiddleIsv.getSelectedRow());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/focus/ListButtonsDiagonalAcrossItemsTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/focus/ListButtonsDiagonalAcrossItemsTest.java
deleted file mode 100644
index c54add3..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/focus/ListButtonsDiagonalAcrossItemsTest.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.focus;
-
-import com.android.frameworktest.listview.ListButtonsDiagonalAcrossItems;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.FocusFinder;
-import android.view.KeyEvent;
-import android.view.View;
-import android.widget.Button;
-import android.widget.ListView;
-
-/**
- * Test that ListView will override default behavior of focus searching to
- * make sure going right and left doesn't change selection
- */
-public class ListButtonsDiagonalAcrossItemsTest extends ActivityInstrumentationTestCase<ListButtonsDiagonalAcrossItems> {
-
- private Button mLeftButton;
- private Button mCenterButton;
- private Button mRightButton;
- private ListView mListView;
-
- public ListButtonsDiagonalAcrossItemsTest() {
- super("com.android.frameworktest", ListButtonsDiagonalAcrossItems.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mLeftButton = getActivity().getLeftButton();
- mCenterButton = getActivity().getCenterButton();
- mRightButton = getActivity().getRightButton();
-
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- final ListView lv = mListView;
- assertEquals("num children", 3, lv.getChildCount());
-
- assertEquals("selected position", 0, lv.getSelectedItemPosition());
- assertTrue("left button focused", mLeftButton.isFocused());
-
- assertTrue("left left of center",
- mLeftButton.getRight()
- < mCenterButton.getLeft());
-
- assertTrue("center left of right",
- mCenterButton.getRight()
- < mRightButton.getLeft());
-
- assertEquals("focus search right from left button should be center button",
- mCenterButton,
- FocusFinder.getInstance().findNextFocus(mListView, mLeftButton, View.FOCUS_RIGHT));
- assertEquals("focus search right from center button should be right button",
- mRightButton,
- FocusFinder.getInstance().findNextFocus(mListView, mCenterButton, View.FOCUS_RIGHT));
- assertEquals("focus search left from centr button should be left button",
- mLeftButton,
- FocusFinder.getInstance().findNextFocus(mListView, mCenterButton, View.FOCUS_LEFT));
- }
-
- @MediumTest
- public void testGoingRightDoesNotChangeSelection() {
- sendKeys(KeyEvent.KEYCODE_DPAD_RIGHT);
-
- assertEquals("selected position shouldn't have changed",
- 0,
- mListView.getSelectedItemPosition());
- assertTrue("left should still be focused", mLeftButton.isFocused());
- }
-
- @MediumTest
- public void testGoingLeftDoesNotChangeSelection() {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertEquals("list view postion", 1, mListView.getSelectedItemPosition());
- assertTrue("mCenterButton.isFocused()", mCenterButton.isFocused());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_LEFT);
- assertEquals("selected position shouldn't have changed",
- 1,
- mListView.getSelectedItemPosition());
- assertTrue("center should still be focused", mCenterButton.isFocused());
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/focus/ListHorizontalFocusWithinItemWinsTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/focus/ListHorizontalFocusWithinItemWinsTest.java
deleted file mode 100644
index 35f9b06..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/focus/ListHorizontalFocusWithinItemWinsTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.focus;
-
-import com.android.frameworktest.listview.ListHorizontalFocusWithinItemWins;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.FocusFinder;
-import android.view.KeyEvent;
-import android.view.View;
-import android.widget.Button;
-import android.widget.ListView;
-
-public class ListHorizontalFocusWithinItemWinsTest extends ActivityInstrumentationTestCase<ListHorizontalFocusWithinItemWins> {
-
- private ListView mListView;
- private Button mTopLeftButton;
- private Button mTopRightButton;
- private Button mBottomMiddleButton;
-
- public ListHorizontalFocusWithinItemWinsTest() {
- super("com.android.frameworktest", ListHorizontalFocusWithinItemWins.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mListView = getActivity().getListView();
- mTopLeftButton = getActivity().getTopLeftButton();
- mTopRightButton = getActivity().getTopRightButton();
- mBottomMiddleButton = getActivity().getBottomMiddleButton();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertEquals("list position", 0, mListView.getSelectedItemPosition());
- assertTrue("mTopLeftButton.isFocused()", mTopLeftButton.isFocused());
- assertEquals("global focus search to right from top left is bottom middle",
- mBottomMiddleButton,
- FocusFinder.getInstance().findNextFocus(mListView, mTopLeftButton, View.FOCUS_RIGHT));
- assertEquals("global focus search to left from top right is bottom middle",
- mBottomMiddleButton,
- FocusFinder.getInstance().findNextFocus(mListView, mTopRightButton, View.FOCUS_LEFT));
- }
-
- @MediumTest
- public void testOptionWithinItemTrumpsGlobal() {
- sendKeys(KeyEvent.KEYCODE_DPAD_RIGHT);
-
- assertEquals("list position", 0, mListView.getSelectedItemPosition());
- assertTrue("mTopRightButton.isFocused()", mTopRightButton.isFocused());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_LEFT);
- assertEquals("list position", 0, mListView.getSelectedItemPosition());
- assertTrue("mTopLeftButton.isFocused()", mTopLeftButton.isFocused());
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/focus/ListWithEditTextHeaderTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/focus/ListWithEditTextHeaderTest.java
deleted file mode 100644
index dea689f..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/focus/ListWithEditTextHeaderTest.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.focus;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.FlakyTest;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.TouchUtils;
-import android.view.KeyEvent;
-import android.widget.AbsListView;
-import android.widget.ListView;
-import com.android.frameworktest.listview.ListWithEditTextHeader;
-
-public class ListWithEditTextHeaderTest extends ActivityInstrumentationTestCase<ListWithEditTextHeader> {
- private ListView mListView;
-
- public ListWithEditTextHeaderTest() {
- super("com.android.frameworktest", ListWithEditTextHeader.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertTrue("listview.getItemsCanFocus()", mListView.getItemsCanFocus());
- assertFalse("out of touch-mode", mListView.isInTouchMode());
- assertEquals("header view count", 1, mListView.getHeaderViewsCount());
- assertTrue("header has focus", mListView.getChildAt(0).isFocused());
- }
-
- @FlakyTest(tolerance=2)
- @LargeTest
- public void testClickingHeaderKeepsFocus() {
- TouchUtils.clickView(this, mListView.getChildAt(0));
- assertTrue("header has focus", mListView.getChildAt(0).isFocused());
- assertEquals("nothing selected", AbsListView.INVALID_POSITION, mListView.getSelectedItemPosition());
- }
-
- @LargeTest
- public void testClickingHeaderWhenOtherItemHasFocusGivesHeaderFocus() {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertEquals("selected position", 1, mListView.getSelectedItemPosition());
- TouchUtils.clickView(this, mListView.getChildAt(0));
- assertTrue("header has focus", mListView.getChildAt(0).isFocused());
- assertEquals("nothing selected", AbsListView.INVALID_POSITION, mListView.getSelectedItemPosition());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListGetSelectedViewTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListGetSelectedViewTest.java
deleted file mode 100644
index 3a75f93..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListGetSelectedViewTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.touch;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.TouchUtils;
-import android.widget.ListView;
-import android.view.View;
-
-import com.android.frameworktest.listview.ListGetSelectedView;
-
-/**
- * This test is made to check that getSelectedView() will return
- * null in touch mode.
- */
-public class ListGetSelectedViewTest extends ActivityInstrumentationTestCase<ListGetSelectedView> {
- private ListGetSelectedView mActivity;
- private ListView mListView;
-
- public ListGetSelectedViewTest() {
- super("com.android.frameworktest", ListGetSelectedView.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mListView);
-
- assertEquals(0, mListView.getSelectedItemPosition());
- }
-
- @LargeTest
- public void testGetSelectedView() {
- View last = mListView.getChildAt(1);
- TouchUtils.clickView(this, last);
-
- assertNull(mListView.getSelectedItem());
- assertNull(mListView.getSelectedView());
- assertEquals(-1, mListView.getSelectedItemPosition());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListOfTouchablesTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListOfTouchablesTest.java
deleted file mode 100644
index f8b384d..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListOfTouchablesTest.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.touch;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.Gravity;
-import android.view.View;
-import android.view.ViewConfiguration;
-import android.widget.ListView;
-
-import com.android.frameworktest.listview.ListOfTouchables;
-import android.test.TouchUtils;
-
-/**
- * Touch tests for a list where all of the items fit on the screen.
- */
-public class ListOfTouchablesTest extends ActivityInstrumentationTestCase<ListOfTouchables> {
- private ListOfTouchables mActivity;
- private ListView mListView;
-
- public ListOfTouchablesTest() {
- super("com.android.frameworktest", ListOfTouchables.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mListView);
- }
-
- @LargeTest
- public void testShortScroll() {
- View firstChild = mListView.getChildAt(0);
- View lastChild = mListView.getChildAt(mListView.getChildCount() - 1);
-
- int firstTop = firstChild.getTop();
-
- TouchUtils.dragViewBy(this, lastChild, Gravity.TOP | Gravity.LEFT,
- 0, -(ViewConfiguration.getTouchSlop() + 1 + 10));
-
- View newFirstChild = mListView.getChildAt(0);
-
- assertEquals("View scrolled too early", firstTop, newFirstChild.getTop() + 10);
- assertEquals("Wrong view in first position", 0, newFirstChild.getId());
- }
-
- @LargeTest
- public void testLongScroll() {
- View lastChild = mListView.getChildAt(mListView.getChildCount() - 1);
-
- int lastTop = lastChild.getTop();
-
- int distance = TouchUtils.dragViewToY(this, lastChild,
- Gravity.TOP | Gravity.LEFT, mListView.getTop());
-
- assertEquals("View scrolled to wrong position",
- lastTop - (distance - ViewConfiguration.getTouchSlop() - 1), lastChild.getTop());
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListSetSelectionTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListSetSelectionTest.java
deleted file mode 100644
index c3d7264..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListSetSelectionTest.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.touch;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.TouchUtils;
-import android.view.View;
-import android.widget.ListView;
-
-import com.android.frameworktest.listview.ListSimple;
-
-/**
- * Tests setting the selection in touch mode
- */
-public class ListSetSelectionTest extends ActivityInstrumentationTestCase<ListSimple> {
- private ListSimple mActivity;
- private ListView mListView;
-
- public ListSetSelectionTest() {
- super("com.android.frameworktest", ListSimple.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mListView);
- }
-
- @LargeTest
- public void testSetSelection() {
- TouchUtils.dragQuarterScreenDown(this);
- TouchUtils.dragQuarterScreenUp(this);
-
- // Nothing should be selected
- assertEquals("Selection still available after touch", -1,
- mListView.getSelectedItemPosition());
-
- final int targetPosition = mListView.getAdapter().getCount() / 2;
-
- mActivity.runOnUiThread(new Runnable() {
- public void run() {
- mListView.setSelection(targetPosition);
- }
- });
- getInstrumentation().waitForIdleSync();
-
- boolean found = false;
- int childCount = mListView.getChildCount();
- for (int i=0; i<childCount; i++) {
- View child = mListView.getChildAt(i);
- if (child.getId() == targetPosition) {
- found = true;
- break;
- }
- }
- assertTrue("Selected item not visible in list", found);
- }
-
- @LargeTest
- public void testSetSelectionFromTop() {
- TouchUtils.dragQuarterScreenDown(this);
- TouchUtils.dragQuarterScreenUp(this);
-
- // Nothing should be selected
- assertEquals("Selection still available after touch", -1,
- mListView.getSelectedItemPosition());
-
- final int targetPosition = mListView.getAdapter().getCount() / 2;
-
- mActivity.runOnUiThread(new Runnable() {
- public void run() {
- mListView.setSelectionFromTop(targetPosition, 100);
- }
- });
- getInstrumentation().waitForIdleSync();
-
- View target = null;
- boolean found = false;
- int childCount = mListView.getChildCount();
- for (int i=0; i<childCount; i++) {
- View child = mListView.getChildAt(i);
- if (child.getId() == targetPosition) {
- target = child;
- found = true;
- break;
- }
- }
- assertTrue("Selected item not visible in list", found);
-
- if (target != null) {
- assertEquals("Selection not at correct location", 100 + mListView.getPaddingTop(),
- target.getTop());
- }
- }
-
- @LargeTest
- public void testSetSelection0() {
- TouchUtils.dragQuarterScreenDown(this);
- TouchUtils.dragQuarterScreenDown(this);
- TouchUtils.dragQuarterScreenDown(this);
-
- // Nothing should be selected
- assertEquals("Selection still available after touch", -1,
- mListView.getSelectedItemPosition());
-
- mActivity.runOnUiThread(new Runnable() {
- public void run() {
- mListView.setSelection(0);
- }
- });
- getInstrumentation().waitForIdleSync();
-
- boolean found = false;
- int childCount = mListView.getChildCount();
- for (int i=0; i<childCount; i++) {
- View child = mListView.getChildAt(i);
- if (child.getId() == 0 && i == 0) {
- found = true;
- break;
- }
- }
- assertTrue("Selected item not visible in list", found);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListTouchBottomGravityManyTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListTouchBottomGravityManyTest.java
deleted file mode 100644
index d271564..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListTouchBottomGravityManyTest.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.touch;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.TouchUtils;
-import android.view.Gravity;
-import android.view.View;
-import android.view.ViewConfiguration;
-import android.widget.ListView;
-
-import com.android.frameworktest.listview.ListBottomGravityMany;
-
-/**
- * Touch tests for a list where all of the items do not fit on the screen, and the list
- * stacks from the bottom.
- */
-public class ListTouchBottomGravityManyTest extends ActivityInstrumentationTestCase<ListBottomGravityMany> {
- private ListBottomGravityMany mActivity;
- private ListView mListView;
-
- public ListTouchBottomGravityManyTest() {
- super("com.android.frameworktest", ListBottomGravityMany.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mListView);
-
- // Last item should be selected
- assertEquals(mListView.getAdapter().getCount() - 1, mListView.getSelectedItemPosition());
- }
-
- @LargeTest
- public void testPullDown() {
- int originalCount = mListView.getChildCount();
-
- TouchUtils.scrollToTop(this, mListView);
-
- // Nothing should be selected
- assertEquals("Selection still available after touch", -1,
- mListView.getSelectedItemPosition());
-
- View firstChild = mListView.getChildAt(0);
-
- assertEquals("Item zero not the first child in the list", 0, firstChild.getId());
-
- assertEquals("Item zero not at the top of the list", mListView.getListPaddingTop(),
- firstChild.getTop());
-
- assertTrue(String.format("Too many children created: %d expected no more than %d",
- mListView.getChildCount(), originalCount + 1),
- mListView.getChildCount() <= originalCount + 1);
- }
-
- @MediumTest
- public void testPushUp() {
- TouchUtils.scrollToBottom(this, mListView);
-
- // Nothing should be selected
- assertEquals("Selection still available after touch", -1,
- mListView.getSelectedItemPosition());
-
- View lastChild = mListView.getChildAt(mListView.getChildCount() - 1);
-
- assertEquals("List is not scrolled to the bottom", mListView.getAdapter().getCount() - 1,
- lastChild.getId());
-
- assertEquals("Last item is not touching the bottom edge",
- mListView.getHeight() - mListView.getListPaddingBottom(), lastChild.getBottom());
- }
-
- @MediumTest
- public void testNoScroll() {
- View firstChild = mListView.getChildAt(0);
- View lastChild = mListView.getChildAt(mListView.getChildCount() - 1);
-
- int lastTop = lastChild.getTop();
-
- TouchUtils.dragViewBy(this, firstChild, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL,
- 0, ViewConfiguration.getTouchSlop());
-
- View newLastChild = mListView.getChildAt(mListView.getChildCount() - 1);
-
- assertEquals("View scrolled too early", lastTop, newLastChild.getTop());
- assertEquals("Wrong view in last position", mListView.getAdapter().getCount() - 1,
- newLastChild.getId());
- }
-
- @LargeTest
- public void testShortScroll() {
- View firstChild = mListView.getChildAt(0);
- if (firstChild.getTop() < this.mListView.getListPaddingTop()) {
- firstChild = mListView.getChildAt(1);
- }
-
- View lastChild = mListView.getChildAt(mListView.getChildCount() - 1);
-
- int lastTop = lastChild.getTop();
-
- TouchUtils.dragViewBy(this, firstChild, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL,
- 0, ViewConfiguration.getTouchSlop() + 1 + 10);
-
- View newLastChild = mListView.getChildAt(mListView.getChildCount() - 1);
-
- assertEquals("View scrolled to wrong position", lastTop, newLastChild.getTop() - 10);
- assertEquals("Wrong view in last position", mListView.getAdapter().getCount() - 1,
- newLastChild.getId());
- }
-
- @LargeTest
- public void testLongScroll() {
- View firstChild = mListView.getChildAt(0);
- if (firstChild.getTop() < mListView.getListPaddingTop()) {
- firstChild = mListView.getChildAt(1);
- }
-
- int firstTop = firstChild.getTop();
-
- int distance = TouchUtils.dragViewBy(this, firstChild,
- Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0,
- (int)(mActivity.getWindowManager().getDefaultDisplay().getHeight() * 0.75f));
-
- assertEquals("View scrolled to wrong position", firstTop
- + (distance - ViewConfiguration.getTouchSlop() - 1), firstChild.getTop());
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListTouchBottomGravityTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListTouchBottomGravityTest.java
deleted file mode 100644
index 78d39fb..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListTouchBottomGravityTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.touch;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.TouchUtils;
-import android.view.View;
-import android.widget.ListView;
-
-import com.android.frameworktest.listview.ListBottomGravity;
-
-/**
- * Touch tests for a list where all of the items fit on the screen, and the list
- * stacks from the bottom.
- */
-public class ListTouchBottomGravityTest extends ActivityInstrumentationTestCase<ListBottomGravity> {
- private ListBottomGravity mActivity;
- private ListView mListView;
-
- public ListTouchBottomGravityTest() {
- super("com.android.frameworktest", ListBottomGravity.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mListView);
-
- // First item should be selected
- assertEquals(mListView.getAdapter().getCount() - 1, mListView.getSelectedItemPosition());
- }
-
- @MediumTest
- public void testPullDown() {
- View firstChild = mListView.getChildAt(0);
-
- TouchUtils.dragViewToBottom(this, firstChild);
-
- View lastChild = mListView.getChildAt(mListView.getChildCount() - 1);
-
- // Nothing should be selected
- assertEquals("Selection still available after touch", -1,
- mListView.getSelectedItemPosition());
-
- assertEquals("List is not scrolled to the bottom", mListView.getAdapter().getCount() - 1,
- lastChild.getId());
-
- assertEquals("Last item is not touching the bottom edge",
- mListView.getHeight() - mListView.getListPaddingBottom(), lastChild.getBottom());
- }
-
- @MediumTest
- public void testPushUp() {
- View lastChild = mListView.getChildAt(mListView.getChildCount() - 1);
-
- TouchUtils.dragViewToTop(this, lastChild);
-
- lastChild = mListView.getChildAt(mListView.getChildCount() - 1);
-
- // Nothing should be selected
- assertEquals("Selection still available after touch", -1,
- mListView.getSelectedItemPosition());
-
- assertEquals("List is not scrolled to the bottom", mListView.getAdapter().getCount() - 1,
- lastChild.getId());
-
- assertEquals("Last item is not touching the bottom edge",
- mListView.getHeight() - mListView.getListPaddingBottom(), lastChild.getBottom());
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListTouchManyTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListTouchManyTest.java
deleted file mode 100644
index ef085f8..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListTouchManyTest.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.touch;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.TouchUtils;
-import android.view.Gravity;
-import android.view.View;
-import android.view.ViewConfiguration;
-import android.widget.ListView;
-
-import com.android.frameworktest.listview.ListTopGravityMany;
-
-/**
- * Touch tests for a list where all of the items do not fit on the screen.
- */
-public class ListTouchManyTest extends ActivityInstrumentationTestCase<ListTopGravityMany> {
- private ListTopGravityMany mActivity;
- private ListView mListView;
-
- public ListTouchManyTest() {
- super("com.android.frameworktest", ListTopGravityMany.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mListView);
-
- // First item should be selected
- assertEquals(0, mListView.getSelectedItemPosition());
- }
-
- @MediumTest
- public void testPullDown() {
- TouchUtils.scrollToTop(this, mListView);
-
- // Nothing should be selected
- assertEquals("Selection still available after touch", -1,
- mListView.getSelectedItemPosition());
-
- View firstChild = mListView.getChildAt(0);
-
- assertEquals("Item zero not the first child in the list", 0, firstChild.getId());
-
- assertEquals("Item zero not at the top of the list", mListView.getListPaddingTop(),
- firstChild.getTop());
- }
-
- @LargeTest
- public void testPushUp() {
- int originalCount = mListView.getChildCount();
-
- TouchUtils.scrollToBottom(this, mListView);
-
- // Nothing should be selected
- assertEquals("Selection still available after touch", -1,
- mListView.getSelectedItemPosition());
-
- View lastChild = mListView.getChildAt(mListView.getChildCount() - 1);
-
- assertEquals("List is not scrolled to the bottom", mListView.getAdapter().getCount() - 1,
- lastChild.getId());
-
- assertEquals("Last item is not touching the bottom edge",
- mListView.getHeight() - mListView.getListPaddingBottom(), lastChild.getBottom());
-
- assertTrue(String.format("Too many children created: %d expected no more than %d",
- mListView.getChildCount(), originalCount + 1),
- mListView.getChildCount() <= originalCount + 1);
- }
-
- @LargeTest
- public void testPress() {
- int i;
- int count = mListView.getChildCount();
- mActivity.setClickedPosition(-1);
- mActivity.setLongClickedPosition(-1);
-
- for (i = 0; i < count; i++) {
- View child = mListView.getChildAt(i);
- if ((child.getTop() >= mListView.getListPaddingTop())
- && (child.getBottom() <=
- mListView.getHeight() - mListView.getListPaddingBottom())) {
- TouchUtils.clickView(this, child);
-
- assertEquals("Incorrect view position reported being clicked", i,
- mActivity.getClickedPosition());
- assertEquals("View falsely reported being long clicked", -1,
- mActivity.getLongClickedPosition());
- try {
- Thread.sleep((long)(ViewConfiguration.getLongPressTimeout() * 1.25f));
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
- }
-
- @LargeTest
- public void testLongPress() {
- int i;
- int count = mListView.getChildCount();
- mActivity.enableLongPress();
- mActivity.setClickedPosition(-1);
- mActivity.setLongClickedPosition(-1);
-
- for (i = 0; i < count; i++) {
- View child = mListView.getChildAt(i);
- if ((child.getTop() >= mListView.getListPaddingTop())
- && (child.getBottom() <=
- mListView.getHeight() - mListView.getListPaddingBottom())) {
- TouchUtils.longClickView(this, child);
- assertEquals("Incorrect view position reported being long clicked", i,
- mActivity.getLongClickedPosition());
- assertEquals("View falsely reported being clicked", -1,
- mActivity.getClickedPosition());
- }
- }
- }
-
- @MediumTest
- public void testNoScroll() {
- View firstChild = mListView.getChildAt(0);
- View lastChild = mListView.getChildAt(mListView.getChildCount() - 1);
-
- int firstTop = firstChild.getTop();
-
- TouchUtils.dragViewBy(this, lastChild, Gravity.TOP | Gravity.LEFT,
- 0, -(ViewConfiguration.getTouchSlop()));
-
- View newFirstChild = mListView.getChildAt(0);
-
- assertEquals("View scrolled too early", firstTop, newFirstChild.getTop());
- assertEquals("Wrong view in first position", 0, newFirstChild.getId());
- }
-
- @LargeTest
- public void testShortScroll() {
- View firstChild = mListView.getChildAt(0);
- View lastChild = mListView.getChildAt(mListView.getChildCount() - 1);
-
- int firstTop = firstChild.getTop();
-
- TouchUtils.dragViewBy(this, lastChild, Gravity.TOP | Gravity.LEFT,
- 0, -(ViewConfiguration.getTouchSlop() + 1 + 10));
-
- View newFirstChild = mListView.getChildAt(0);
-
- assertEquals("View scrolled too early", firstTop, newFirstChild.getTop() + 10);
- assertEquals("Wrong view in first position", 0, newFirstChild.getId());
- }
-
- @LargeTest
- public void testLongScroll() {
- View lastChild = mListView.getChildAt(mListView.getChildCount() - 1);
-
- int lastTop = lastChild.getTop();
-
- int distance = TouchUtils.dragViewToY(this, lastChild,
- Gravity.TOP | Gravity.LEFT, mListView.getTop());
-
- assertEquals("View scrolled to wrong position",
- lastTop - (distance - ViewConfiguration.getTouchSlop() - 1), lastChild.getTop());
- }
-
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListTouchTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListTouchTest.java
deleted file mode 100644
index 4e5c423..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/listview/touch/ListTouchTest.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.listview.touch;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.TouchUtils;
-import android.view.View;
-import android.widget.ListView;
-
-import com.android.frameworktest.listview.ListTopGravity;
-
-/**
- * Touch tests for a list where all of the items fit on the screen.
- */
-public class ListTouchTest extends ActivityInstrumentationTestCase<ListTopGravity> {
- private ListTopGravity mActivity;
- private ListView mListView;
-
- public ListTouchTest() {
- super("com.android.frameworktest", ListTopGravity.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mListView = getActivity().getListView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertNotNull(mListView);
-
- // First item should be selected
- assertEquals(0, mListView.getSelectedItemPosition());
- }
-
- @MediumTest
- public void testPullDown() {
- View firstChild = mListView.getChildAt(0);
-
- TouchUtils.dragViewToBottom(this, firstChild);
-
- // Nothing should be selected
- assertEquals("Selection still available after touch", -1,
- mListView.getSelectedItemPosition());
-
- firstChild = mListView.getChildAt(0);
-
- assertEquals("Item zero not the first child in the list", 0, firstChild.getId());
-
- assertEquals("Item zero not at the top of the list", mListView.getListPaddingTop(),
- firstChild.getTop());
- }
-
- @MediumTest
- public void testPushUp() {
- View lastChild = mListView.getChildAt(mListView.getChildCount() - 1);
-
- TouchUtils.dragViewToTop(this, lastChild);
-
- // Nothing should be selected
- assertEquals("Selection still available after touch", -1,
- mListView.getSelectedItemPosition());
-
- View firstChild = mListView.getChildAt(0);
-
- assertEquals("Item zero not the first child in the list", 0, firstChild.getId());
-
- assertEquals("Item zero not at the top of the list", mListView.getListPaddingTop(),
- firstChild.getTop());
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/menus/MenuLayoutLandscapeTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/menus/MenuLayoutLandscapeTest.java
deleted file mode 100644
index 38cb6a1..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/menus/MenuLayoutLandscapeTest.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/**
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy
- * of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations
- * under the License.
- */
-
-package com.android.frameworktest.menus;
-
-import com.android.frameworktest.util.KeyUtils;
-import com.android.internal.view.menu.IconMenuView;
-import com.android.internal.view.menu.MenuBuilder;
-
-import android.content.pm.ActivityInfo;
-import android.test.ActivityInstrumentationTestCase;
-
-public class MenuLayoutLandscapeTest extends ActivityInstrumentationTestCase<MenuLayoutLandscape> {
- private static final String LONG_TITLE = "Really really really really really really really really really really long title";
- private static final String SHORT_TITLE = "Item";
-
- private MenuLayout mActivity;
-
- public MenuLayoutLandscapeTest() {
- super("com.android.frameworktest", MenuLayoutLandscape.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mActivity = getActivity();
- }
-
- public void testPreconditions() {
- assertNotNull(mActivity);
- }
-
- private void toggleMenu() {
- getInstrumentation().waitForIdleSync();
- KeyUtils.tapMenuKey(this);
- getInstrumentation().waitForIdleSync();
- }
-
- /**
- * Asserts the layout of the menu.
- *
- * @param expectedLayout The number of parameters is the number of rows, and
- * each parameter is how many items on that row (the first
- * parameter is the top-most row).
- */
- private void assertLayout(Integer... expectedLayout) {
- toggleMenu();
-
- IconMenuView iconMenuView = ((IconMenuView) mActivity.getMenuView(MenuBuilder.TYPE_ICON));
- int[] layout = iconMenuView.getLayout();
- int layoutNumRows = iconMenuView.getLayoutNumRows();
-
- int expectedRows = expectedLayout.length;
- assertEquals("Row mismatch", expectedRows, layoutNumRows);
-
- for (int row = 0; row < expectedRows; row++) {
- assertEquals("Col mismatch on row " + row, expectedLayout[row].intValue(),
- layout[row]);
- }
- }
-
- public void test1ShortItem() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(1)
- .setItemTitle(0, SHORT_TITLE));
- assertLayout(1);
- }
-
- public void test1LongItem() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(1)
- .setItemTitle(0, LONG_TITLE));
- assertLayout(1);
- }
-
- public void test2LongItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(2)
- .setItemTitle(0, LONG_TITLE)
- .setItemTitle(1, LONG_TITLE));
- assertLayout(1, 1);
- }
-
- public void test2ShortItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(2)
- .setItemTitle(0, SHORT_TITLE)
- .setItemTitle(1, SHORT_TITLE));
- assertLayout(2);
- }
-
- public void test3ShortItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(3)
- .setItemTitle(0, SHORT_TITLE)
- .setItemTitle(1, SHORT_TITLE)
- .setItemTitle(2, SHORT_TITLE));
- assertLayout(3);
- }
-
- public void test3VarietyItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(3)
- .setItemTitle(0, SHORT_TITLE)
- .setItemTitle(1, LONG_TITLE)
- .setItemTitle(2, SHORT_TITLE));
- assertLayout(1, 2);
- }
-
- public void test3VarietyItems2() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(3)
- .setItemTitle(0, LONG_TITLE)
- .setItemTitle(1, SHORT_TITLE)
- .setItemTitle(2, SHORT_TITLE));
- assertLayout(1, 2);
- }
-
- public void test4LongItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(4)
- .setItemTitle(0, LONG_TITLE)
- .setItemTitle(1, LONG_TITLE)
- .setItemTitle(2, LONG_TITLE)
- .setItemTitle(3, LONG_TITLE));
- assertLayout(2, 2);
- }
-
- public void test4ShortItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(4)
- .setItemTitle(0, SHORT_TITLE)
- .setItemTitle(1, SHORT_TITLE)
- .setItemTitle(2, SHORT_TITLE)
- .setItemTitle(3, SHORT_TITLE));
- assertLayout(4);
- }
-
- public void test4VarietyItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(4)
- .setItemTitle(0, LONG_TITLE)
- .setItemTitle(1, SHORT_TITLE)
- .setItemTitle(2, SHORT_TITLE)
- .setItemTitle(3, SHORT_TITLE));
- assertLayout(2, 2);
- }
-
- public void test5ShortItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(5)
- .setItemTitle(0, SHORT_TITLE)
- .setItemTitle(1, SHORT_TITLE)
- .setItemTitle(2, SHORT_TITLE)
- .setItemTitle(3, SHORT_TITLE)
- .setItemTitle(4, SHORT_TITLE));
- assertLayout(5);
- }
-
- public void test5LongItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(5)
- .setItemTitle(0, LONG_TITLE)
- .setItemTitle(1, LONG_TITLE)
- .setItemTitle(2, LONG_TITLE)
- .setItemTitle(3, LONG_TITLE)
- .setItemTitle(4, LONG_TITLE));
- assertLayout(2, 3);
- }
-
- public void test5VarietyItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(5)
- .setItemTitle(0, LONG_TITLE)
- .setItemTitle(1, SHORT_TITLE)
- .setItemTitle(2, LONG_TITLE)
- .setItemTitle(3, SHORT_TITLE)
- .setItemTitle(4, LONG_TITLE));
- assertLayout(2, 3);
- }
-
- public void test6LongItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(6)
- .setItemTitle(0, LONG_TITLE)
- .setItemTitle(1, LONG_TITLE)
- .setItemTitle(2, LONG_TITLE)
- .setItemTitle(3, LONG_TITLE)
- .setItemTitle(4, LONG_TITLE)
- .setItemTitle(5, LONG_TITLE));
- assertLayout(3, 3);
- }
-
- public void test6ShortItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(6)
- .setItemTitle(0, SHORT_TITLE)
- .setItemTitle(1, SHORT_TITLE)
- .setItemTitle(2, SHORT_TITLE)
- .setItemTitle(3, SHORT_TITLE)
- .setItemTitle(4, SHORT_TITLE)
- .setItemTitle(5, SHORT_TITLE));
- assertLayout(6);
- }
-
- public void test6VarietyItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(6)
- .setItemTitle(0, SHORT_TITLE)
- .setItemTitle(1, LONG_TITLE)
- .setItemTitle(2, SHORT_TITLE)
- .setItemTitle(3, LONG_TITLE)
- .setItemTitle(4, SHORT_TITLE)
- .setItemTitle(5, SHORT_TITLE));
- assertLayout(3, 3);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/menus/MenuLayoutPortraitTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/menus/MenuLayoutPortraitTest.java
deleted file mode 100644
index a04ec62..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/menus/MenuLayoutPortraitTest.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/**
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy
- * of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations
- * under the License.
- */
-
-package com.android.frameworktest.menus;
-
-import com.android.frameworktest.util.KeyUtils;
-import com.android.internal.view.menu.IconMenuView;
-import com.android.internal.view.menu.MenuBuilder;
-
-import android.content.pm.ActivityInfo;
-import android.test.ActivityInstrumentationTestCase;
-
-public class MenuLayoutPortraitTest extends ActivityInstrumentationTestCase<MenuLayoutPortrait> {
- private static final String LONG_TITLE = "Really really really really really really really really really really long title";
- private static final String SHORT_TITLE = "Item";
-
- private MenuLayout mActivity;
-
- public MenuLayoutPortraitTest() {
- super("com.android.frameworktest", MenuLayoutPortrait.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mActivity = getActivity();
- }
-
- public void testPreconditions() {
- assertNotNull(mActivity);
- }
-
- private void toggleMenu() {
- getInstrumentation().waitForIdleSync();
- KeyUtils.tapMenuKey(this);
- getInstrumentation().waitForIdleSync();
- }
-
- /**
- * Asserts the layout of the menu.
- *
- * @param expectedLayout The number of parameters is the number of rows, and
- * each parameter is how many items on that row.
- */
- private void assertLayout(Integer... expectedLayout) {
- toggleMenu();
-
- IconMenuView iconMenuView = ((IconMenuView) mActivity.getMenuView(MenuBuilder.TYPE_ICON));
- int[] layout = iconMenuView.getLayout();
- int layoutNumRows = iconMenuView.getLayoutNumRows();
-
- int expectedRows = expectedLayout.length;
- assertEquals("Row mismatch", expectedRows, layoutNumRows);
-
- for (int row = 0; row < expectedRows; row++) {
- assertEquals("Col mismatch on row " + row, expectedLayout[row].intValue(),
- layout[row]);
- }
- }
-
- public void test1ShortItem() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(1)
- .setItemTitle(0, SHORT_TITLE));
- assertLayout(1);
- }
-
- public void test1LongItem() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(1)
- .setItemTitle(0, LONG_TITLE));
- assertLayout(1);
- }
-
- public void test2LongItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(2)
- .setItemTitle(0, LONG_TITLE)
- .setItemTitle(1, LONG_TITLE));
- assertLayout(1, 1);
- }
-
- public void test2ShortItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(2)
- .setItemTitle(0, SHORT_TITLE)
- .setItemTitle(1, SHORT_TITLE));
- assertLayout(2);
- }
-
- public void test3ShortItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(3)
- .setItemTitle(0, SHORT_TITLE)
- .setItemTitle(1, SHORT_TITLE)
- .setItemTitle(2, SHORT_TITLE));
- assertLayout(3);
- }
-
- public void test3VarietyItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(3)
- .setItemTitle(0, SHORT_TITLE)
- .setItemTitle(1, LONG_TITLE)
- .setItemTitle(2, SHORT_TITLE));
- // We maintain the order added, so there must be 3 rows
- assertLayout(1, 1, 1);
- }
-
- public void test3VarietyItems2() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(3)
- .setItemTitle(0, LONG_TITLE)
- .setItemTitle(1, SHORT_TITLE)
- .setItemTitle(2, SHORT_TITLE));
- // The long can fit in first row, and two shorts in second
- assertLayout(1, 2);
- }
-
- public void test4LongItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(4)
- .setItemTitle(0, LONG_TITLE)
- .setItemTitle(1, LONG_TITLE)
- .setItemTitle(2, LONG_TITLE)
- .setItemTitle(3, LONG_TITLE));
- assertLayout(1, 1, 2);
- }
-
- public void test4ShortItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(4)
- .setItemTitle(0, SHORT_TITLE)
- .setItemTitle(1, SHORT_TITLE)
- .setItemTitle(2, SHORT_TITLE)
- .setItemTitle(3, SHORT_TITLE));
- assertLayout(2, 2);
- }
-
- public void test4VarietyItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(4)
- .setItemTitle(0, LONG_TITLE)
- .setItemTitle(1, SHORT_TITLE)
- .setItemTitle(2, SHORT_TITLE)
- .setItemTitle(3, SHORT_TITLE));
- assertLayout(1, 1, 2);
- }
-
- public void test5ShortItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(5)
- .setItemTitle(0, SHORT_TITLE)
- .setItemTitle(1, SHORT_TITLE)
- .setItemTitle(2, SHORT_TITLE)
- .setItemTitle(3, SHORT_TITLE)
- .setItemTitle(4, SHORT_TITLE));
- assertLayout(2, 3);
- }
-
- public void test5LongItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(5)
- .setItemTitle(0, LONG_TITLE)
- .setItemTitle(1, LONG_TITLE)
- .setItemTitle(2, LONG_TITLE)
- .setItemTitle(3, LONG_TITLE)
- .setItemTitle(4, LONG_TITLE));
- assertLayout(1, 2, 2);
- }
-
- public void test5VarietyItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(5)
- .setItemTitle(0, LONG_TITLE)
- .setItemTitle(1, SHORT_TITLE)
- .setItemTitle(2, LONG_TITLE)
- .setItemTitle(3, SHORT_TITLE)
- .setItemTitle(4, LONG_TITLE));
- assertLayout(1, 2, 2);
- }
-
- public void test6LongItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(6)
- .setItemTitle(0, LONG_TITLE)
- .setItemTitle(1, LONG_TITLE)
- .setItemTitle(2, LONG_TITLE)
- .setItemTitle(3, LONG_TITLE)
- .setItemTitle(4, LONG_TITLE)
- .setItemTitle(5, LONG_TITLE));
- assertLayout(2, 2, 2);
- }
-
- public void test6ShortItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(6)
- .setItemTitle(0, SHORT_TITLE)
- .setItemTitle(1, SHORT_TITLE)
- .setItemTitle(2, SHORT_TITLE)
- .setItemTitle(3, SHORT_TITLE)
- .setItemTitle(4, SHORT_TITLE)
- .setItemTitle(5, SHORT_TITLE));
- assertLayout(3, 3);
- }
-
- public void test6VarietyItems() {
- mActivity.setParams(new MenuScenario.Params()
- .setNumItems(6)
- .setItemTitle(0, SHORT_TITLE)
- .setItemTitle(1, LONG_TITLE)
- .setItemTitle(2, SHORT_TITLE)
- .setItemTitle(3, LONG_TITLE)
- .setItemTitle(4, SHORT_TITLE)
- .setItemTitle(5, SHORT_TITLE));
- assertLayout(2, 2, 2);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/menus/MenuWith1ItemTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/menus/MenuWith1ItemTest.java
deleted file mode 100644
index 286533c..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/menus/MenuWith1ItemTest.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.menus;
-
-import com.android.frameworktest.menus.MenuWith1Item;
-import com.android.frameworktest.util.KeyUtils;
-import com.android.internal.view.menu.MenuBuilder;
-
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.TouchUtils;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.view.KeyEvent;
-import android.view.View;
-
-public class MenuWith1ItemTest extends ActivityInstrumentationTestCase<MenuWith1Item> {
- private MenuWith1Item mActivity;
-
- public MenuWith1ItemTest() {
- super("com.android.frameworktest", MenuWith1Item.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mActivity = getActivity();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mActivity);
- assertFalse(mActivity.getButton().isInTouchMode());
- }
-
- @MediumTest
- public void testItemClick() {
-
- // Open menu, click on an item
- KeyUtils.tapMenuKey(this);
- getInstrumentation().waitForIdleSync();
- assertFalse("Item seems to have been clicked before we clicked on it", mActivity
- .wasItemClicked(0));
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
- assertTrue("Item doesn't seem to have registered our click", mActivity.wasItemClicked(0));
- }
-
- @LargeTest
- public void testTouchModeTransfersRemovesFocus() throws Exception {
- // open menu, move around to give it focus
- sendKeys(KeyEvent.KEYCODE_MENU, KeyEvent.KEYCODE_DPAD_LEFT);
- final View menuItem = mActivity.getItemView(MenuBuilder.TYPE_ICON, 0);
- assertTrue("menuItem.isFocused()", menuItem.isFocused());
-
- // close the menu
- sendKeys(KeyEvent.KEYCODE_MENU);
- Thread.sleep(500);
-
- // touch the screen
- TouchUtils.clickView(this, mActivity.getButton());
- assertTrue("should be in touch mode after touching button",
- mActivity.getButton().isInTouchMode());
-
- // open the menu, menu item shouldn't be focused, because we are not
- // in touch mode
- sendKeys(KeyEvent.KEYCODE_MENU);
- assertTrue("menuItem.isInTouchMode()", menuItem.isInTouchMode());
- assertFalse("menuItem.isFocused()", menuItem.isFocused());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/ButtonAboveTallInternalSelectionViewTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/ButtonAboveTallInternalSelectionViewTest.java
deleted file mode 100644
index e4dd2b8..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/ButtonAboveTallInternalSelectionViewTest.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.scroll;
-
-import com.android.frameworktest.scroll.ButtonAboveTallInternalSelectionView;
-import com.android.frameworktest.util.InternalSelectionView;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-
-public class ButtonAboveTallInternalSelectionViewTest extends
- ActivityInstrumentationTestCase<ButtonAboveTallInternalSelectionView> {
-
- public ButtonAboveTallInternalSelectionViewTest() {
- super("com.android.frameworktest", ButtonAboveTallInternalSelectionView.class);
- }
-
- @MediumTest
- public void testPreconditions() {
- assertTrue("expecting the top button to have focus",
- getActivity().getButtonAbove().isFocused());
- assertEquals("scrollview scroll y",
- 0,
- getActivity().getScrollView().getScrollY());
- assertTrue("internal selection view should be taller than screen",
- getActivity().getIsv().getHeight() > getActivity().getScrollView().getHeight());
-
- assertTrue("top of ISV should be on screen",
- getActivity().getIsv().getTop() >
- getActivity().getScrollView().getScrollY());
-
- }
-
- @MediumTest
- public void testMovingFocusDownToItemTallerThanScreenStillOnScreen() {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- getInstrumentation().waitForIdleSync();
-
- final InternalSelectionView isv = getActivity().getIsv();
- assertTrue("internal selection view should have taken focus",
- isv.isFocused());
- assertEquals("internal selection view selected row",
- 0, isv.getSelectedRow());
- assertTrue("top of ISV should still be on screen",
- getActivity().getIsv().getTop() >
- getActivity().getScrollView().getScrollY());
- }
-
-
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/RequestRectangleVisibleTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/RequestRectangleVisibleTest.java
deleted file mode 100644
index 3eec37b..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/RequestRectangleVisibleTest.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.scroll;
-
-import com.android.frameworktest.scroll.RequestRectangleVisible;
-import com.android.frameworktest.R;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.ViewAsserts;
-import android.widget.Button;
-import android.widget.ScrollView;
-import android.widget.TextView;
-import android.view.View;
-import android.view.KeyEvent;
-
-/**
- * {@link RequestRectangleVisible} is set up to exercise the cases of moving a
- * rectangle that is either off screen or not entirely on the screen onto the screen.
- */
-public class RequestRectangleVisibleTest extends ActivityInstrumentationTestCase<RequestRectangleVisible> {
-
- private ScrollView mScrollView;
-
- private Button mClickToScrollFromAbove;
- private Button mClickToScrollToUpperBlob;
- private TextView mTopBlob;
-
- private View mChildToScrollTo;
-
- private TextView mBottomBlob;
- private Button mClickToScrollToBlobLowerBlob;
- private Button mClickToScrollFromBelow;
-
- public RequestRectangleVisibleTest() {
- super("com.android.frameworktest", RequestRectangleVisible.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- RequestRectangleVisible a = getActivity();
-
- mScrollView = (ScrollView) a.findViewById(R.id.scrollView);
- mClickToScrollFromAbove = (Button) a.findViewById(R.id.scrollToRectFromTop);
- mClickToScrollToUpperBlob = (Button) a.findViewById(R.id.scrollToRectFromTop2);
- mTopBlob = (TextView) a.findViewById(R.id.topBlob);
- mChildToScrollTo = a.findViewById(R.id.childToMakeVisible);
- mBottomBlob = (TextView) a.findViewById(R.id.bottomBlob);
- mClickToScrollToBlobLowerBlob = (Button) a.findViewById(R.id.scrollToRectFromBottom2);
- mClickToScrollFromBelow = (Button) a.findViewById(R.id.scrollToRectFromBottom);
-
-
- }
-
-
- @MediumTest
- public void testPreconditions() {
- assertNotNull(mScrollView);
- assertNotNull(mClickToScrollFromAbove);
- assertNotNull(mClickToScrollToUpperBlob);
- assertNotNull(mTopBlob);
- assertNotNull(mChildToScrollTo);
- assertNotNull(mBottomBlob);
- assertNotNull(mClickToScrollToBlobLowerBlob);
- assertNotNull(mClickToScrollFromBelow);
-
- assertTrue("top blob needs to be taller than the screen for many of the "
- + "tests below to work.",
- mTopBlob.getHeight() > mScrollView.getHeight());
-
- assertTrue("bottom blob needs to be taller than the screen for many of the "
- + "tests below to work.",
- mBottomBlob.getHeight() > mScrollView.getHeight());
-
- assertTrue("top blob needs to be lower than the fading edge region",
- mTopBlob.getTop() > mScrollView.getVerticalFadingEdgeLength());
- }
-
- @MediumTest
- public void testScrollToOffScreenRectangleFromTop() {
- // view is off screen
- assertTrue(mClickToScrollFromAbove.hasFocus());
- ViewAsserts.assertOffScreenBelow(mScrollView, mChildToScrollTo);
-
- // click
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
- getInstrumentation().waitForIdleSync(); // wait for scrolling to finish
-
- // should be on screen, positioned at the bottom (with room for
- // fading edge)
- ViewAsserts.assertOnScreen(mScrollView, mChildToScrollTo);
- ViewAsserts.assertHasScreenCoordinates(
- mScrollView, mChildToScrollTo,
- 0,
- mScrollView.getHeight()
- - mChildToScrollTo.getHeight()
- - mScrollView.getVerticalFadingEdgeLength());
- }
-
- @MediumTest
- public void testScrollToPartiallyOffScreenRectFromTop() {
- pressDownUntilViewInFocus(mClickToScrollToUpperBlob, 4);
-
- // make sure the blob is indeed partially on screen below
- assertOnBottomEdgeOfScreen(mScrollView, mTopBlob);
-
- // click
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
- getInstrumentation().waitForIdleSync(); // wait for scrolling to finish
-
- // blob should have moved so top of it is at top of screen (with
- // room for the vertical fading edge
- ViewAsserts.assertHasScreenCoordinates(
- mScrollView, mTopBlob, 0, mScrollView.getVerticalFadingEdgeLength());
- }
-
- @LargeTest
- public void testScrollToOffScreenRectangleFromBottom() {
- // go to bottom button
- pressDownUntilViewInFocus(mClickToScrollFromBelow, 10);
-
- // view is off screen above
- assertTrue(mClickToScrollFromBelow.hasFocus());
- ViewAsserts.assertOffScreenAbove(mScrollView, mChildToScrollTo);
-
- // click
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
- getInstrumentation().waitForIdleSync(); // wait for scrolling to finish
-
- // on screen, positioned at top (with room for fading edge)
- ViewAsserts.assertOnScreen(mScrollView, mChildToScrollTo);
- ViewAsserts.assertHasScreenCoordinates(
- mScrollView, mChildToScrollTo, 0, mScrollView.getVerticalFadingEdgeLength());
- }
-
-
- @LargeTest
- public void testScrollToPartiallyOffScreenRectFromBottom() {
- pressDownUntilViewInFocus(mClickToScrollToBlobLowerBlob, 10);
-
- // make sure the blob is indeed partially on screen above
- assertOnTopEdgeOfScreen(mScrollView, mBottomBlob);
-
- // click
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
- getInstrumentation().waitForIdleSync(); // wait for scrolling to finish
-
- // blob should have moved so bottom of it is at bottom of screen
- // with room for vertical fading edge
- ViewAsserts.assertHasScreenCoordinates(
- mScrollView, mBottomBlob,
- 0,
- mScrollView.getHeight() - mBottomBlob.getHeight()
- - mScrollView.getVerticalFadingEdgeLength());
- }
-
-
- /**
- * Press the down key until a particular view is in focus
- * @param view The view to get in focus.
- * @param maxKeyPress The maximum times to press down before failing.
- */
- private void pressDownUntilViewInFocus(View view, int maxKeyPress) {
- int count = 0;
- while(!view.hasFocus()) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- getInstrumentation().waitForIdleSync();
-
- // just in case...
- if (++count > maxKeyPress) {
- fail("couldn't move down to bottom button within "
- + maxKeyPress + " key presses.");
- }
- }
- }
-
- /**
- * Assert that view overlaps the bottom edge of the screen
- * @param origin The root view of the screen.
- * @param view The view
- */
- static public void assertOnBottomEdgeOfScreen(View origin, View view) {
- int[] xy = new int[2];
- view.getLocationOnScreen(xy);
-
- int[] xyRoot = new int[2];
- origin.getLocationOnScreen(xyRoot);
-
- int bottom = xy[1] + view.getHeight();
- int bottomOfRoot = xyRoot[1] + origin.getHeight();
-
- assertTrue(bottom > bottomOfRoot);
-
- assertTrue(xy[1] < bottomOfRoot);
- assertTrue(bottom > bottomOfRoot);
- }
-
- /**
- * Assert that view overlaps the bottom edge of the screen
- * @param origin The root view of the screen.
- * @param view The view
- */
- static public void assertOnTopEdgeOfScreen(View origin, View view) {
- int[] xy = new int[2];
- view.getLocationOnScreen(xy);
-
- int[] xyRoot = new int[2];
- origin.getLocationOnScreen(xyRoot);
-
- int bottom = xy[1] + view.getHeight();
- int bottomOfRoot = xyRoot[1] + origin.getHeight();
-
- assertTrue(bottom < bottomOfRoot);
- assertTrue(bottom > xyRoot[1]);
-
- assertTrue(xy[1] < xyRoot[1]);
- }
-
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/RequestRectangleVisibleWithInternalScrollTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/RequestRectangleVisibleWithInternalScrollTest.java
deleted file mode 100644
index 5d71466..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/RequestRectangleVisibleWithInternalScrollTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.scroll;
-
-import com.android.frameworktest.R;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.ViewAsserts;
-import android.test.suitebuilder.annotation.Suppress;
-import android.view.KeyEvent;
-import android.widget.Button;
-import android.widget.ScrollView;
-import android.widget.TextView;
-
-/**
- * This is suppressed because {@link TextView#scrollBy} isn't working.
- */
-@Suppress
-public class RequestRectangleVisibleWithInternalScrollTest
- extends ActivityInstrumentationTestCase<RequestRectangleVisibleWithInternalScroll> {
-
- private TextView mTextBlob;
- private Button mScrollToBlob;
-
- private ScrollView mScrollView;
-
-
- public RequestRectangleVisibleWithInternalScrollTest() {
- super("com.android.frameworktest",
- RequestRectangleVisibleWithInternalScroll.class);
- }
-
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mTextBlob = getActivity().getTextBlob();
- mScrollToBlob = getActivity().getScrollToBlob();
-
- mScrollView = (ScrollView) getActivity().findViewById(R.id.scrollView);
- }
-
- public void testPreconditions() {
- assertNotNull(mTextBlob);
- assertNotNull(mScrollToBlob);
- assertEquals(getActivity().getScrollYofBlob(), mTextBlob.getScrollY());
- }
-
- public void testMoveToChildWithScrollYBelow() {
- assertTrue(mScrollToBlob.hasFocus());
-
- ViewAsserts.assertOffScreenBelow(mScrollView, mTextBlob);
-
- // click
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
- getInstrumentation().waitForIdleSync(); // wait for scrolling to finish
-
- // should be on screen, positioned at the bottom (with enough room for
- // fading edge)
- ViewAsserts.assertOnScreen(mScrollView, mTextBlob);
- ViewAsserts.assertHasScreenCoordinates(
- mScrollView, mTextBlob,
- 0,
- mScrollView.getHeight()
- - mTextBlob.getHeight()
- - mScrollView.getVerticalFadingEdgeLength());
-
- }
-
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/ScrollViewButtonsAndLabelsTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/ScrollViewButtonsAndLabelsTest.java
deleted file mode 100644
index b23b567..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/ScrollViewButtonsAndLabelsTest.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.scroll;
-
-import com.android.frameworktest.scroll.ScrollViewButtonsAndLabels;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.Button;
-import android.widget.LinearLayout;
-import android.widget.ScrollView;
-import android.view.KeyEvent;
-
-
-public class ScrollViewButtonsAndLabelsTest
- extends ActivityInstrumentationTestCase<ScrollViewButtonsAndLabels> {
-
- private ScrollView mScrollView;
- private LinearLayout mLinearLayout;
- private int mScreenBottom;
- private int mScreenTop;
-
- public ScrollViewButtonsAndLabelsTest() {
- super("com.android.frameworktest",
- ScrollViewButtonsAndLabels.class);
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- mScrollView = getActivity().getScrollView();
- mLinearLayout = getActivity().getLinearLayout();
-
- int origin[] = {0, 0};
- mScrollView.getLocationOnScreen(origin);
- mScreenTop = origin[1];
- mScreenBottom = origin[1] + mScrollView.getHeight();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertTrue("vertical fading edge width needs to be non-zero for this "
- + "test to be worth anything",
- mScrollView.getVerticalFadingEdgeLength() > 0);
- }
-
- // moving down to something off screen should move the element
- // onto the screen just above the vertical fading edge
- @LargeTest
- public void testArrowScrollDownOffScreenVerticalFadingEdge() {
-
- int offScreenIndex = findFirstButtonOffScreenTop2Bottom();
- Button firstButtonOffScreen = getActivity().getButton(offScreenIndex);
-
- for (int i = 0; i < offScreenIndex; i++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- getInstrumentation().waitForIdleSync();
- assertTrue(firstButtonOffScreen.hasFocus());
-
- assertTrue("the button we've moved to off screen must not be the last "
- + "button in the scroll view for this test to work (since we "
- + "are expecting the fading edge to be there).",
- offScreenIndex < getActivity().getNumButtons());
-
- // now we are at the first button off screen
- int buttonLoc[] = {0, 0};
- firstButtonOffScreen.getLocationOnScreen(buttonLoc);
- int buttonBottom = buttonLoc[1] + firstButtonOffScreen.getHeight();
-
- int verticalFadingEdgeLength = mScrollView
- .getVerticalFadingEdgeLength();
- assertEquals("bottom of button should be verticalFadingEdgeLength "
- + "above the bottom of the screen",
- buttonBottom, mScreenBottom - verticalFadingEdgeLength);
- }
-
- // there should be no offset for vertical fading edge
- // if the item is the last one on screen
- @LargeTest
- public void testArrowScrollDownToBottomElementOnScreen() {
-
- int numGroups = getActivity().getNumButtons();
- Button lastButton = getActivity().getButton(numGroups - 1);
-
- assertEquals("button needs to be at the very bottom of the layout for "
- + "this test to work",
- mLinearLayout.getHeight(), lastButton.getBottom());
-
- // move down to last button
- for (int i = 0; i < numGroups; i++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- getInstrumentation().waitForIdleSync();
- assertTrue("last button should have focus", lastButton.hasFocus());
-
- int buttonLoc[] = {0, 0};
- lastButton.getLocationOnScreen(buttonLoc);
- int buttonBottom = buttonLoc[1] + lastButton.getHeight();
- assertEquals("button should be at very bottom of screen",
- mScreenBottom, buttonBottom);
- }
-
- @LargeTest
- public void testArrowScrollUpOffScreenVerticalFadingEdge() {
- // get to bottom button
- int numGroups = goToBottomButton();
-
- // go up to first off screen button
- int offScreenIndex = findFirstButtonOffScreenBottom2Top();
- Button offScreenButton = getActivity().getButton(offScreenIndex);
- int clicksToOffScreenIndex = numGroups - offScreenIndex - 1;
- for (int i = 0; i < clicksToOffScreenIndex; i++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- }
- getInstrumentation().waitForIdleSync();
- assertTrue("we want to be at offScreenButton", offScreenButton.hasFocus());
-
- // top should take into account fading edge
- int buttonLoc[] = {0, 0};
- offScreenButton.getLocationOnScreen(buttonLoc);
- assertEquals("top should take into account fading edge",
- mScreenTop + mScrollView.getVerticalFadingEdgeLength(), buttonLoc[1]);
- }
-
-
- @LargeTest
- public void testArrowScrollUpToTopElementOnScreen() {
- // get to bottom button
- int numButtons = goToBottomButton();
-
- // go back to the top
- for (int i = 0; i < numButtons; i++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- }
- getInstrumentation().waitForIdleSync();
-
- Button topButton = getActivity().getButton(0);
- assertTrue("should be back at top button", topButton.hasFocus());
-
-
- int buttonLoc[] = {0, 0};
- topButton.getLocationOnScreen(buttonLoc);
- assertEquals("top of top button should be at top of screen; no need to take"
- + " into account vertical fading edge.",
- mScreenTop, buttonLoc[1]);
- }
-
- private int goToBottomButton() {
- int numButtons = getActivity().getNumButtons();
- Button lastButton = getActivity().getButton(numButtons - 1);
-
- for (int i = 0; i < numButtons; i++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
- getInstrumentation().waitForIdleSync();
- assertTrue("we want to be at the last button", lastButton.hasFocus());
- return numButtons;
- }
-
- // search from top to bottom for the first button off screen
- private int findFirstButtonOffScreenTop2Bottom() {
- int origin[] = {0, 0};
- mScrollView.getLocationOnScreen(origin);
- int screenHeight = mScrollView.getHeight();
-
- for (int i = 0; i < getActivity().getNumButtons(); i++) {
-
- int buttonLoc[] = {0, 0};
- Button button = getActivity().getButton(i);
- button.getLocationOnScreen(buttonLoc);
-
- if (buttonLoc[1] - origin[1] > screenHeight) {
- return i;
- }
- }
- fail("couldn't find first button off screen");
- return -1; // this won't execute, but the compiler needs it
- }
-
- private int findFirstButtonOffScreenBottom2Top() {
- int origin[] = {0, 0};
- mScrollView.getLocationOnScreen(origin);
-
- for (int i = getActivity().getNumButtons() - 1; i >= 0; i--) {
-
- int buttonLoc[] = {0, 0};
- Button button = getActivity().getButton(i);
- button.getLocationOnScreen(buttonLoc);
-
- if (buttonLoc[1] < 0) {
- return i;
- }
- }
- fail("couldn't find first button off screen");
- return -1; // this won't execute, but the compiler needs it
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/arrowscroll/ButtonsWithTallTextViewInBetweenTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/arrowscroll/ButtonsWithTallTextViewInBetweenTest.java
deleted file mode 100644
index 6b78560..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/arrowscroll/ButtonsWithTallTextViewInBetweenTest.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.scroll.arrowscroll;
-
-import com.android.frameworktest.scroll.ButtonsWithTallTextViewInBetween;
-
-import android.graphics.Rect;
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.view.View;
-import android.widget.Button;
-import android.widget.ScrollView;
-import android.widget.TextView;
-
-public class ButtonsWithTallTextViewInBetweenTest
- extends ActivityInstrumentationTestCase<ButtonsWithTallTextViewInBetween> {
-
- private ScrollView mScrollView;
- private Button mTopButton;
- private TextView mMiddleFiller;
- private TextView mBottomButton;
-
- public ButtonsWithTallTextViewInBetweenTest() {
- super("com.android.frameworktest", ButtonsWithTallTextViewInBetween.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mScrollView = getActivity().getScrollView();
- mTopButton = getActivity().getTopButton();
- mMiddleFiller = getActivity().getMiddleFiller();
- mBottomButton = getActivity().getBottomButton();
- }
-
- private Rect mTempRect = new Rect();
-
- private int getTopWithinScrollView(View descendant) {
- descendant.getDrawingRect(mTempRect);
- mScrollView.offsetDescendantRectToMyCoords(descendant, mTempRect);
- return mTempRect.top;
- }
-
- private int getBottomWithinScrollView(View descendant) {
- descendant.getDrawingRect(mTempRect);
- mScrollView.offsetDescendantRectToMyCoords(descendant, mTempRect);
- return mTempRect.bottom;
- }
-
- @MediumTest
- public void testPreconditions() {
- assertTrue("top button should be shorter than max scroll amount",
- mTopButton.getHeight() <
- mScrollView.getMaxScrollAmount());
- assertTrue("bottom button should be further than max scroll amount off screen",
- getTopWithinScrollView(mBottomButton)- mScrollView.getBottom() > mScrollView.getMaxScrollAmount());
- }
-
- @MediumTest
- public void testPanTopButtonOffScreenLosesFocus() {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
-
- assertEquals("scroll view should be scrolled by the max amount for one "
- + "arrow navigation",
- mScrollView.getMaxScrollAmount(),
- mScrollView.getScrollY());
-
- assertTrue("top button should be off screen",
- getBottomWithinScrollView(mTopButton) < mScrollView.getScrollY());
-
- assertFalse("top button should have lost focus",
- mTopButton.isFocused());
-
- assertTrue("scroll view should be focused", mScrollView.isFocused());
- }
-
- @MediumTest
- public void testScrollDownToBottomButton() throws Exception {
- final int screenBottom = mScrollView.getScrollY() + mScrollView.getHeight();
- final int numDownsToButtonButton =
- ((getBottomWithinScrollView(mBottomButton) - screenBottom)) / mScrollView.getMaxScrollAmount() + 1;
-
- for (int i = 0; i < numDownsToButtonButton; i++) {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
-
- assertTrue("bottombutton.isFocused", mBottomButton.isFocused());
-
- assertEquals("should be fully scrolled to bottom",
- getActivity().getLinearLayout().getHeight() - mScrollView.getHeight(),
- mScrollView.getScrollY());
- }
-
- @MediumTest
- public void testPanBottomButtonOffScreenLosesFocus() throws Exception {
- mBottomButton.post(new Runnable() {
- public void run() {
- mBottomButton.requestFocus();
- }
- });
-
- getInstrumentation().waitForIdleSync();
-
- assertTrue("bottombutton.isFocused", mBottomButton.isFocused());
- final int maxScroll = getActivity().getLinearLayout().getHeight()
- - mScrollView.getHeight();
- assertEquals("should be fully scrolled to bottom",
- maxScroll,
- mScrollView.getScrollY());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
-
- assertEquals("scroll view should have scrolled by the max amount for one "
- + "arrow navigation",
- maxScroll - mScrollView.getMaxScrollAmount(),
- mScrollView.getScrollY());
-
- assertTrue("bottom button should be off screen",
- getTopWithinScrollView(mBottomButton) > mScrollView.getScrollY() + mScrollView.getHeight());
-
- assertFalse("bottom button should have lost focus",
- mBottomButton.isFocused());
-
- assertTrue("scroll view should be focused", mScrollView.isFocused());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/arrowscroll/ShortButtonsTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/arrowscroll/ShortButtonsTest.java
deleted file mode 100644
index 689eb19..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/arrowscroll/ShortButtonsTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.scroll.arrowscroll;
-
-import com.android.frameworktest.scroll.ShortButtons;
-
-import android.graphics.Rect;
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.widget.Button;
-import android.widget.ScrollView;
-
-public class ShortButtonsTest extends ActivityInstrumentationTestCase<ShortButtons> {
-
- private ScrollView mScrollView;
-
- public ShortButtonsTest() {
- super("com.android.frameworktest", ShortButtons.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mScrollView = getActivity().getScrollView();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertTrue("buttons should be shorter than screen",
- getActivity().getButtonAt(0).getHeight()
- < mScrollView.getHeight());
-
- assertTrue("should be enough buttons to have some scrolled off screen",
- getActivity().getLinearLayout().getHeight()
- > getActivity().getScrollView().getHeight());
- }
-
- @LargeTest
- public void testScrollDownToBottomThroughButtons() throws Exception {
- final int numButtons = getActivity().getNumButtons();
-
- for (int i = 0; i < numButtons; i++) {
- String prefix = "after " + i + " downs expected button " + i;
- final Button button = getActivity().getButtonAt(i);
- assertTrue(prefix + " to have focus", button.isFocused());
- assertTrue(prefix + " to be on screen", isButtonOnScreen(button));
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- }
-
- assertEquals("should be fully scrolled to bottom",
- getActivity().getLinearLayout().getHeight() - mScrollView.getHeight(),
- mScrollView.getScrollY());
- }
-
- @LargeTest
- public void testScrollFromBottomToTopThroughButtons() throws Exception {
- final int numButtons = getActivity().getNumButtons();
-
- final Button lastButton = getActivity().getButtonAt(numButtons - 1);
-
- lastButton.post(new Runnable() {
- public void run() {
- lastButton.requestFocus();
- }
- });
-
- getInstrumentation().waitForIdleSync();
-
- assertTrue("lastButton.isFocused()", lastButton.isFocused());
-
- for (int i = numButtons - 1; i >= 0; i--) {
- String prefix = "after " + i + " ups expected button " + i;
- final Button button = getActivity().getButtonAt(i);
- assertTrue(prefix + " to have focus", button.isFocused());
- assertTrue(prefix + " to be on screen", isButtonOnScreen(button));
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- }
-
- assertEquals("should be fully scrolled to top",
- 0,
- mScrollView.getScrollY());
- }
-
- private Rect mTempRect = new Rect();
- protected boolean isButtonOnScreen(Button b) {
- b.getDrawingRect(mTempRect);
- mScrollView.offsetDescendantRectToMyCoords(b, mTempRect);
- return mTempRect.bottom >= mScrollView.getScrollY()
- && mTempRect.top <= (mScrollView.getScrollY() + mScrollView.getHeight());
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/arrowscroll/TallTextAboveButtonTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/arrowscroll/TallTextAboveButtonTest.java
deleted file mode 100644
index 573045d..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/scroll/arrowscroll/TallTextAboveButtonTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.scroll.arrowscroll;
-
-import com.android.frameworktest.scroll.TallTextAboveButton;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.widget.ScrollView;
-import android.widget.TextView;
-
-public class TallTextAboveButtonTest extends ActivityInstrumentationTestCase<TallTextAboveButton> {
- private ScrollView mScrollView;
- private TextView mTopText;
- private TextView mBottomButton;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mScrollView = getActivity().getScrollView();
- mTopText = getActivity().getContentChildAt(0);
- mBottomButton = getActivity().getContentChildAt(1);
- }
-
- public TallTextAboveButtonTest() {
- super("com.android.frameworktest", TallTextAboveButton.class);
- }
-
- @MediumTest
- public void testPreconditions() {
- assertTrue("top text should be larger than screen",
- mTopText.getHeight() > mScrollView.getHeight());
- assertTrue("scroll view should have focus (because nothing else focusable "
- + "is on screen), but " + getActivity().getScrollView().findFocus() + " does instead",
- getActivity().getScrollView().isFocused());
- }
-
- @MediumTest
- public void testGainFocusAsScrolledOntoScreen() {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
-
- assertTrue("button should have scrolled onto screen",
- mBottomButton.getBottom() >= mScrollView.getBottom());
- assertTrue("button should have gained focus as it was scrolled completely "
- + "into view", mBottomButton.isFocused());
-
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- assertTrue("scroll view should have focus, but " + getActivity().getScrollView().findFocus() + " does instead",
- getActivity().getScrollView().isFocused());
- }
-
- @MediumTest
- public void testScrollingButtonOffScreenLosesFocus() {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertTrue("button should have focus", mBottomButton.isFocused());
- sendKeys(KeyEvent.KEYCODE_DPAD_UP);
- assertTrue("scroll view should have focus, but " + getActivity().getScrollView().findFocus() + " does instead",
- getActivity().getScrollView().isFocused());
- }
-
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/settings/RingtonePickerActivityTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/settings/RingtonePickerActivityTest.java
deleted file mode 100644
index 42888ff..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/settings/RingtonePickerActivityTest.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.settings;
-
-import com.android.frameworktest.settings.RingtonePickerActivityLauncher;
-
-import android.app.Instrumentation;
-import android.database.Cursor;
-import android.media.RingtoneManager;
-import android.net.Uri;
-import android.provider.MediaStore;
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.Suppress;
-import android.view.KeyEvent;
-
-/**
- * Tests the RingtonePickerActivity.
- * <p>
- * There is a launcher for launching the RingtonePickerActivity (RPA) since the RPA needs
- * to be a subactivity. We don't have a reference to the actual RPA.
- * <p>
- * This relies heavily on keypresses getting to the right widget. It depends on:
- * <li> Less than NUM_RINGTONES_AND_SOME ringtones on the system
- * <li> Pressing arrow-down a ton will eventually end up on the 'Cancel' button
- * <li> From the 'Cancel' button, pressing arrow-left will end up on 'OK' button
- */
-@Suppress
-public class RingtonePickerActivityTest extends ActivityInstrumentationTestCase<RingtonePickerActivityLauncher> {
-
- private static final int NUM_RINGTONES_AND_SOME = 20;
- private RingtonePickerActivityLauncher mActivity;
- private Instrumentation mInstrumentation;
-
- public RingtonePickerActivityTest() {
- super("com.android.frameworktest", RingtonePickerActivityLauncher.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mInstrumentation = getInstrumentation();
- assertNotNull(mActivity);
- assertFalse(mActivity.resultReceived);
- assertNotNull(mInstrumentation);
- }
-
- public void testDefault() {
- mActivity.launchRingtonePickerActivity(true, null, RingtoneManager.TYPE_ALL);
- mInstrumentation.waitForIdleSync();
-
- // Go to top
- goTo(true);
- // Select default ringtone
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
- // Go to bottom/cancel button
- goTo(false);
- // Select OK button
- sendKeys(KeyEvent.KEYCODE_DPAD_LEFT, KeyEvent.KEYCODE_DPAD_CENTER);
-
- mInstrumentation.waitForIdleSync();
-
- assertTrue(mActivity.resultReceived);
- assertNotNull(mActivity.result);
- assertTrue(RingtoneManager.isDefault(mActivity.pickedUri));
- }
-
- public void testFirst() {
- mActivity.launchRingtonePickerActivity(true, null, RingtoneManager.TYPE_ALL);
- mInstrumentation.waitForIdleSync();
-
- // Go to top
- goTo(true);
- // Select first (non-default) ringtone
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN, KeyEvent.KEYCODE_DPAD_CENTER);
- // Go to bottom/cancel button
- goTo(false);
- // Select OK button
- sendKeys(KeyEvent.KEYCODE_DPAD_LEFT, KeyEvent.KEYCODE_DPAD_CENTER);
-
- mInstrumentation.waitForIdleSync();
-
- assertTrue(mActivity.resultReceived);
- assertNotNull(mActivity.result);
- assertNotNull(mActivity.pickedUri);
- assertFalse(RingtoneManager.isDefault(mActivity.pickedUri));
- }
-
- public void testExisting() {
- // We need to get an existing ringtone first, so launch it, pick first,
- // and keep that URI
- testFirst();
- Uri firstUri = mActivity.pickedUri;
-
- mActivity.launchRingtonePickerActivity(true, firstUri, RingtoneManager.TYPE_ALL);
- mInstrumentation.waitForIdleSync();
-
- //// Hit cancel:
-
- // Go to bottom
- goTo(false);
- // Select Cancel button
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
-
- mInstrumentation.waitForIdleSync();
-
- assertTrue(mActivity.resultReceived);
- assertEquals(mActivity.pickedUri, firstUri);
- }
-
- public void testExistingButDifferent() {
- // We need to get an existing ringtone first, so launch it, pick first,
- // and keep that URI
- testFirst();
- Uri firstUri = mActivity.pickedUri;
-
- mActivity.launchRingtonePickerActivity(true, firstUri, RingtoneManager.TYPE_ALL);
- mInstrumentation.waitForIdleSync();
-
- //// Pick second:
-
- // Go to top
- goTo(true);
- // Select second (non-default) ringtone
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN, KeyEvent.KEYCODE_DPAD_DOWN,
- KeyEvent.KEYCODE_DPAD_CENTER);
- // Go to bottom/cancel button
- goTo(false);
- // Select OK button
- sendKeys(KeyEvent.KEYCODE_DPAD_LEFT, KeyEvent.KEYCODE_DPAD_CENTER);
-
- mInstrumentation.waitForIdleSync();
-
- assertTrue(mActivity.resultReceived);
- assertNotNull(mActivity.result);
- assertTrue(!firstUri.equals(mActivity.pickedUri));
- }
-
- public void testCancel() {
- mActivity.launchRingtonePickerActivity(true, null, RingtoneManager.TYPE_ALL);
- mInstrumentation.waitForIdleSync();
-
- // Go to bottom
- goTo(false);
- // Select Cancel button
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
-
- mInstrumentation.waitForIdleSync();
-
- assertTrue(mActivity.resultReceived);
- assertNull(mActivity.result);
- }
-
- public void testNoDefault() {
- mActivity.launchRingtonePickerActivity(false, null, RingtoneManager.TYPE_ALL);
- mInstrumentation.waitForIdleSync();
-
- // Go to top
- goTo(true);
- // Select first (non-default) ringtone
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
- // Go to bottom/cancel button
- goTo(false);
- // Select OK button
- sendKeys(KeyEvent.KEYCODE_DPAD_LEFT, KeyEvent.KEYCODE_DPAD_CENTER);
-
- mInstrumentation.waitForIdleSync();
-
- assertTrue(mActivity.resultReceived);
- assertNotNull(mActivity.result);
- assertNotNull(mActivity.pickedUri);
- assertFalse(RingtoneManager.isDefault(mActivity.pickedUri));
- }
-
- public void testNotifications() {
- mActivity.launchRingtonePickerActivity(false, null, RingtoneManager.TYPE_NOTIFICATION);
- mInstrumentation.waitForIdleSync();
-
- // Move to top of list
- goTo(true);
- // Select first ringtone in list
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
- // Move all the way down (will focus 'Cancel')
- goTo(false);
- // Move left and click (will click 'Ok')
- sendKeys(KeyEvent.KEYCODE_DPAD_LEFT, KeyEvent.KEYCODE_DPAD_CENTER);
-
- // Wait until main thread is idle
- mInstrumentation.waitForIdleSync();
-
- assertTrue(mActivity.resultReceived);
- assertNotNull(mActivity.result);
- assertNotNull(mActivity.pickedUri);
-
- // Get the path of the picked ringtone
- Uri uri = mActivity.pickedUri;
- Cursor c = mActivity.getContentResolver().query(uri, new String[] { "_data" },
- null, null, null);
- assertTrue("Query for selected ringtone URI does not have a result", c.moveToFirst());
- String path = c.getString(0);
- // Quick check to see if the ringtone is a notification
- assertTrue("The path of the selected ringtone did not contain \"notification\"",
- path.contains("notifications"));
- }
-
- private void goTo(boolean top) {
- // Get to the buttons at the bottom (top == false), or the top (top == true)
- for (int i = 0; i < NUM_RINGTONES_AND_SOME; i++) {
- sendKeys(top ? KeyEvent.KEYCODE_DPAD_UP : KeyEvent.KEYCODE_DPAD_DOWN);
- }
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/text/HtmlTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/text/HtmlTest.java
deleted file mode 100644
index 9b309c4..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/text/HtmlTest.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.text;
-
-import android.test.InstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.text.Html;
-import android.text.Spanned;
-import android.text.style.StyleSpan;
-import android.graphics.Typeface;
-
-public class HtmlTest extends InstrumentationTestCase {
-
- @MediumTest
- public void testSingleTagOnWhileString() {
- Spanned spanned = Html.fromHtml("<b>hello</b>");
- Object[] spans = spanned.getSpans(-1, 100, Object.class);
- assertEquals(1, spans.length);
- Object span = spans[0];
- assertEquals(0, spanned.getSpanStart(span));
- assertEquals(5, spanned.getSpanEnd(span));
- }
-
- @MediumTest
- public void testEmptyFontTag() {
- Spanned spanned = Html.fromHtml("Hello <font color=\"#ff00ff00\"></font>");
- Object[] spans = spanned.getSpans(0, 100, Object.class);
- // TODO: figure out what the spans should be after the crashes are fixed and assert them.
- }
-
- /** Tests that the parser can handle mal-formed HTML. */
- @MediumTest
- public void testBadHtml() {
- Spanned spanned = Html.fromHtml("Hello <b>b<i>bi</b>i</i>");
- Object[] spans = spanned.getSpans(0, 100, Object.class);
- assertEquals(Typeface.ITALIC, ((StyleSpan) spans[0]).getStyle());
- assertEquals(7, spanned.getSpanStart(spans[0]));
- assertEquals(9, spanned.getSpanEnd(spans[0]));
- assertEquals(Typeface.BOLD, ((StyleSpan) spans[1]).getStyle());
- assertEquals(6, spanned.getSpanStart(spans[1]));
- assertEquals(9, spanned.getSpanEnd(spans[1]));
- assertEquals(Typeface.ITALIC, ((StyleSpan) spans[2]).getStyle());
- assertEquals(9, spanned.getSpanStart(spans[2]));
- assertEquals(10, spanned.getSpanEnd(spans[2]));
- }
-
- @MediumTest
- public void testSymbols() {
- String spanned = Html.fromHtml("&copy; &gt; &lt").toString();
- assertEquals("\u00a9 > <", spanned);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/text/SpannableStringBuilderTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/text/SpannableStringBuilderTest.java
deleted file mode 100644
index a807977..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/text/SpannableStringBuilderTest.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.android.frameworktest.text;
-
-import android.text.Spannable;
-import android.text.SpannableStringBuilder;
-
-public class SpannableStringBuilderTest extends SpannableTest {
-
- protected Spannable newSpannableWithText(String text) {
- return new SpannableStringBuilder(text);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/text/SpannableStringTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/text/SpannableStringTest.java
deleted file mode 100644
index 311df23..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/text/SpannableStringTest.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.android.frameworktest.text;
-
-import android.text.Spannable;
-import android.text.SpannableString;
-
-public class SpannableStringTest extends SpannableTest {
-
- protected Spannable newSpannableWithText(String text) {
- return new SpannableString(text);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/text/SpannableTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/text/SpannableTest.java
deleted file mode 100644
index a5f6836..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/text/SpannableTest.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.android.frameworktest.text;
-
-import android.test.InstrumentationTestCase;
-import android.test.MoreAsserts;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.text.Spannable;
-
-public abstract class SpannableTest extends InstrumentationTestCase {
-
- protected abstract Spannable newSpannableWithText(String text);
-
- @MediumTest
- public void testGetSpans() {
- Spannable spannable = newSpannableWithText("abcdef");
- Object emptySpan = new Object();
- spannable.setSpan(emptySpan, 1, 1, 0);
- Object unemptySpan = new Object();
- spannable.setSpan(unemptySpan, 1, 2, 0);
-
- Object[] spans;
-
- // Empty spans are included when they merely abut the query region
- // but other spans are not, unless the query region is empty, in
- // in which case any abutting spans are returned.
- spans = spannable.getSpans(0, 1, Object.class);
- MoreAsserts.assertEquals(new Object[]{emptySpan}, spans);
- spans = spannable.getSpans(0, 2, Object.class);
- MoreAsserts.assertEquals(new Object[]{emptySpan, unemptySpan}, spans);
- spans = spannable.getSpans(1, 2, Object.class);
- MoreAsserts.assertEquals(new Object[]{emptySpan, unemptySpan}, spans);
- spans = spannable.getSpans(2, 2, Object.class);
- MoreAsserts.assertEquals(new Object[]{unemptySpan}, spans);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/touchmode/ChangeTouchModeTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/touchmode/ChangeTouchModeTest.java
deleted file mode 100644
index d274d0d..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/touchmode/ChangeTouchModeTest.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.touchmode;
-
-import com.android.frameworktest.layout.linear.LLOfButtons1;
-import com.android.frameworktest.layout.linear.LLOfButtons2;
-import static com.android.frameworktest.util.TouchModeFlexibleAsserts.assertInTouchModeAfterClick;
-import static com.android.frameworktest.util.TouchModeFlexibleAsserts.assertNotInTouchModeAfterKey;
-import static com.android.frameworktest.util.TouchModeFlexibleAsserts.assertInTouchModeAfterTap;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-
-/**
- * Tests that the touch mode changes from various events, and that the state
- * persists across activities.
- */
-public class ChangeTouchModeTest extends ActivityInstrumentationTestCase<LLOfButtons1> {
-
- public ChangeTouchModeTest() {
- super("com.android.frameworktest", LLOfButtons1.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- }
-
- @MediumTest
- public void testPreconditions() throws Exception {
- assertFalse("touch mode", getActivity().isInTouchMode());
- }
-
- @MediumTest
- public void testTouchingScreenEntersTouchMode() throws Exception {
- assertInTouchModeAfterTap(this, getActivity().getFirstButton());
- assertTrue("touch mode", getActivity().isInTouchMode());
- }
-
- // TODO: reenable when more reliable
- public void DISABLE_testDpadDirectionLeavesTouchMode() throws Exception {
- assertInTouchModeAfterClick(this, getActivity().getFirstButton());
- sendKeys(KeyEvent.KEYCODE_DPAD_RIGHT);
- assertNotInTouchModeAfterKey(this, KeyEvent.KEYCODE_DPAD_RIGHT, getActivity().getFirstButton());
- assertFalse("touch mode", getActivity().isInTouchMode());
- }
-
- public void TODO_touchTrackBallMovementLeavesTouchMode() throws Exception {
-
- }
-
- @MediumTest
- public void testTouchModeFalseAcrossActivites() throws Exception {
-
- getInstrumentation().waitForIdleSync();
-
- LLOfButtons2 otherActivity = null;
- try {
- otherActivity =
- launchActivity("com.android.frameworktest", LLOfButtons2.class, null);
- assertNotNull(otherActivity);
- assertFalse(otherActivity.isInTouchMode());
- } finally {
- if (otherActivity != null) {
- otherActivity.finish();
- }
- }
- }
-
- @LargeTest
- public void testTouchModeTrueAcrossActivites() throws Exception {
- assertInTouchModeAfterClick(this, getActivity().getFirstButton());
- LLOfButtons2 otherActivity = null;
- try {
- otherActivity =
- launchActivity("com.android.frameworktest", LLOfButtons2.class, null);
- assertNotNull(otherActivity);
- assertTrue(otherActivity.isInTouchMode());
- } finally {
- if (otherActivity != null) {
- otherActivity.finish();
- }
- }
- }
-
- @LargeTest
- public void testTouchModeChangedInOtherActivity() throws Exception {
-
- assertFalse("touch mode", getActivity().isInTouchMode());
-
- LLOfButtons2 otherActivity = null;
- try {
- otherActivity =
- launchActivity("com.android.frameworktest", LLOfButtons2.class, null);
- assertNotNull(otherActivity);
- assertFalse(otherActivity.isInTouchMode());
- assertInTouchModeAfterClick(this, otherActivity.getFirstButton());
- assertTrue(otherActivity.isInTouchMode());
- } finally {
- if (otherActivity != null) {
- otherActivity.finish();
- }
- }
-
- // need to wait for async update back to window to occur
- Thread.sleep(200);
-
- assertTrue("touch mode", getActivity().isInTouchMode());
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/touchmode/FocusableInTouchModeClickTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/touchmode/FocusableInTouchModeClickTest.java
deleted file mode 100644
index 7cd6444..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/touchmode/FocusableInTouchModeClickTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.touchmode;
-
-import com.android.frameworktest.layout.linear.LLOfTwoFocusableInTouchMode;
-
-import android.test.ActivityInstrumentationTestCase2;
-import android.test.TouchUtils;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-
-public class FocusableInTouchModeClickTest extends ActivityInstrumentationTestCase2<LLOfTwoFocusableInTouchMode> {
-
- public FocusableInTouchModeClickTest() {
- super("com.android.frameworktest", LLOfTwoFocusableInTouchMode.class);
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- setActivityInitialTouchMode(true);
- }
-
- @MediumTest
- public void testPreconditions() {
- assertTrue("should start in touch mode", getActivity().getButton1().isInTouchMode());
- assertTrue(getActivity().getButton1().isFocused());
- }
-
- @LargeTest
- public void testClickGivesFocusNoClickFired() {
- TouchUtils.clickView(this, getActivity().getButton2());
- assertTrue("click should give focusable in touch mode focus",
- getActivity().getButton2().isFocused());
- assertFalse("getting focus should result in no on click",
- getActivity().isB2Fired());
-
- TouchUtils.clickView(this, getActivity().getButton2());
- assertTrue("subsequent click while focused should fire on click",
- getActivity().isB2Fired());
- }
-
- @MediumTest
- public void testTapGivesFocusNoClickFired() {
- TouchUtils.touchAndCancelView(this, getActivity().getButton2());
- assertFalse("button shouldn't have fired click", getActivity().isB2Fired());
- assertFalse("button shouldn't have focus", getActivity().getButton2().isFocused());
- }
-
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/touchmode/StartInTouchWithViewInFocusTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/touchmode/StartInTouchWithViewInFocusTest.java
deleted file mode 100644
index 6403435..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/touchmode/StartInTouchWithViewInFocusTest.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.touchmode;
-
-import com.android.frameworktest.layout.linear.LLEditTextThenButton;
-import static com.android.frameworktest.util.TouchModeFlexibleAsserts.assertNotInTouchModeAfterKey;
-
-import android.test.ActivityInstrumentationTestCase2;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.widget.Button;
-import android.widget.EditText;
-
-public class StartInTouchWithViewInFocusTest extends
- ActivityInstrumentationTestCase2<LLEditTextThenButton> {
-
- private EditText mEditText;
-
- private Button mButton;
-
- public StartInTouchWithViewInFocusTest() {
- super("com.android.frameworktest", LLEditTextThenButton.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- this.setActivityInitialTouchMode(true);
- mEditText = getActivity().getEditText();
- mButton = getActivity().getButton();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertTrue("should start in touch mode", mEditText.isInTouchMode());
- assertTrue("edit text is focusable in touch mode, should have focus", mEditText.isFocused());
- }
-
- // TODO: reenable when more reliable
- public void DISABLE_testKeyDownLeavesTouchModeAndGoesToNextView() {
- assertNotInTouchModeAfterKey(this, KeyEvent.KEYCODE_DPAD_DOWN, mEditText);
- assertFalse("should have left touch mode", mEditText.isInTouchMode());
- assertTrue("should have given focus to next view", mButton.isFocused());
- }
-
- // TODO: reenable when more reliable
- public void DISABLE_testNonDirectionalKeyExitsTouchMode() {
- assertNotInTouchModeAfterKey(this, KeyEvent.KEYCODE_A, mEditText);
- assertFalse("should have left touch mode", mEditText.isInTouchMode());
- assertTrue("edit text should still have focus", mEditText.isFocused());
- }
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/touchmode/TouchModeFocusChangeTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/touchmode/TouchModeFocusChangeTest.java
deleted file mode 100644
index 1a0c833..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/touchmode/TouchModeFocusChangeTest.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.touchmode;
-
-import com.android.frameworktest.layout.linear.LLOfButtons1;
-import static com.android.frameworktest.util.TouchModeFlexibleAsserts.assertInTouchModeAfterClick;
-import static com.android.frameworktest.util.TouchModeFlexibleAsserts.assertInTouchModeAfterTap;
-import static com.android.frameworktest.util.TouchModeFlexibleAsserts.assertNotInTouchModeAfterKey;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.widget.Button;
-
-/**
- * Make sure focus isn't kept by buttons when entering touch mode.
- *
- * When in touch mode and hitting the d-pad, we should leave touch mode and the
- * top most focusable gets focus.
- */
-public class TouchModeFocusChangeTest extends ActivityInstrumentationTestCase<LLOfButtons1> {
- private LLOfButtons1 mActivity;
- private Button mFirstButton;
-
- public TouchModeFocusChangeTest() {
- super("com.android.frameworktest", LLOfButtons1.class);
- }
-
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mActivity = getActivity();
- mFirstButton = mActivity.getFirstButton();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertFalse("we should not be in touch mode", mActivity.isInTouchMode());
- assertTrue("top button should have focus", mFirstButton.isFocused());
- }
-
- @MediumTest
- public void testTouchButtonNotTakeFocus() {
- assertInTouchModeAfterTap(this, mFirstButton);
-
- assertTrue("should be in touch mode", mActivity.isInTouchMode());
- assertFalse("button.isFocused",
- mFirstButton.isFocused());
- assertFalse("button.hasFocus",
- mFirstButton.hasFocus());
- assertNull("activity shouldn't have focus", mActivity.getCurrentFocus());
- assertFalse("linear layout should not have focus",
- mActivity.getLayout().hasFocus());
-
- assertTrue("button's onClickListener should have fired",
- mActivity.buttonClickListenerFired());
- }
-
- // TODO: reenable when more reliable
- public void DISABLE_testLeaveTouchModeWithDpadEvent() {
- assertInTouchModeAfterClick(this, mFirstButton);
-
- assertTrue("should be in touch mode", mActivity.isInTouchMode());
- assertFalse("button should not have focus when touched",
- mFirstButton.isFocused());
-
- assertNotInTouchModeAfterKey(this, KeyEvent.KEYCODE_DPAD_RIGHT, mFirstButton);
- assertFalse("should be out of touch mode", mActivity.isInTouchMode());
- assertTrue("first button (the top most focusable) should have gained focus",
- mFirstButton.isFocused());
- }
-
-
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/touchmode/TouchModeFocusableTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/touchmode/TouchModeFocusableTest.java
deleted file mode 100644
index 86925b5..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/touchmode/TouchModeFocusableTest.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.touchmode;
-
-import com.android.frameworktest.layout.linear.LLEditTextThenButton;
-import static com.android.frameworktest.util.TouchModeFlexibleAsserts.assertInTouchModeAfterTap;
-import static com.android.frameworktest.util.TouchModeFlexibleAsserts.assertInTouchModeAfterClick;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.KeyEvent;
-import android.widget.Button;
-import android.widget.EditText;
-
-/**
- * Some views, like edit texts, can keep and gain focus even when in touch mode.
- */
-public class TouchModeFocusableTest extends ActivityInstrumentationTestCase<LLEditTextThenButton> {
- private EditText mEditText;
- private Button mButton;
-
-
- public TouchModeFocusableTest() {
- super("com.android.frameworktest", LLEditTextThenButton.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- mEditText = getActivity().getEditText();
- mButton = getActivity().getButton();
- }
-
- @MediumTest
- public void testPreconditions() {
- assertFalse("should not be in touch mode to start off", mButton.isInTouchMode());
- assertTrue("edit text should have focus", mEditText.isFocused());
- assertTrue("edit text should be focusable in touch mode", mEditText.isFocusableInTouchMode());
- }
-
- @MediumTest
- public void testClickButtonEditTextKeepsFocus() {
- assertInTouchModeAfterTap(this, mButton);
- assertTrue("should be in touch mode", mButton.isInTouchMode());
- assertTrue("edit text should still have focus", mEditText.isFocused());
- }
-
- @LargeTest
- public void testClickEditTextGivesItFocus() {
- // go down to button
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
- assertTrue("button should have focus", mButton.isFocused());
-
- assertInTouchModeAfterClick(this, mEditText);
- assertTrue("clicking edit text should have entered touch mode", mButton.isInTouchMode());
- assertTrue("clicking edit text should have given it focus", mEditText.isFocused());
- }
-
-
- // entering touch mode takes focus away from the currently focused item if it
- // isn't focusable in touch mode.
- @LargeTest
- public void testEnterTouchModeGivesFocusBackToFocusableInTouchMode() {
- sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
-
- assertTrue("button should have focus",
- mButton.isFocused());
-
- assertInTouchModeAfterClick(this, mButton);
- assertTrue("should be in touch mode", mButton.isInTouchMode());
- assertNull("nothing should have focus", getActivity().getCurrentFocus());
- assertFalse("layout should not have focus",
- getActivity().getLayout().hasFocus());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/BigCacheTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/view/BigCacheTest.java
deleted file mode 100644
index b5e7473..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/BigCacheTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import com.android.frameworktest.view.BigCache;
-import com.android.frameworktest.R;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.View;
-import android.view.ViewConfiguration;
-import android.graphics.Bitmap;
-
-/**
- * Builds the drawing cache of two Views, one smaller than the maximum cache size,
- * one larger than the maximum cache size. The latter should always have a null
- * drawing cache.
- */
-public class BigCacheTest extends ActivityInstrumentationTestCase<BigCache> {
- private View mTiny;
- private View mLarge;
-
- public BigCacheTest() {
- super("com.android.frameworktest", BigCache.class);
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
-
- final BigCache activity = getActivity();
- mTiny = activity.findViewById(R.id.a);
- mLarge = activity.findViewById(R.id.b);
- }
-
- @MediumTest
- public void testSetUpConditions() throws Exception {
- assertNotNull(mTiny);
- assertNotNull(mLarge);
- }
-
- @MediumTest
- public void testDrawingCacheBelowMaximumSize() throws Exception {
- final int max = ViewConfiguration.getMaximumDrawingCacheSize();
- assertTrue(mTiny.getWidth() * mTiny.getHeight() * 2 < max);
- assertNotNull(createCacheForView(mTiny));
- }
-
- @MediumTest
- public void testDrawingCacheAboveMaximumSize() throws Exception {
- final int max = ViewConfiguration.getMaximumDrawingCacheSize();
- assertTrue(mLarge.getWidth() * mLarge.getHeight() * 2 > max);
- assertNull(createCacheForView(mLarge));
- }
-
- private Bitmap createCacheForView(final View view) {
- final Bitmap[] cache = new Bitmap[1];
- getActivity().runOnUiThread(new Runnable() {
- public void run() {
- view.setDrawingCacheEnabled(true);
- view.invalidate();
- view.buildDrawingCache();
- cache[0] = view.getDrawingCache();
- }
- });
- getInstrumentation().waitForIdleSync();
- return cache[0];
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/DisabledLongpressTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/view/DisabledLongpressTest.java
deleted file mode 100644
index ef3ecee..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/DisabledLongpressTest.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import com.android.frameworktest.view.Longpress;
-import com.android.frameworktest.R;
-import com.android.frameworktest.util.KeyUtils;
-import android.test.TouchUtils;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.view.View;
-import android.view.View.OnLongClickListener;
-
-/**
- * Exercises {@link android.view.View}'s longpress plumbing by testing the
- * disabled case.
- */
-public class DisabledLongpressTest extends ActivityInstrumentationTestCase<Longpress> {
- private View mSimpleView;
- private boolean mLongClicked;
-
- public DisabledLongpressTest() {
- super("com.android.frameworktest", Longpress.class);
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
-
- final Longpress a = getActivity();
- mSimpleView = a.findViewById(R.id.simple_view);
- mSimpleView.setOnLongClickListener(new OnLongClickListener() {
- public boolean onLongClick(View v) {
- mLongClicked = true;
- return true;
- }
- });
- // The View#setOnLongClickListener will ensure the View is long
- // clickable, we reverse that here
- mSimpleView.setLongClickable(false);
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
-
- mLongClicked = false;
- }
-
- @MediumTest
- public void testSetUpConditions() throws Exception {
- assertNotNull(mSimpleView);
- assertTrue(mSimpleView.hasFocus());
- assertFalse(mLongClicked);
- }
-
- @LargeTest
- public void testKeypadLongClick() throws Exception {
- mSimpleView.requestFocus();
- getInstrumentation().waitForIdleSync();
- KeyUtils.longClick(this);
-
- getInstrumentation().waitForIdleSync();
- assertFalse(mLongClicked);
- }
-
- @LargeTest
- public void testTouchLongClick() throws Exception {
- TouchUtils.longClickView(this, mSimpleView);
- getInstrumentation().waitForIdleSync();
- assertFalse(mLongClicked);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/DisabledTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/view/DisabledTest.java
deleted file mode 100644
index d9ed033..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/DisabledTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import com.android.frameworktest.R;
-import android.test.TouchUtils;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.LargeTest;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.widget.Button;
-import android.view.KeyEvent;
-import android.view.View;
-
-/**
- * Exercises {@link android.view.View}'s disabled property.
- */
-public class DisabledTest extends ActivityInstrumentationTestCase<Disabled> {
- private Button mDisabled;
- private View mDisabledParent;
- private boolean mClicked;
- private boolean mParentClicked;
-
- public DisabledTest() {
- super("com.android.frameworktest", Disabled.class);
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
-
- final Disabled a = getActivity();
- mDisabled = (Button) a.findViewById(R.id.disabledButton);
- mDisabled.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- mClicked = true;
- }
- });
-
- mDisabledParent = a.findViewById(R.id.clickableParent);
- mDisabledParent.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- mParentClicked = true;
- }
- });
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
-
- mClicked = false;
- mParentClicked = false;
- }
-
- @MediumTest
- public void testSetUpConditions() throws Exception {
- assertNotNull(mDisabled);
- assertNotNull(mDisabledParent);
- assertFalse(mDisabled.isEnabled());
- assertTrue(mDisabledParent.isEnabled());
- assertTrue(mDisabled.hasFocus());
- }
-
- @MediumTest
- public void testKeypadClick() throws Exception {
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
- getInstrumentation().waitForIdleSync();
- assertFalse(mClicked);
- assertFalse(mParentClicked);
- }
-
- @LargeTest
- public void testTouchClick() throws Exception {
- TouchUtils.clickView(this, mDisabled);
- getInstrumentation().waitForIdleSync();
- assertFalse(mClicked);
- assertFalse(mParentClicked);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/GlobalFocusChangeTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/view/GlobalFocusChangeTest.java
deleted file mode 100644
index 8a8d728..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/GlobalFocusChangeTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.FlakyTest;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.TouchUtils;
-import android.view.View;
-import android.view.KeyEvent;
-import com.android.frameworktest.R;
-
-public class GlobalFocusChangeTest extends ActivityInstrumentationTestCase<GlobalFocusChange> {
- private GlobalFocusChange mActivity;
- private View mLeft;
- private View mRight;
-
- public GlobalFocusChangeTest() {
- super("com.android.frameworktest", GlobalFocusChange.class);
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- mActivity = getActivity();
- mLeft = mActivity.findViewById(R.id.left);
- mRight = mActivity.findViewById(R.id.right);
- }
-
- @Override
- protected void tearDown() throws Exception {
- mActivity.reset();
- super.tearDown();
- }
-
- @FlakyTest(tolerance = 4)
- @LargeTest
- public void testFocusChange() throws Exception {
- sendKeys(KeyEvent.KEYCODE_DPAD_RIGHT);
-
- assertFalse(mLeft.isFocused());
- assertTrue(mRight.isFocused());
-
- assertSame(mLeft, mActivity.mOldFocus);
- assertSame(mRight, mActivity.mNewFocus);
- }
-
- @FlakyTest(tolerance = 4)
- @MediumTest
- public void testEnterTouchMode() throws Exception {
- assertTrue(mLeft.isFocused());
-
- TouchUtils.tapView(this, mLeft);
-
- assertSame(mLeft, mActivity.mOldFocus);
- assertSame(null, mActivity.mNewFocus);
- }
-
- @FlakyTest(tolerance = 4)
- @MediumTest
- public void testLeaveTouchMode() throws Exception {
- assertTrue(mLeft.isFocused());
-
- TouchUtils.tapView(this, mLeft);
- sendKeys(KeyEvent.KEYCODE_DPAD_RIGHT);
-
- assertTrue(mLeft.isFocused());
-
- assertSame(null, mActivity.mOldFocus);
- assertSame(mLeft, mActivity.mNewFocus);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/IncludeTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/view/IncludeTest.java
deleted file mode 100644
index dd1382d..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/IncludeTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import com.android.frameworktest.view.Include;
-import com.android.frameworktest.R;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.View;
-import android.view.ViewGroup;
-
-public class IncludeTest extends ActivityInstrumentationTestCase<Include> {
- public IncludeTest() {
- super("com.android.frameworktest", Include.class);
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- }
-
- @MediumTest
- public void testIncluded() throws Exception {
- final Include activity = getActivity();
-
- final View button1 = activity.findViewById(R.id.included_button);
- assertNotNull("The layout include_button was not included", button1);
-
- final View button2 = activity.findViewById(R.id.included_button_overriden);
- assertNotNull("The layout include_button was not included with overriden id", button2);
- }
-
- @MediumTest
- public void testIncludedWithLayoutParams() throws Exception {
- final Include activity = getActivity();
-
- final View button1 = activity.findViewById(R.id.included_button);
- final View button2 = activity.findViewById(R.id.included_button_overriden);
-
- assertTrue("Both buttons should have different width",
- button1.getLayoutParams().width != button2.getLayoutParams().width);
- assertTrue("Both buttons should have different height",
- button1.getLayoutParams().height != button2.getLayoutParams().height);
- }
-
- @MediumTest
- public void testIncludedWithVisibility() throws Exception {
- final Include activity = getActivity();
- final View button1 = activity.findViewById(R.id.included_button_visibility);
-
- assertEquals("Included button should be invisible", View.INVISIBLE, button1.getVisibility());
- }
-
- @MediumTest
- public void testIncludedWithSize() throws Exception {
- final Include activity = getActivity();
- final View button1 = activity.findViewById(R.id.included_button_with_size);
-
- final ViewGroup.LayoutParams lp = button1.getLayoutParams();
- assertEquals("Included button should be 23dip x 23dip", 23, lp.width);
- assertEquals("Included button should be 23dip x 23dip", 23, lp.height);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/LongpressTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/view/LongpressTest.java
deleted file mode 100644
index 37106f6..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/LongpressTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import com.android.frameworktest.view.Longpress;
-import com.android.frameworktest.R;
-import com.android.frameworktest.util.KeyUtils;
-import android.test.TouchUtils;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.view.View;
-import android.view.View.OnLongClickListener;
-
-/**
- * Exercises {@link android.view.View}'s longpress plumbing.
- */
-public class LongpressTest extends ActivityInstrumentationTestCase<Longpress> {
- private View mSimpleView;
- private boolean mLongClicked;
-
- public LongpressTest() {
- super("com.android.frameworktest", Longpress.class);
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
-
- final Longpress a = getActivity();
- mSimpleView = a.findViewById(R.id.simple_view);
- mSimpleView.setOnLongClickListener(new OnLongClickListener() {
- public boolean onLongClick(View v) {
- mLongClicked = true;
- return true;
- }
- });
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
-
- mLongClicked = false;
- }
-
- @MediumTest
- public void testSetUpConditions() throws Exception {
- assertNotNull(mSimpleView);
- assertTrue(mSimpleView.hasFocus());
- assertFalse(mLongClicked);
- }
-
- @LargeTest
- public void testKeypadLongClick() throws Exception {
- mSimpleView.requestFocus();
- getInstrumentation().waitForIdleSync();
- KeyUtils.longClick(this);
-
- getInstrumentation().waitForIdleSync();
- assertTrue(mLongClicked);
- }
-
- @LargeTest
- public void testTouchLongClick() throws Exception {
- TouchUtils.longClickView(this, mSimpleView);
- getInstrumentation().waitForIdleSync();
- assertTrue(mLongClicked);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/MergeTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/view/MergeTest.java
deleted file mode 100644
index 612ebd4..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/MergeTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import com.android.frameworktest.view.Merge;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.ViewGroup;
-
-public class MergeTest extends ActivityInstrumentationTestCase<Merge> {
- public MergeTest() {
- super("com.android.frameworktest", Merge.class);
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- }
-
- @MediumTest
- public void testMerged() throws Exception {
- final Merge activity = getActivity();
- final ViewGroup layout = activity.getLayout();
-
- assertEquals("The layout wasn't merged", 7, layout.getChildCount());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/RemoteViewsActivityTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/view/RemoteViewsActivityTest.java
deleted file mode 100644
index 3dcb252..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/RemoteViewsActivityTest.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import android.os.Parcel;
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.InflateException;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.RemoteViews;
-
-import com.android.frameworktest.R;
-import com.android.frameworktest.view.RemoteViewsActivity;
-
-public class RemoteViewsActivityTest extends ActivityInstrumentationTestCase<RemoteViewsActivity> {
- public RemoteViewsActivityTest() {
- super("com.android.frameworktest", RemoteViewsActivity.class);
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- }
-
- @MediumTest
- public void testGood() throws Exception {
- final RemoteViewsActivity activity = getActivity();
-
- RemoteViews orig = new RemoteViews("com.android.frameworktest",
- R.layout.remote_view_test_good);
- Parcel p = Parcel.obtain();
- orig.writeToParcel(p, 0);
- p.setDataPosition(0);
-
- RemoteViews r = RemoteViews.CREATOR.createFromParcel(p);
-
- ViewGroup parent = (ViewGroup) activity.findViewById(R.id.parent);
-
- View result = r.apply(activity, parent);
-
- p.recycle();
-
- assertTrue("LinearLayout not inflated", result.findViewById(R.id.linear) != null);
- assertTrue("TextView not inflated", result.findViewById(R.id.text) != null);
- assertTrue("ImageView not inflated", result.findViewById(R.id.image) != null);
- assertTrue("FrameLayout not inflated", result.findViewById(R.id.frame) != null);
- assertTrue("RelateiveLayout not inflated", result.findViewById(R.id.relative) != null);
- assertTrue("AbsoluteLayout not inflated", result.findViewById(R.id.absolute) != null);
- assertTrue("ProgressBar not inflated", result.findViewById(R.id.progress) != null);
- assertTrue("ImageButton not inflated", result.findViewById(R.id.image_button) != null);
- assertTrue("Button not inflated", result.findViewById(R.id.button) != null);
- }
-
- @MediumTest
- public void testDerivedClass() throws Exception {
- final RemoteViewsActivity activity = getActivity();
-
- RemoteViews orig = new RemoteViews("com.android.frameworktest",
- R.layout.remote_view_test_bad_1);
- Parcel p = Parcel.obtain();
- orig.writeToParcel(p, 0);
- p.setDataPosition(0);
-
- RemoteViews r = RemoteViews.CREATOR.createFromParcel(p);
-
- ViewGroup parent = (ViewGroup) activity.findViewById(R.id.parent);
-
- boolean exceptionThrown = false;
- View result = null;
-
- try {
- result = r.apply(activity, parent);
- } catch (InflateException e) {
- exceptionThrown = true;
- }
-
- p.recycle();
-
- assertTrue("Derived class (EditText) allowed to be inflated", exceptionThrown);
- assertNull("Derived class (EditText) allowed to be inflated", result);
- }
-
- @MediumTest
- public void testWebView() throws Exception {
- final RemoteViewsActivity activity = getActivity();
-
- RemoteViews orig = new RemoteViews("com.android.frameworktest",
- R.layout.remote_view_test_bad_2);
- Parcel p = Parcel.obtain();
- orig.writeToParcel(p, 0);
- p.setDataPosition(0);
-
- RemoteViews r = RemoteViews.CREATOR.createFromParcel(p);
-
- ViewGroup parent = (ViewGroup) activity.findViewById(R.id.parent);
-
- boolean exceptionThrown = false;
- View result = null;
-
- try {
- result = r.apply(activity, parent);
- } catch (InflateException e) {
- exceptionThrown = true;
- }
-
- p.recycle();
-
- assertTrue("WebView allowed to be inflated", exceptionThrown);
- assertNull("WebView allowed to be inflated", result);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/RunQueueTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/view/RunQueueTest.java
deleted file mode 100644
index dc8fcd8..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/RunQueueTest.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-
-public class RunQueueTest extends ActivityInstrumentationTestCase<RunQueue> {
- public RunQueueTest() {
- super("com.android.frameworktest", RunQueue.class);
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- }
-
- @MediumTest
- public void testRunnableRan() throws Exception {
- final RunQueue activity = getActivity();
- getInstrumentation().waitForIdleSync();
- assertTrue("The runnable did not run", activity.runnableRan);
- }
-
- @MediumTest
- public void testRunnableCancelled() throws Exception {
- final RunQueue activity = getActivity();
- getInstrumentation().waitForIdleSync();
- assertTrue("The runnable was not cancelled", activity.runnableCancelled);
- }
-
- @MediumTest
- public void testListenerFired() throws Exception {
- final RunQueue activity = getActivity();
- getInstrumentation().waitForIdleSync();
- assertTrue("The global layout listener did not fire", activity.globalLayout);
- }
-
- @MediumTest
- public void testTreeObserverKilled() throws Exception {
- final RunQueue activity = getActivity();
- getInstrumentation().waitForIdleSync();
- assertFalse("The view tree observer is still alive", activity.viewTreeObserver.isAlive());
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/ViewGroupChildrenTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/view/ViewGroupChildrenTest.java
deleted file mode 100644
index fceec51..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/ViewGroupChildrenTest.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import com.android.frameworktest.R;
-import com.android.frameworktest.view.ViewGroupChildren;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.ViewAsserts;
-import android.test.UiThreadTest;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-/**
- * Exercises {@link android.view.ViewGroup}'s ability to add/remove children.
- */
-public class ViewGroupChildrenTest extends ActivityInstrumentationTestCase<ViewGroupChildren> {
- private ViewGroup mGroup;
-
- public ViewGroupChildrenTest() {
- super("com.android.frameworktest", ViewGroupChildren.class);
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
-
- final ViewGroupChildren a = getActivity();
- mGroup = (ViewGroup) a.findViewById(R.id.group);
- }
-
- @MediumTest
- public void testSetUpConditions() throws Exception {
- assertNotNull(mGroup);
- }
-
- @MediumTest
- public void testStartsEmpty() throws Exception {
- assertEquals("A ViewGroup should have no child by default", 0, mGroup.getChildCount());
- }
-
- @UiThreadTest
- @MediumTest
- public void testAddChild() throws Exception {
- View view = createView("1");
- mGroup.addView(view);
-
- assertEquals(1, mGroup.getChildCount());
- ViewAsserts.assertGroupIntegrity(mGroup);
- ViewAsserts.assertGroupContains(mGroup, view);
- }
-
- @UiThreadTest
- @MediumTest
- public void testAddChildAtFront() throws Exception {
- // 24 should be greater than ViewGroup.ARRAY_CAPACITY_INCREMENT
- for (int i = 0; i < 24; i++) {
- View view = createView(String.valueOf(i + 1));
- mGroup.addView(view);
- }
-
- View view = createView("X");
- mGroup.addView(view, 0);
-
- assertEquals(25, mGroup.getChildCount());
- ViewAsserts.assertGroupIntegrity(mGroup);
- ViewAsserts.assertGroupContains(mGroup, view);
- assertSame(view, mGroup.getChildAt(0));
- }
-
- @UiThreadTest
- @MediumTest
- public void testAddChildInMiddle() throws Exception {
- // 24 should be greater than ViewGroup.ARRAY_CAPACITY_INCREMENT
- for (int i = 0; i < 24; i++) {
- View view = createView(String.valueOf(i + 1));
- mGroup.addView(view);
- }
-
- View view = createView("X");
- mGroup.addView(view, 12);
-
- assertEquals(25, mGroup.getChildCount());
- ViewAsserts.assertGroupIntegrity(mGroup);
- ViewAsserts.assertGroupContains(mGroup, view);
- assertSame(view, mGroup.getChildAt(12));
- }
-
- @UiThreadTest
- @MediumTest
- public void testAddChildren() throws Exception {
- // 24 should be greater than ViewGroup.ARRAY_CAPACITY_INCREMENT
- for (int i = 0; i < 24; i++) {
- View view = createView(String.valueOf(i + 1));
- mGroup.addView(view);
-
- ViewAsserts.assertGroupContains(mGroup, view);
- }
- assertEquals(24, mGroup.getChildCount());
- }
-
- @UiThreadTest
- @MediumTest
- public void testRemoveChild() throws Exception {
- View view = createView("1");
- mGroup.addView(view);
-
- ViewAsserts.assertGroupIntegrity(mGroup);
-
- mGroup.removeView(view);
-
- ViewAsserts.assertGroupIntegrity(mGroup);
- ViewAsserts.assertGroupNotContains(mGroup, view);
-
- assertEquals(0, mGroup.getChildCount());
- assertNull(view.getParent());
- }
-
- @UiThreadTest
- @MediumTest
- public void testRemoveChildren() throws Exception {
- // 24 should be greater than ViewGroup.ARRAY_CAPACITY_INCREMENT
- final View[] views = new View[24];
-
- for (int i = 0; i < views.length; i++) {
- views[i] = createView(String.valueOf(i + 1));
- mGroup.addView(views[i]);
- }
-
- for (int i = views.length - 1; i >= 0; i--) {
- mGroup.removeViewAt(i);
- ViewAsserts.assertGroupIntegrity(mGroup);
- ViewAsserts.assertGroupNotContains(mGroup, views[i]);
- assertNull(views[i].getParent());
- }
-
- assertEquals(0, mGroup.getChildCount());
- }
-
- @UiThreadTest
- @MediumTest
- public void testRemoveChildrenBulk() throws Exception {
- // 24 should be greater than ViewGroup.ARRAY_CAPACITY_INCREMENT
- final View[] views = new View[24];
-
- for (int i = 0; i < views.length; i++) {
- views[i] = createView(String.valueOf(i + 1));
- mGroup.addView(views[i]);
- }
-
- mGroup.removeViews(6, 7);
- ViewAsserts.assertGroupIntegrity(mGroup);
- for (int i = 6; i < 13; i++) {
- ViewAsserts.assertGroupNotContains(mGroup, views[i]);
- assertNull(views[i].getParent());
- }
-
- assertEquals(17, mGroup.getChildCount());
- }
-
- @UiThreadTest
- @MediumTest
- public void testRemoveChildrenBulkAtFront() throws Exception {
- // 24 should be greater than ViewGroup.ARRAY_CAPACITY_INCREMENT
- final View[] views = new View[24];
-
- for (int i = 0; i < views.length; i++) {
- views[i] = createView(String.valueOf(i + 1));
- mGroup.addView(views[i]);
- }
-
- mGroup.removeViews(0, 7);
- ViewAsserts.assertGroupIntegrity(mGroup);
- for (int i = 0; i < 7; i++) {
- ViewAsserts.assertGroupNotContains(mGroup, views[i]);
- assertNull(views[i].getParent());
- }
-
- assertEquals("8", ((TextView) mGroup.getChildAt(0)).getText());
- assertEquals(17, mGroup.getChildCount());
- }
-
- @UiThreadTest
- @MediumTest
- public void testRemoveChildrenBulkAtEnd() throws Exception {
- // 24 should be greater than ViewGroup.ARRAY_CAPACITY_INCREMENT
- final View[] views = new View[24];
-
- for (int i = 0; i < views.length; i++) {
- views[i] = createView(String.valueOf(i + 1));
- mGroup.addView(views[i]);
- }
-
- mGroup.removeViews(17, 7);
- ViewAsserts.assertGroupIntegrity(mGroup);
- for (int i = 17; i < 24; i++) {
- ViewAsserts.assertGroupNotContains(mGroup, views[i]);
- assertNull(views[i].getParent());
- }
- assertEquals("17", ((TextView) mGroup.getChildAt(mGroup.getChildCount() - 1)).getText());
- assertEquals(17, mGroup.getChildCount());
- }
-
- @UiThreadTest
- @MediumTest
- public void testRemoveChildAtFront() throws Exception {
- // 24 should be greater than ViewGroup.ARRAY_CAPACITY_INCREMENT
- final View[] views = new View[24];
-
- for (int i = 0; i < views.length; i++) {
- views[i] = createView(String.valueOf(i + 1));
- mGroup.addView(views[i]);
- }
-
- mGroup.removeViewAt(0);
- ViewAsserts.assertGroupIntegrity(mGroup);
- ViewAsserts.assertGroupNotContains(mGroup, views[0]);
- assertNull(views[0].getParent());
-
- assertEquals(views.length - 1, mGroup.getChildCount());
- }
-
- @UiThreadTest
- @MediumTest
- public void testRemoveChildInMiddle() throws Exception {
- // 24 should be greater than ViewGroup.ARRAY_CAPACITY_INCREMENT
- final View[] views = new View[24];
-
- for (int i = 0; i < views.length; i++) {
- views[i] = createView(String.valueOf(i + 1));
- mGroup.addView(views[i]);
- }
-
- mGroup.removeViewAt(12);
- ViewAsserts.assertGroupIntegrity(mGroup);
- ViewAsserts.assertGroupNotContains(mGroup, views[12]);
- assertNull(views[12].getParent());
-
- assertEquals(views.length - 1, mGroup.getChildCount());
- }
-
- private TextView createView(String text) {
- TextView view = new TextView(getActivity());
- view.setText(text);
- view.setLayoutParams(new LinearLayout.LayoutParams(
- LinearLayout.LayoutParams.FILL_PARENT,
- LinearLayout.LayoutParams.WRAP_CONTENT
- ));
- return view;
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/ViewStubTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/view/ViewStubTest.java
deleted file mode 100644
index 89bd646..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/ViewStubTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import com.android.frameworktest.view.StubbedView;
-import com.android.frameworktest.R;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.UiThreadTest;
-import android.view.View;
-import android.view.ViewStub;
-
-public class ViewStubTest extends ActivityInstrumentationTestCase<StubbedView> {
- public ViewStubTest() {
- super("com.android.frameworktest", StubbedView.class);
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- }
-
- @MediumTest
- public void testStubbed() throws Exception {
- final StubbedView activity = getActivity();
-
- final View stub = activity.findViewById(R.id.viewStub);
- assertNotNull("The ViewStub does not exist", stub);
- }
-
- @UiThreadTest
- @MediumTest
- public void testInflated() throws Exception {
- final StubbedView activity = getActivity();
-
- final ViewStub stub = (ViewStub) activity.findViewById(R.id.viewStub);
- final View swapped = stub.inflate();
-
- assertNotNull("The inflated view is null", swapped);
- }
-
- @UiThreadTest
- @MediumTest
- public void testInflatedId() throws Exception {
- final StubbedView activity = getActivity();
-
- final ViewStub stub = (ViewStub) activity.findViewById(R.id.viewStubWithId);
- final View swapped = stub.inflate();
-
- assertNotNull("The inflated view is null", swapped);
- assertTrue("The inflated view has no id", swapped.getId() != View.NO_ID);
- assertTrue("The inflated view has the wrong id", swapped.getId() == R.id.stub_inflated);
- }
-
- @UiThreadTest
- @MediumTest
- public void testInflatedLayoutParams() throws Exception {
- final StubbedView activity = getActivity();
-
- final ViewStub stub = (ViewStub) activity.findViewById(R.id.viewStubWithId);
- final View swapped = stub.inflate();
-
- assertNotNull("The inflated view is null", swapped);
-
- assertEquals("Both stub and inflated should same width",
- stub.getLayoutParams().width, swapped.getLayoutParams().width);
- assertEquals("Both stub and inflated should same height",
- stub.getLayoutParams().height, swapped.getLayoutParams().height);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/VisibilityTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/view/VisibilityTest.java
deleted file mode 100644
index 77b281d..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/VisibilityTest.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import com.android.frameworktest.view.Visibility;
-import com.android.frameworktest.R;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.widget.Button;
-import android.widget.TextView;
-import android.view.View;
-import static android.view.KeyEvent.*;
-
-/**
- * Exercises {@link android.view.View}'s ability to change visibility between
- * GONE, VISIBLE and INVISIBLE.
- */
-public class VisibilityTest extends ActivityInstrumentationTestCase<Visibility> {
- private TextView mRefUp;
- private TextView mRefDown;
- private TextView mVictim;
- private Button mVisible;
- private Button mInvisible;
- private Button mGone;
-
- public VisibilityTest() {
- super("com.android.frameworktest", Visibility.class);
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
-
- final Visibility a = getActivity();
- mRefUp = (TextView) a.findViewById(R.id.refUp);
- mRefDown = (TextView) a.findViewById(R.id.refDown);
- mVictim = (TextView) a.findViewById(R.id.victim);
- mVisible = (Button) a.findViewById(R.id.vis);
- mInvisible = (Button) a.findViewById(R.id.invis);
- mGone = (Button) a.findViewById(R.id.gone);
- }
-
- @MediumTest
- public void testSetUpConditions() throws Exception {
- assertNotNull(mRefUp);
- assertNotNull(mRefDown);
- assertNotNull(mVictim);
- assertNotNull(mVisible);
- assertNotNull(mInvisible);
- assertNotNull(mGone);
-
- assertTrue(mVisible.hasFocus());
- }
-
- @MediumTest
- public void testVisibleToInvisible() throws Exception {
- sendKeys("DPAD_RIGHT");
- assertTrue(mInvisible.hasFocus());
-
- int oldTop = mVictim.getTop();
-
- sendKeys("DPAD_CENTER");
- assertEquals(View.INVISIBLE, mVictim.getVisibility());
-
- int newTop = mVictim.getTop();
- assertEquals(oldTop, newTop);
- }
-
- @MediumTest
- public void testVisibleToGone() throws Exception {
- //sendKeys("2*DPAD_RIGHT");
- sendRepeatedKeys(2, KEYCODE_DPAD_RIGHT);
- assertTrue(mGone.hasFocus());
-
- int oldTop = mVictim.getTop();
-
- sendKeys("DPAD_CENTER");
- assertEquals(View.GONE, mVictim.getVisibility());
-
- int refDownTop = mRefDown.getTop();
- assertEquals(oldTop, refDownTop);
- }
-
- @LargeTest
- public void testGoneToVisible() throws Exception {
- sendKeys("2*DPAD_RIGHT");
- assertTrue(mGone.hasFocus());
-
- int oldTop = mVictim.getTop();
-
- sendKeys("DPAD_CENTER");
- assertEquals(View.GONE, mVictim.getVisibility());
-
- int refDownTop = mRefDown.getTop();
- assertEquals(oldTop, refDownTop);
-
- sendKeys("2*DPAD_LEFT DPAD_CENTER");
- assertEquals(View.VISIBLE, mVictim.getVisibility());
-
- int newTop = mVictim.getTop();
- assertEquals(oldTop, newTop);
- }
-
- @MediumTest
- public void testGoneToInvisible() throws Exception {
- sendKeys("2*DPAD_RIGHT");
- assertTrue(mGone.hasFocus());
-
- int oldTop = mVictim.getTop();
-
- sendKeys("DPAD_CENTER");
- assertEquals(View.GONE, mVictim.getVisibility());
-
- int refDownTop = mRefDown.getTop();
- assertEquals(oldTop, refDownTop);
-
- sendKeys(KEYCODE_DPAD_LEFT, KEYCODE_DPAD_CENTER);
- assertEquals(View.INVISIBLE, mVictim.getVisibility());
-
- int newTop = mVictim.getTop();
- assertEquals(oldTop, newTop);
- }
-
- @MediumTest
- public void testInvisibleToVisible() throws Exception {
- sendKeys("DPAD_RIGHT");
- assertTrue(mInvisible.hasFocus());
-
- int oldTop = mVictim.getTop();
-
- sendKeys("DPAD_CENTER");
- assertEquals(View.INVISIBLE, mVictim.getVisibility());
-
- int newTop = mVictim.getTop();
- assertEquals(oldTop, newTop);
-
- sendKeys("DPAD_LEFT DPAD_CENTER");
- assertEquals(View.VISIBLE, mVictim.getVisibility());
-
- newTop = mVictim.getTop();
- assertEquals(oldTop, newTop);
- }
-
- @MediumTest
- public void testInvisibleToGone() throws Exception {
- sendKeys("DPAD_RIGHT");
- assertTrue(mInvisible.hasFocus());
-
- int oldTop = mVictim.getTop();
-
- sendKeys("DPAD_CENTER");
- assertEquals(View.INVISIBLE, mVictim.getVisibility());
-
- int newTop = mVictim.getTop();
- assertEquals(oldTop, newTop);
-
- sendKeys("DPAD_RIGHT DPAD_CENTER");
- assertEquals(View.GONE, mVictim.getVisibility());
-
- int refDownTop = mRefDown.getTop();
- assertEquals(oldTop, refDownTop);
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/ZeroSizedTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/view/ZeroSizedTest.java
deleted file mode 100644
index cd646e4..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/view/ZeroSizedTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworktest.view;
-
-import com.android.frameworktest.view.ZeroSized;
-import com.android.frameworktest.R;
-
-import android.test.ActivityInstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.View;
-import android.graphics.Bitmap;
-
-/**
- * Builds the drawing cache of Views of various dimension. The assumption is that
- * a View with a 0-sized dimension (width or height) will always have a null
- * drawing cache.
- */
-public class ZeroSizedTest extends ActivityInstrumentationTestCase<ZeroSized> {
- private View mWithDimension;
- private View mWithNoWdith;
- private View mWithNoHeight;
- private View mWithNoDimension;
-
- public ZeroSizedTest() {
- super("com.android.frameworktest", ZeroSized.class);
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
-
- final ZeroSized activity = getActivity();
- mWithDimension = activity.findViewById(R.id.dimension);
- mWithNoWdith = activity.findViewById(R.id.noWidth);
- mWithNoHeight = activity.findViewById(R.id.noHeight);
- mWithNoDimension = activity.findViewById(R.id.noDimension);
- }
-
- @MediumTest
- public void testSetUpConditions() throws Exception {
- assertNotNull(mWithDimension);
- assertNotNull(mWithNoWdith);
- assertNotNull(mWithNoHeight);
- assertNotNull(mWithNoDimension);
- }
-
- @MediumTest
- public void testDrawingCacheWithDimension() throws Exception {
- assertTrue(mWithDimension.getWidth() > 0);
- assertTrue(mWithDimension.getHeight() > 0);
- assertNotNull(createCacheForView(mWithDimension));
- }
-
- @MediumTest
- public void testDrawingCacheWithNoWidth() throws Exception {
- assertTrue(mWithNoWdith.getWidth() == 0);
- assertTrue(mWithNoWdith.getHeight() > 0);
- assertNull(createCacheForView(mWithNoWdith));
- }
-
- @MediumTest
- public void testDrawingCacheWithNoHeight() throws Exception {
- assertTrue(mWithNoHeight.getWidth() > 0);
- assertTrue(mWithNoHeight.getHeight() == 0);
- assertNull(createCacheForView(mWithNoHeight));
- }
-
- @MediumTest
- public void testDrawingCacheWithNoDimension() throws Exception {
- assertTrue(mWithNoDimension.getWidth() == 0);
- assertTrue(mWithNoDimension.getHeight() == 0);
- assertNull(createCacheForView(mWithNoDimension));
- }
-
- private Bitmap createCacheForView(final View view) {
- final Bitmap[] cache = new Bitmap[1];
- getActivity().runOnUiThread(new Runnable() {
- public void run() {
- view.setDrawingCacheEnabled(true);
- view.invalidate();
- view.buildDrawingCache();
- cache[0] = view.getDrawingCache();
- }
- });
- getInstrumentation().waitForIdleSync();
- return cache[0];
- }
-}
diff --git a/tests/FrameworkTest/tests/src/com/android/frameworktest/widget/ListViewTest.java b/tests/FrameworkTest/tests/src/com/android/frameworktest/widget/ListViewTest.java
deleted file mode 100644
index ecb7d3a..0000000
--- a/tests/FrameworkTest/tests/src/com/android/frameworktest/widget/ListViewTest.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package com.android.frameworktest.widget;
-
-import com.google.android.collect.Lists;
-
-import junit.framework.Assert;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.test.InstrumentationTestCase;
-import android.test.mock.MockContext;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-
-import java.util.List;
-
-/**
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the
- * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied. See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-public class ListViewTest extends InstrumentationTestCase {
-
- /**
- * If a view in a ListView requests a layout it should be remeasured.
- */
- @MediumTest
- public void testRequestLayout() throws Exception {
- MockContext context = new MockContext2();
- ListView listView = new ListView(context);
- List<String> items = Lists.newArrayList("hello");
- Adapter<String> adapter = new Adapter<String>(context, 0, items);
- listView.setAdapter(adapter);
-
- int measureSpec = View.MeasureSpec.makeMeasureSpec(100, View.MeasureSpec.EXACTLY);
-
- adapter.notifyDataSetChanged();
- listView.measure(measureSpec, measureSpec);
- listView.layout(0, 0, 100, 100);
-
- MockView childView = (MockView) listView.getChildAt(0);
-
- childView.requestLayout();
- childView.onMeasureCalled = false;
- listView.measure(measureSpec, measureSpec);
- listView.layout(0, 0, 100, 100);
- Assert.assertTrue(childView.onMeasureCalled);
- }
-
- /**
- * The list view should handle the disappearance of the only selected item, even when that item
- * was selected before its disappearance.
- *
- */
- @MediumTest
- public void testNoSelectableItems() throws Exception {
- MockContext context = new MockContext2();
- ListView listView = new ListView(context);
- // We use a header as the unselectable item to remain after the selectable one is removed.
- listView.addHeaderView(new View(context), null, false);
- List<String> items = Lists.newArrayList("hello");
- Adapter<String> adapter = new Adapter<String>(context, 0, items);
- listView.setAdapter(adapter);
-
- listView.setSelection(1);
-
- int measureSpec = View.MeasureSpec.makeMeasureSpec(100, View.MeasureSpec.EXACTLY);
-
- adapter.notifyDataSetChanged();
- listView.measure(measureSpec, measureSpec);
- listView.layout(0, 0, 100, 100);
-
- items.remove(0);
-
- adapter.notifyDataSetChanged();
- listView.measure(measureSpec, measureSpec);
- listView.layout(0, 0, 100, 100);
- }
-
- private class MockContext2 extends MockContext {
-
- @Override
- public Resources getResources() {
- return getInstrumentation().getTargetContext().getResources();
- }
-
- @Override
- public Resources.Theme getTheme() {
- return getInstrumentation().getTargetContext().getTheme();
- }
-
- @Override
- public Object getSystemService(String name) {
- if (Context.LAYOUT_INFLATER_SERVICE.equals(name)) {
- return getInstrumentation().getTargetContext().getSystemService(name);
- }
- return super.getSystemService(name);
- }
- }
-
- private class MockView extends View {
-
- public boolean onMeasureCalled = false;
-
- public MockView(Context context) {
- super(context);
- }
-
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
- onMeasureCalled = true;
- }
- }
-
- private class Adapter<T> extends ArrayAdapter<T> {
-
- public Adapter(Context context, int resource, List<T> objects) {
- super(context, resource, objects);
- }
-
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- return new MockView(getContext());
- }
- }
-
-}
diff --git a/tests/ImfTest/Android.mk b/tests/ImfTest/Android.mk
deleted file mode 100755
index eb5327b..0000000
--- a/tests/ImfTest/Android.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-# We only want this apk build for tests.
-LOCAL_MODULE_TAGS := tests
-
-# Only compile source java files in this apk.
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_PACKAGE_NAME := ImfTest
-
-include $(BUILD_PACKAGE)
-
-# Use the following include to make our test apk.
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/tests/ImfTest/AndroidManifest.xml b/tests/ImfTest/AndroidManifest.xml
deleted file mode 100755
index 55e5d38..0000000
--- a/tests/ImfTest/AndroidManifest.xml
+++ /dev/null
@@ -1,144 +0,0 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.imftest">
-
- <application>
-
- <activity android:name=".samples.InputTypeActivity" android:label="Input Type Activity">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.LAUNCHER" />
- <category android:name="android.intent.category.IMF_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".samples.ButtonActivity" android:label="Button Activity">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.LAUNCHER" />
- <category android:name="android.intent.category.IMF_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".samples.BigEditTextActivityNonScrollablePanScan" android:label="Big ET !Scroll Pan/Scan">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.LAUNCHER" />
- <category android:name="android.intent.category.IMF_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".samples.ManyEditTextActivityNoScrollPanScan" android:label="ManyEditTextActivityNoScrollPanScan">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.LAUNCHER" />
- <category android:name="android.intent.category.IMF_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".samples.BigEditTextActivityNonScrollableResize" android:label="Big ET !Scroll Resize">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.LAUNCHER" />
- <category android:name="android.intent.category.IMF_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".samples.BigEditTextActivityScrollablePanScan" android:label="Big ET Scroll Pan/Scan">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.LAUNCHER" />
- <category android:name="android.intent.category.IMF_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".samples.BigEditTextActivityScrollableResize" android:label="Big ET Scroll Resize">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.LAUNCHER" />
- <category android:name="android.intent.category.IMF_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".samples.EditTextActivityDialog" android:label="ET Dialog">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.LAUNCHER" />
- <category android:name="android.intent.category.IMF_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".samples.ManyEditTextActivityScrollPanScan" android:label="ManyEditTextActivityScrollPanScan">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.LAUNCHER" />
- <category android:name="android.intent.category.IMF_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".samples.ManyEditTextActivityScrollResize" android:label="ManyEditTextActivityScrollResize">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.LAUNCHER" />
- <category android:name="android.intent.category.IMF_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".samples.BottomEditTextActivityPanScan" android:label="BottomEditTextActivityPanScan">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.LAUNCHER" />
- <category android:name="android.intent.category.IMF_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".samples.BottomEditTextActivityResize" android:label="BottomEditTextActivityResize">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.LAUNCHER" />
- <category android:name="android.intent.category.IMF_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".samples.OneEditTextActivitySelected" android:label="OneEditTextActivitySelected">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.LAUNCHER" />
- <category android:name="android.intent.category.IMF_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".samples.OneEditTextActivityNotSelected" android:label="OneEditTextActivityNotSelected">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.LAUNCHER" />
- <category android:name="android.intent.category.IMF_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".samples.AutoCompleteTextViewActivityPortrait" android:label="AutoCompleteTextViewActivityPortrait" android:screenOrientation="portrait">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.LAUNCHER" />
- <category android:name="android.intent.category.IMF_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".samples.AutoCompleteTextViewActivityLandscape" android:label="AutoCompleteTextViewActivityLandscape" android:screenOrientation="landscape">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.LAUNCHER" />
- <category android:name="android.intent.category.IMF_TEST" />
- </intent-filter>
- </activity>
-
- <activity android:name=".samples.DialogActivity" android:label="DialogActivity" android:screenOrientation="portrait">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.LAUNCHER" />
- <category android:name="android.intent.category.IMF_TEST" />
- </intent-filter>
- </activity>
-
- </application>
-
-</manifest>
diff --git a/tests/ImfTest/res/layout/dialog_edit_text_no_scroll.xml b/tests/ImfTest/res/layout/dialog_edit_text_no_scroll.xml
deleted file mode 100644
index e8ffa1c..0000000
--- a/tests/ImfTest/res/layout/dialog_edit_text_no_scroll.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:padding="20dip"
- android:orientation="vertical">
-
- <View
- android:id="@+id/blank"
- android:layout_height="0dip"
- android:layout_width="fill_parent"
- android:layout_weight="1"/>
-
- <EditText
- android:id="@+id/dialog_edit_text"
- android:layout_height="wrap_content"
- android:layout_width="fill_parent"
- android:scrollHorizontally="true"
- android:textAppearance="?android:attr/textAppearanceMedium" />
-
-</LinearLayout>
diff --git a/tests/ImfTest/res/layout/full_screen_edit_text.xml b/tests/ImfTest/res/layout/full_screen_edit_text.xml
deleted file mode 100755
index f22aa2f..0000000
--- a/tests/ImfTest/res/layout/full_screen_edit_text.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/* //device/samples/SampleCode/res/layout/baseline_1.xml
-**
-** Copyright 2009, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<EditText xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/data"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:minLines="15"
- android:gravity="top"/>
-
diff --git a/tests/ImfTest/res/layout/one_edit_text_activity.xml b/tests/ImfTest/res/layout/one_edit_text_activity.xml
deleted file mode 100755
index 09925e1..0000000
--- a/tests/ImfTest/res/layout/one_edit_text_activity.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/* //device/samples/SampleCode/res/layout/baseline_1.xml
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical"
->
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical"
- android:baselineAligned="false">
-
- <View android:id="@+id/blank"
- android:layout_height="0dip"
- android:layout_width="fill_parent"
- android:layout_weight="1"
- />
-
- <EditText android:id="@+id/dialog_edit_text"
- android:layout_height="wrap_content"
- android:layout_width="fill_parent"
- android:scrollHorizontally="true"
- android:textAppearance="?android:attr/textAppearanceMedium"
- />
- </LinearLayout>
-
- <View
- android:layout_width="fill_parent"
- android:layout_height="1dip"
- android:background="@android:drawable/divider_horizontal_dark"
- />
-</LinearLayout>
diff --git a/tests/ImfTest/res/layout/sample_edit_text.xml b/tests/ImfTest/res/layout/sample_edit_text.xml
deleted file mode 100755
index 99a5cf8..0000000
--- a/tests/ImfTest/res/layout/sample_edit_text.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/* //device/samples/SampleCode/res/layout/baseline_1.xml
-**
-** Copyright 2007, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical"
->
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:minHeight="?android:attr/listPreferredItemHeight"
- android:orientation="horizontal"
- android:baselineAligned="false"
- android:gravity="center_vertical"
- >
-
- <TextView android:id="@+id/label"
- android:layout_width="100dip"
- android:layout_height="wrap_content"
- android:gravity="right|center_vertical"
- />
-
- <EditText android:id="@+id/data"
- android:layout_width="0dip"
- android:layout_weight="1"
- android:layout_height="wrap_content"
- android:layout_marginLeft="8dip"
- />
- </LinearLayout>
-
- <View
- android:layout_width="fill_parent"
- android:layout_height="1dip"
- android:background="@android:drawable/divider_horizontal_dark"
- />
-</LinearLayout>
diff --git a/tests/ImfTest/res/values/config.xml b/tests/ImfTest/res/values/config.xml
deleted file mode 100644
index 5ae40a3..0000000
--- a/tests/ImfTest/res/values/config.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/**
- * Copyright (c) 2009, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
--->
-<resources>
- <bool name="def_expect_ime_autopop">false</bool>
-</resources>
diff --git a/tests/ImfTest/res/values/strings.xml b/tests/ImfTest/res/values/strings.xml
deleted file mode 100755
index fc87480..0000000
--- a/tests/ImfTest/res/values/strings.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2008, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- Strings for sample activities -->
- <string name="normal_edit_text_label">Normal</string>
- <string name="uri_edit_text_label">Uri</string>
- <string name="email_address_edit_text_label">Email Address</string>
- <string name="email_subject_edit_text_label">Email Subject</string>
- <string name="email_content_edit_text_label">Email Content</string>
- <string name="person_name_edit_text_label">Person Name</string>
- <string name="postal_address_edit_text_label">Postal Address</string>
- <string name="password_edit_text_label">Password</string>
- <string name="search_string_edit_text_label">Search String</string>
- <string name="web_edit_text_label">Web Edit Text</string>
- <string name="signed_number_edit_text_label">Signed Number</string>
- <string name="decimal_number_edit_text_label">Decimal Number</string>
- <string name="phone_number_edit_text_label">Phone Number</string>
- <string name="normal_datetime_edit_text_label">Datetime</string>
- <string name="date_edit_text_label">Date</string>
- <string name="time_edit_text_label">Time</string>
- <string name="cap_chars_edit_text_label">Cap Chars</string>
- <string name="cap_words_edit_text_label">Cap Words</string>
- <string name="multiline_edit_text_label">Multiline</string>
- <string name="search_edit_text_label">Search (flag)</string>
- <string name="cap_sentences_edit_text_label">Cap Sentences</string>
- <string name="auto_complete_edit_text_label">Auto Complete</string>
- <string name="auto_correct_edit_text_label">Auto Correct</string>
- <string name="test_dialog">Test Dialog</string>
- <string name="open_dialog_scrollable">open scrollable dialog</string>
- <string name="open_dialog_nonscrollable">open nonscrollable dialog</string>
-
-
-</resources>
diff --git a/tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityLandscape.java b/tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityLandscape.java
deleted file mode 100644
index 9638d34..0000000
--- a/tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityLandscape.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package com.android.imftest.samples;
-
-import android.app.Activity;
-import android.app.ActivityManagerNative;
-import android.os.Bundle;
-import android.os.RemoteException;
-import android.provider.MediaStore;
-import android.view.KeyEvent;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.Window;
-import android.view.WindowManager;
-import android.widget.LinearLayout;
-import android.view.inputmethod.InputMethodManager;
-import android.widget.EditText;
-import android.widget.TextView;
-import android.widget.AutoCompleteTextView;
-import android.widget.ArrayAdapter;
-import android.content.Intent;
-import android.content.pm.ActivityInfo;
-
-import com.android.internal.R;
-
-/*
- * Activity with AutoCompleteTextView forced to landscape mode
- */
-public class AutoCompleteTextViewActivityLandscape extends Activity
-{
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
-
- setContentView(R.layout.auto_complete_list);
-
- ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
- android.R.layout.simple_dropdown_item_1line, COUNTRIES);
- AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.edit);
- textView.setAdapter(adapter);
- }
-
- static final String[] COUNTRIES = new String[] {
- "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",
- "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina",
- "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan",
- "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium",
- "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia",
- "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", "British Indian Ocean Territory",
- "British Virgin Islands", "Brunei", "Bulgaria", "Burkina Faso", "Burundi",
- "Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde",
- "Cayman Islands", "Central African Republic", "Chad", "Chile", "China",
- "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo",
- "Cook Islands", "Costa Rica", "Croatia", "Cuba", "Cyprus", "Czech Republic",
- "Democratic Republic of the Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic",
- "East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea",
- "Estonia", "Ethiopia", "Faeroe Islands", "Falkland Islands", "Fiji", "Finland",
- "Former Yugoslav Republic of Macedonia", "France", "French Guiana", "French Polynesia",
- "French Southern Territories", "Gabon", "Georgia", "Germany", "Ghana", "Gibraltar",
- "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guinea", "Guinea-Bissau",
- "Guyana", "Haiti", "Heard Island and McDonald Islands", "Honduras", "Hong Kong", "Hungary",
- "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica",
- "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kuwait", "Kyrgyzstan", "Laos",
- "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg",
- "Macau", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands",
- "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova",
- "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Myanmar", "Namibia",
- "Nauru", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia", "New Zealand",
- "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea", "Northern Marianas",
- "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru",
- "Philippines", "Pitcairn Islands", "Poland", "Portugal", "Puerto Rico", "Qatar",
- "Reunion", "Romania", "Russia", "Rwanda", "Sqo Tome and Principe", "Saint Helena",
- "Saint Kitts and Nevis", "Saint Lucia", "Saint Pierre and Miquelon",
- "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Saudi Arabia", "Senegal",
- "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands",
- "Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "South Korea",
- "Spain", "Sri Lanka", "Sudan", "Suriname", "Svalbard and Jan Mayen", "Swaziland", "Sweden",
- "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "The Bahamas",
- "The Gambia", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey",
- "Turkmenistan", "Turks and Caicos Islands", "Tuvalu", "Virgin Islands", "Uganda",
- "Ukraine", "United Arab Emirates", "United Kingdom",
- "United States", "United States Minor Outlying Islands", "Uruguay", "Uzbekistan",
- "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Wallis and Futuna", "Western Sahara",
- "Yemen", "Yugoslavia", "Zambia", "Zimbabwe"
- };
-}
diff --git a/tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityPortrait.java b/tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityPortrait.java
deleted file mode 100644
index 58651e1..0000000
--- a/tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityPortrait.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package com.android.imftest.samples;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.KeyEvent;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.WindowManager;
-import android.widget.LinearLayout;
-import android.view.inputmethod.InputMethodManager;
-import android.widget.EditText;
-import android.widget.TextView;
-import android.widget.AutoCompleteTextView;
-import android.widget.ArrayAdapter;
-
-import com.android.internal.R;
-
-/*
- * Activity with AutoCompleteTextView (Candidate bar should not appear)
- */
-public class AutoCompleteTextViewActivityPortrait extends Activity
-{
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
-
- setContentView(R.layout.auto_complete_list);
-
- ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
- android.R.layout.simple_dropdown_item_1line, COUNTRIES);
- AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.edit);
- textView.setAdapter(adapter);
- }
-
- static final String[] COUNTRIES = new String[] {
- "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",
- "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina",
- "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan",
- "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium",
- "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia",
- "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", "British Indian Ocean Territory",
- "British Virgin Islands", "Brunei", "Bulgaria", "Burkina Faso", "Burundi",
- "Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde",
- "Cayman Islands", "Central African Republic", "Chad", "Chile", "China",
- "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo",
- "Cook Islands", "Costa Rica", "Croatia", "Cuba", "Cyprus", "Czech Republic",
- "Democratic Republic of the Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic",
- "East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea",
- "Estonia", "Ethiopia", "Faeroe Islands", "Falkland Islands", "Fiji", "Finland",
- "Former Yugoslav Republic of Macedonia", "France", "French Guiana", "French Polynesia",
- "French Southern Territories", "Gabon", "Georgia", "Germany", "Ghana", "Gibraltar",
- "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guinea", "Guinea-Bissau",
- "Guyana", "Haiti", "Heard Island and McDonald Islands", "Honduras", "Hong Kong", "Hungary",
- "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica",
- "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kuwait", "Kyrgyzstan", "Laos",
- "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg",
- "Macau", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands",
- "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova",
- "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Myanmar", "Namibia",
- "Nauru", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia", "New Zealand",
- "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea", "Northern Marianas",
- "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru",
- "Philippines", "Pitcairn Islands", "Poland", "Portugal", "Puerto Rico", "Qatar",
- "Reunion", "Romania", "Russia", "Rwanda", "Sqo Tome and Principe", "Saint Helena",
- "Saint Kitts and Nevis", "Saint Lucia", "Saint Pierre and Miquelon",
- "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Saudi Arabia", "Senegal",
- "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands",
- "Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "South Korea",
- "Spain", "Sri Lanka", "Sudan", "Suriname", "Svalbard and Jan Mayen", "Swaziland", "Sweden",
- "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "The Bahamas",
- "The Gambia", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey",
- "Turkmenistan", "Turks and Caicos Islands", "Tuvalu", "Virgin Islands", "Uganda",
- "Ukraine", "United Arab Emirates", "United Kingdom",
- "United States", "United States Minor Outlying Islands", "Uruguay", "Uzbekistan",
- "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Wallis and Futuna", "Western Sahara",
- "Yemen", "Yugoslavia", "Zambia", "Zimbabwe"
- };
-}
diff --git a/tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScan.java b/tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScan.java
deleted file mode 100644
index 9754381..0000000
--- a/tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScan.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package com.android.imftest.samples;
-
-import com.android.imftest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.WindowManager;
-import android.widget.EditText;
-import android.widget.LinearLayout;
-import android.widget.ScrollView;
-
-public class BigEditTextActivityNonScrollablePanScan extends Activity {
-
- private View mRootView;
- private View mDefaultFocusedView;
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
-
- mRootView = new LinearLayout(this);
- ((LinearLayout) mRootView).setOrientation(LinearLayout.VERTICAL);
- mRootView.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT));
-
- View view = getLayoutInflater().inflate(
- R.layout.full_screen_edit_text, ((LinearLayout) mRootView), false);
-
- ((LinearLayout) mRootView).addView(view);
-
- mDefaultFocusedView = view.findViewById(R.id.data);
-
- setContentView(mRootView);
- }
-
- public View getRootView() {
- return mRootView;
- }
-
- public View getDefaultFocusedView() {
- return mDefaultFocusedView;
- }
-
-}
diff --git a/tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResize.java b/tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResize.java
deleted file mode 100644
index 701795f..0000000
--- a/tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResize.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package com.android.imftest.samples;
-
-import com.android.imftest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.WindowManager;
-import android.widget.EditText;
-import android.widget.LinearLayout;
-import android.widget.ScrollView;
-
-public class BigEditTextActivityNonScrollableResize extends Activity {
-
- private View mRootView;
- private View mDefaultFocusedView;
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
-
- mRootView = new LinearLayout(this);
- ((LinearLayout) mRootView).setOrientation(LinearLayout.VERTICAL);
- mRootView.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT));
-
- View view = getLayoutInflater().inflate(
- R.layout.full_screen_edit_text, ((LinearLayout) mRootView), false);
-
- ((LinearLayout) mRootView).addView(view);
-
- mDefaultFocusedView = view.findViewById(R.id.data);
-
- setContentView(mRootView);
- }
-
- public View getRootView() {
- return mRootView;
- }
-
- public View getDefaultFocusedView() {
- return mDefaultFocusedView;
- }
-
-}
diff --git a/tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScan.java b/tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScan.java
deleted file mode 100644
index bb3f767..0000000
--- a/tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScan.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package com.android.imftest.samples;
-
-import com.android.imftest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.WindowManager;
-import android.widget.EditText;
-import android.widget.LinearLayout;
-import android.widget.ScrollView;
-
-public class BigEditTextActivityScrollablePanScan extends Activity {
-
- private View mRootView;
- private View mDefaultFocusedView;
- private LinearLayout mLayout;
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
-
- mRootView = new ScrollView(this);
- ((ScrollView) mRootView).setFillViewport(true);
- mRootView.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT));
-
- mLayout = new LinearLayout(this);
- mLayout.setOrientation(LinearLayout.VERTICAL);
- mLayout.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT));
-
- View view = getLayoutInflater().inflate(
- R.layout.full_screen_edit_text, ((ScrollView) mRootView), false);
-
- mLayout.addView(view);
-
- ((ScrollView) mRootView).addView(mLayout);
- mDefaultFocusedView = view.findViewById(R.id.data);
-
- setContentView(mRootView);
- }
-
- public View getRootView() {
- return mRootView;
- }
-
- public View getDefaultFocusedView() {
- return mDefaultFocusedView;
- }
-
-}
diff --git a/tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollableResize.java b/tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollableResize.java
deleted file mode 100644
index f2cae1c..0000000
--- a/tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollableResize.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package com.android.imftest.samples;
-
-import com.android.imftest.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.WindowManager;
-import android.widget.EditText;
-import android.widget.LinearLayout;
-import android.widget.ScrollView;
-
-public class BigEditTextActivityScrollableResize extends Activity {
-
- private View mRootView;
- private View mDefaultFocusedView;
- private LinearLayout mLayout;
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
-
- mRootView = new ScrollView(this);
- ((ScrollView) mRootView).setFillViewport(true);
- mRootView.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT));
-
- mLayout = new LinearLayout(this);
- mLayout.setOrientation(LinearLayout.VERTICAL);
- mLayout.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT));
-
- View view = getLayoutInflater().inflate(
- R.layout.full_screen_edit_text, ((ScrollView) mRootView), false);
-
- mLayout.addView(view);
-
- ((ScrollView) mRootView).addView(mLayout);
- mDefaultFocusedView = view.findViewById(R.id.data);
-
- setContentView(mRootView);
- }
-
- public View getRootView() {
- return mRootView;
- }
-
- public View getDefaultFocusedView() {
- return mDefaultFocusedView;
- }
-
-}
diff --git a/tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityPanScan.java b/tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityPanScan.java
deleted file mode 100644
index 51f5045..0000000
--- a/tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityPanScan.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.android.imftest.samples;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.WindowManager;
-import android.widget.LinearLayout;
-import android.widget.EditText;
-import android.widget.ScrollView;
-import android.widget.TextView;
-
-import com.android.imftest.R;
-
-/*
- * Activity with EditText at the bottom (Pan&Scan)
- */
-public class BottomEditTextActivityPanScan extends Activity
-{
- private View mRootView;
- private View mDefaultFocusedView;
-
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
-
- mRootView = new LinearLayout(this);
- ((LinearLayout) mRootView).setOrientation(LinearLayout.VERTICAL);
-
- View view = getLayoutInflater().inflate(R.layout.one_edit_text_activity, ((LinearLayout) mRootView), false);
- mDefaultFocusedView = view.findViewById(R.id.dialog_edit_text);
- ((LinearLayout) mRootView).addView(view);
-
- setContentView(mRootView);
- this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
- }
-
- public View getRootView() {
- return mRootView;
- }
-
- public View getDefaultFocusedView() {
- return mDefaultFocusedView;
- }
-} \ No newline at end of file
diff --git a/tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityResize.java b/tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityResize.java
deleted file mode 100644
index eb94b4f..0000000
--- a/tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityResize.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.android.imftest.samples;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.WindowManager;
-import android.widget.LinearLayout;
-import android.widget.EditText;
-import android.widget.ScrollView;
-import android.widget.TextView;
-
-import com.android.imftest.R;
-
-/*
- * Activity with EditText at the bottom (Resize)
- */
-public class BottomEditTextActivityResize extends Activity
-{
- private View mRootView;
- private View mDefaultFocusedView;
-
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
-
- mRootView = new LinearLayout(this);
- ((LinearLayout) mRootView).setOrientation(LinearLayout.VERTICAL);
-
- View view = getLayoutInflater().inflate(R.layout.one_edit_text_activity, ((LinearLayout) mRootView), false);
- mDefaultFocusedView = view.findViewById(R.id.dialog_edit_text);
- ((LinearLayout) mRootView).addView(view);
-
- setContentView(mRootView);
- this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
- }
-
- public View getRootView() {
- return mRootView;
- }
-
- public View getDefaultFocusedView() {
- return mDefaultFocusedView;
- }
-} \ No newline at end of file
diff --git a/tests/ImfTest/src/com/android/imftest/samples/ButtonActivity.java b/tests/ImfTest/src/com/android/imftest/samples/ButtonActivity.java
deleted file mode 100644
index 1191f19..0000000
--- a/tests/ImfTest/src/com/android/imftest/samples/ButtonActivity.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package com.android.imftest.samples;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.KeyEvent;
-import android.view.View;
-import android.widget.LinearLayout;
-import android.view.inputmethod.InputMethodManager;
-import android.widget.EditText;
-import android.widget.Button;
-import android.widget.TextView;
-
-public class ButtonActivity extends Activity
-{
- static boolean mKeyboardIsActive = false;
- public static final int BUTTON_ID = 0;
- private View mRootView;
-
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- final ButtonActivity instance = this;
-
- final Button myButton = new Button(this);
- myButton.setClickable(true);
- myButton.setText("Keyboard UP!");
- myButton.setId(BUTTON_ID);
- myButton.setFocusableInTouchMode(true);
- myButton.setOnClickListener(new View.OnClickListener()
- {
- public void onClick (View v)
- {
- InputMethodManager imm = InputMethodManager.getInstance(instance);
- if (mKeyboardIsActive)
- {
- imm.hideSoftInputFromInputMethod(v.getWindowToken(), 0);
- myButton.setText("Keyboard UP!");
-
- }
- else
- {
- myButton.requestFocusFromTouch();
- imm.showSoftInput(v, 0);
- myButton.setText("Keyboard DOWN!");
- }
-
- mKeyboardIsActive = !mKeyboardIsActive;
- }
- });
-
- LinearLayout layout = new LinearLayout(this);
- layout.setOrientation(LinearLayout.VERTICAL);
- layout.addView(myButton);
- setContentView(layout);
- mRootView = layout;
- }
-
- public View getRootView() {
- return mRootView;
- }
-}
diff --git a/tests/ImfTest/src/com/android/imftest/samples/DialogActivity.java b/tests/ImfTest/src/com/android/imftest/samples/DialogActivity.java
deleted file mode 100644
index e49301c..0000000
--- a/tests/ImfTest/src/com/android/imftest/samples/DialogActivity.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package com.android.imftest.samples;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.KeyEvent;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.WindowManager;
-import android.widget.LinearLayout;
-import android.widget.EditText;
-import android.widget.Button;
-import android.view.LayoutInflater;
-import android.app.Dialog;
-
-import com.android.internal.R;
-
-public class DialogActivity extends Activity {
-
- private static final int DIALOG_WITHOUT_EDITTEXT = 0;
- private static final int DIALOG_WITH_EDITTEXT = 1;
-
- private LinearLayout mLayout;
- private LayoutInflater mInflater;
- private Button mButton1;
- private Button mButton2;
- private EditText mEditText;
-
-
- @Override
- protected void onCreate(Bundle icicle)
- {
- super.onCreate(icicle);
-
- mLayout = new LinearLayout(this);
- mLayout.setOrientation(LinearLayout.VERTICAL);
- mLayout.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT));
-
- mButton1 = new Button(this);
- mButton1.setText("Dialog WITHOUT EditText");//(R.string.open_dialog_scrollable);
- mButton1.setOnClickListener(new View.OnClickListener()
- {
- public void onClick(View v)
- {
- showDialog(DIALOG_WITHOUT_EDITTEXT);
- }
- });
-
- mButton2 = new Button(this);
- mButton2.setText("Dialog WITH EditText");//(R.string.open_dialog_nonscrollable);
- mButton2.setOnClickListener(new View.OnClickListener()
- {
- public void onClick(View v)
- {
- showDialog(DIALOG_WITH_EDITTEXT);
- }
- });
-
- mEditText = new EditText(this);
- mLayout.addView(mEditText);
- mLayout.addView(mButton1);
- mLayout.addView(mButton2);
-
- setContentView(mLayout);
- }
-
- @Override
- protected Dialog onCreateDialog(int id)
- {
- switch (id)
- {
- case DIALOG_WITHOUT_EDITTEXT:
- return createDialog(false);
- case DIALOG_WITH_EDITTEXT:
- return createDialog(true);
- }
-
- return super.onCreateDialog(id);
- }
-
- protected Dialog createDialog(boolean bEditText)
- {
- LinearLayout layout;
- layout = new LinearLayout(this);
- layout.setOrientation(LinearLayout.VERTICAL);
-
- if(bEditText)
- {
- EditText editText;
- editText = new EditText(this);
- layout.addView(editText);
- }
-
- Dialog d = new Dialog(this);
- d.setTitle("The DIALOG!!!");
- d.setCancelable(true);
- d.setContentView(layout);
- return d;
- }
-
- }
diff --git a/tests/ImfTest/src/com/android/imftest/samples/EditTextActivityDialog.java b/tests/ImfTest/src/com/android/imftest/samples/EditTextActivityDialog.java
deleted file mode 100644
index bd1e934..0000000
--- a/tests/ImfTest/src/com/android/imftest/samples/EditTextActivityDialog.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package com.android.imftest.samples;
-
-import com.android.imftest.R;
-
-import android.app.Activity;
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.LinearLayout;
-import android.widget.ScrollView;
-
-public class EditTextActivityDialog extends Activity {
-
- private static final int SCROLLABLE_DIALOG_ID = 0;
- private static final int NONSCROLLABLE_DIALOG_ID = 1;
-
- private LinearLayout mLayout;
- private ScrollView mScrollView;
- private LayoutInflater mInflater;
- private Button mButton1;
- private Button mButton2;
-
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- mLayout = new LinearLayout(this);
- mLayout.setOrientation(LinearLayout.VERTICAL);
- mLayout.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT));
-
- mButton1 = new Button(this);
- mButton1.setText(R.string.open_dialog_scrollable);
- mButton1.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- showDialog(SCROLLABLE_DIALOG_ID);
- }
- });
-
- mButton2 = new Button(this);
- mButton2.setText(R.string.open_dialog_nonscrollable);
- mButton2.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- showDialog(NONSCROLLABLE_DIALOG_ID);
- }
- });
-
- mLayout.addView(mButton1);
- mLayout.addView(mButton2);
-
- setContentView(mLayout);
- }
-
- @Override
- protected Dialog onCreateDialog(int id) {
- switch (id) {
- case SCROLLABLE_DIALOG_ID:
- return createDialog(true);
- case NONSCROLLABLE_DIALOG_ID:
- return createDialog(false);
- }
-
- return super.onCreateDialog(id);
- }
-
- protected Dialog createDialog(boolean scrollable) {
- View layout;
- EditText editText;
-
- if (scrollable) {
- layout = new ScrollView(EditTextActivityDialog.this);
- ((ScrollView) layout).setMinimumHeight(mLayout.getHeight());
-
- ((ScrollView) layout).addView((
- LinearLayout) View.inflate(EditTextActivityDialog.this,
- R.layout.dialog_edit_text_no_scroll, null));
- } else {
- layout = View.inflate(EditTextActivityDialog.this,
- R.layout.dialog_edit_text_no_scroll, null);
- }
-
- Dialog d = new Dialog(EditTextActivityDialog.this);
- d.setTitle(getString(R.string.test_dialog));
- d.setCancelable(true);
- d.setContentView(layout);
- return d;
- }
-
-}
diff --git a/tests/ImfTest/src/com/android/imftest/samples/InputTypeActivity.java b/tests/ImfTest/src/com/android/imftest/samples/InputTypeActivity.java
deleted file mode 100755
index 6c71e86..0000000
--- a/tests/ImfTest/src/com/android/imftest/samples/InputTypeActivity.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.imftest.samples;
-
-import com.android.imftest.R;
-
-import android.app.Activity;
-import android.widget.EditText;
-import android.widget.LinearLayout;
-import android.widget.Button;
-import android.widget.ScrollView;
-import android.widget.TextView;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.ViewParent;
-import android.view.ViewRoot;
-import android.view.inputmethod.EditorInfo;
-import android.content.Context;
-
-public class InputTypeActivity extends Activity {
-
- private LinearLayout mLayout;
- private ScrollView mScrollView;
- private LayoutInflater mInflater;
- private ViewGroup mParent;
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- mScrollView = new ScrollView(this);
-
- mLayout = new LinearLayout(this);
- mLayout.setOrientation(LinearLayout.VERTICAL);
- mLayout.setLayoutParams(new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT));
-
- mInflater = getLayoutInflater();
- mParent = mLayout;
-
- /* Normal Edit Text */
- mLayout.addView(buildEntryView(EditorInfo.TYPE_CLASS_TEXT|EditorInfo.TYPE_TEXT_VARIATION_NORMAL,
- R.string.normal_edit_text_label));
-
- /* Normal Edit Text w/Cap Chars Flag*/
- mLayout.addView(buildEntryView(EditorInfo.TYPE_CLASS_TEXT|EditorInfo.TYPE_TEXT_VARIATION_NORMAL|EditorInfo.TYPE_TEXT_FLAG_CAP_CHARACTERS,
- R.string.cap_chars_edit_text_label));
-
- /* Normal Edit Text w/Cap Words Flag*/
- mLayout.addView(buildEntryView(EditorInfo.TYPE_CLASS_TEXT|EditorInfo.TYPE_TEXT_VARIATION_NORMAL|EditorInfo.TYPE_TEXT_FLAG_CAP_WORDS,
- R.string.cap_words_edit_text_label));
-
- /* Normal Edit Text w/Cap Multiline Flag */
- mLayout.addView(buildEntryView(EditorInfo.TYPE_CLASS_TEXT|EditorInfo.TYPE_TEXT_VARIATION_NORMAL|EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE,
- R.string.multiline_edit_text_label));
-
- /* Normal Edit Text w/Cap Sentences Flag */
- mLayout.addView(buildEntryView(EditorInfo.TYPE_CLASS_TEXT|EditorInfo.TYPE_TEXT_VARIATION_NORMAL|EditorInfo.TYPE_TEXT_FLAG_CAP_SENTENCES,
- R.string.cap_sentences_edit_text_label));
-
- /* Normal Edit Text w/Auto-complete Flag */
- mLayout.addView(buildEntryView(EditorInfo.TYPE_CLASS_TEXT|EditorInfo.TYPE_TEXT_VARIATION_NORMAL|EditorInfo.TYPE_TEXT_FLAG_AUTO_COMPLETE,
- R.string.auto_complete_edit_text_label));
-
- /* Normal Edit Text w/Auto-correct Flag */
- mLayout.addView(buildEntryView(EditorInfo.TYPE_CLASS_TEXT|EditorInfo.TYPE_TEXT_VARIATION_NORMAL|EditorInfo.TYPE_TEXT_FLAG_AUTO_CORRECT,
- R.string.auto_correct_edit_text_label));
-
- /* Normal Edit Text w/Search Flag*/
- mLayout.addView(buildEntryView(EditorInfo.TYPE_CLASS_TEXT|EditorInfo.TYPE_TEXT_VARIATION_NORMAL|EditorInfo.TYPE_TEXT_FLAG_SEARCH,
- R.string.search_edit_text_label));
-
- /* Uri Edit Text */
- mLayout.addView(buildEntryView(EditorInfo.TYPE_CLASS_TEXT|EditorInfo.TYPE_TEXT_VARIATION_URI,
- R.string.uri_edit_text_label));
-
- /* Email Address Edit Text */
- mLayout.addView(buildEntryView(EditorInfo.TYPE_CLASS_TEXT|EditorInfo.TYPE_TEXT_VARIATION_EMAIL_ADDRESS,
- R.string.email_address_edit_text_label));
-
- /* Email Subject Text */
- mLayout.addView(buildEntryView(EditorInfo.TYPE_CLASS_TEXT|EditorInfo.TYPE_TEXT_VARIATION_EMAIL_SUBJECT,
- R.string.email_subject_edit_text_label));
-
- /* Email Content Edit Text */
- mLayout.addView(buildEntryView(EditorInfo.TYPE_CLASS_TEXT|EditorInfo.TYPE_TEXT_VARIATION_LONG_MESSAGE,
- R.string.email_content_edit_text_label));
-
- /* Person Name Edit Text */
- mLayout.addView(buildEntryView(EditorInfo.TYPE_CLASS_TEXT|EditorInfo.TYPE_TEXT_VARIATION_PERSON_NAME,
- R.string.person_name_edit_text_label));
-
- /* Postal Address Edit Text */
- mLayout.addView(buildEntryView(EditorInfo.TYPE_CLASS_TEXT|EditorInfo.TYPE_TEXT_VARIATION_POSTAL_ADDRESS,
- R.string.postal_address_edit_text_label));
-
- /* Password Edit Text */
- mLayout.addView(buildEntryView(EditorInfo.TYPE_CLASS_TEXT|EditorInfo.TYPE_TEXT_VARIATION_PASSWORD,
- R.string.password_edit_text_label));
-
- /* Web Edit Text */
- mLayout.addView(buildEntryView(EditorInfo.TYPE_CLASS_TEXT|EditorInfo.TYPE_TEXT_VARIATION_WEB_EDIT_TEXT,
- R.string.web_edit_text_label));
-
- /* Signed Number Edit Text */
- mLayout.addView(buildEntryView(EditorInfo.TYPE_CLASS_NUMBER|EditorInfo.TYPE_NUMBER_FLAG_SIGNED,
- R.string.signed_number_edit_text_label));
-
- /* Decimal Number Edit Text */
- mLayout.addView(buildEntryView(EditorInfo.TYPE_CLASS_NUMBER|EditorInfo.TYPE_NUMBER_FLAG_DECIMAL,
- R.string.decimal_number_edit_text_label));
-
- /* Phone Number Edit Text */
- mLayout.addView(buildEntryView(EditorInfo.TYPE_CLASS_PHONE,
- R.string.phone_number_edit_text_label));
-
- /* Normal Datetime Edit Text */
- mLayout.addView(buildEntryView(EditorInfo.TYPE_CLASS_DATETIME|EditorInfo.TYPE_DATETIME_VARIATION_NORMAL,
- R.string.normal_datetime_edit_text_label));
-
- /* Date Edit Text */
- mLayout.addView(buildEntryView(EditorInfo.TYPE_CLASS_DATETIME|EditorInfo.TYPE_DATETIME_VARIATION_DATE,
- R.string.date_edit_text_label));
-
- /* Time Edit Text */
- mLayout.addView(buildEntryView(EditorInfo.TYPE_CLASS_DATETIME|EditorInfo.TYPE_DATETIME_VARIATION_TIME,
- R.string.time_edit_text_label));
-
- mScrollView.addView(mLayout);
- setContentView(mScrollView);
- }
-
- private View buildEntryView(int inputType, int label) {
-
-
- View view = mInflater.inflate(R.layout.sample_edit_text, mParent, false);
-
- EditText editText = (EditText) view.findViewById(R.id.data);
- editText.setInputType(inputType);
-
- TextView textView = (TextView) view.findViewById(R.id.label);
- textView.setText(label);
-
- return view;
- }
-
-}
diff --git a/tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScan.java b/tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScan.java
deleted file mode 100644
index 54ab57a..0000000
--- a/tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScan.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.android.imftest.samples;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.KeyEvent;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.WindowManager;
-import android.widget.LinearLayout;
-import android.view.inputmethod.InputMethodManager;
-import android.widget.EditText;
-import android.widget.Button;
-import android.widget.TextView;
-import android.widget.ScrollView;
-
-import com.android.internal.R;
-
-/*
- * Full screen of EditTexts (Non-Scrollable, Pan&Scan)
- */
-public class ManyEditTextActivityNoScrollPanScan extends Activity
-{
- public static final int NUM_EDIT_TEXTS = 9;
-
- private View mRootView;
-
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
-
- mRootView = new LinearLayout(this);
- ((LinearLayout) mRootView).setOrientation(LinearLayout.VERTICAL);
-
- for (int i=0; i<NUM_EDIT_TEXTS; i++)
- {
- final EditText editText = new EditText(this);
- editText.setText(String.valueOf(i));
- editText.setId(i);
- ((LinearLayout) mRootView).addView(editText);
- }
- setContentView(mRootView);
- this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
- }
-
- public View getRootView() {
- return mRootView;
- }
-
-}
diff --git a/tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScan.java b/tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScan.java
deleted file mode 100644
index b228d34..0000000
--- a/tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScan.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package com.android.imftest.samples;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.KeyEvent;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.WindowManager;
-import android.widget.LinearLayout;
-import android.view.inputmethod.InputMethodManager;
-import android.widget.EditText;
-import android.widget.Button;
-import android.widget.TextView;
-import android.widget.ScrollView;
-
-import com.android.internal.R;
-
-/*
- * Full screen of EditTexts (Scrollable, Pan&Scan)
- */
-public class ManyEditTextActivityScrollPanScan extends Activity
-{
- public static final int NUM_EDIT_TEXTS = 12;
-
- private View mRootView;
-
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- mRootView = new ScrollView(this);
-
- LinearLayout layout = new LinearLayout(this);
- layout.setOrientation(LinearLayout.VERTICAL);
-
- for (int i=0; i<NUM_EDIT_TEXTS; i++)
- {
- final EditText editText = new EditText(this);
- editText.setText(String.valueOf(i));
- editText.setId(i);
- layout.addView(editText);
- }
-
- ((ScrollView) mRootView).addView(layout);
- setContentView(mRootView);
- this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
- }
-
- public View getRootView() {
- return mRootView;
- }
-} \ No newline at end of file
diff --git a/tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollResize.java b/tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollResize.java
deleted file mode 100644
index 777fbae..0000000
--- a/tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollResize.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.android.imftest.samples;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.View;
-import android.view.WindowManager;
-import android.widget.LinearLayout;
-import android.widget.EditText;
-import android.widget.ScrollView;
-
-/*
- * Full screen of EditTexts (Scrollable, Resize)
- */
-public class ManyEditTextActivityScrollResize extends Activity
-{
- public static final int NUM_EDIT_TEXTS = 12;
-
- private View mRootView;
-
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- mRootView = new ScrollView(this);
-
- LinearLayout layout = new LinearLayout(this);
- layout.setOrientation(LinearLayout.VERTICAL);
-
- for (int i=0; i<NUM_EDIT_TEXTS; i++)
- {
- final EditText editText = new EditText(this);
- editText.setText(String.valueOf(i));
- editText.setId(i);
- layout.addView(editText);
- }
-
- ((ScrollView) mRootView).addView(layout);
- setContentView(mRootView);
- this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
- }
-
- public View getRootView() {
- return mRootView;
- }
-} \ No newline at end of file
diff --git a/tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivityNotSelected.java b/tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivityNotSelected.java
deleted file mode 100644
index 88a3447..0000000
--- a/tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivityNotSelected.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package com.android.imftest.samples;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.os.Debug;
-import android.view.KeyEvent;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.WindowManager;
-import android.widget.LinearLayout;
-import android.view.inputmethod.InputMethodManager;
-import android.widget.EditText;
-import android.widget.Button;
-import android.widget.TextView;
-import android.widget.ScrollView;
-
-import com.android.internal.R;
-
-/*
- * Activity with non-EditText view selected initially
- */
-public class OneEditTextActivityNotSelected extends Activity
-{
- private View mRootView;
- private View mDefaultFocusedView;
-
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
-
- LinearLayout layout = new LinearLayout(this);
- layout.setOrientation(LinearLayout.VERTICAL);
- mRootView = new ScrollView(this);
-
- EditText editText = new EditText(this);
- Button button = new Button(this);
- button.setText("The focus is here.");
- button.setFocusableInTouchMode(true);
- button.requestFocus();
- mDefaultFocusedView = button;
- layout.addView(button);
- layout.addView(editText);
-
- ((ScrollView) mRootView).addView(layout);
- setContentView(mRootView);
- }
-
- public View getRootView() {
- return mRootView;
- }
-
- public View getDefaultFocusedView() {
- return mDefaultFocusedView;
- }
-}
diff --git a/tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivitySelected.java b/tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivitySelected.java
deleted file mode 100644
index 1b80263..0000000
--- a/tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivitySelected.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.android.imftest.samples;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.KeyEvent;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.WindowManager;
-import android.widget.LinearLayout;
-import android.view.inputmethod.InputMethodManager;
-import android.widget.EditText;
-import android.widget.Button;
-import android.widget.TextView;
-import android.widget.ScrollView;
-
-import com.android.internal.R;
-
-/*
- * Activity with EditText selected initially
- */
-public class OneEditTextActivitySelected extends Activity
-{
- private View mRootView;
- private View mDefaultFocusedView;
-
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
-
- LinearLayout layout = new LinearLayout(this);
- layout.setOrientation(LinearLayout.VERTICAL);
- mRootView = new ScrollView(this);
-
- EditText editText = new EditText(this);
- editText.requestFocus();
- mDefaultFocusedView = editText;
- layout.addView(editText);
-
- ((ScrollView) mRootView).addView(layout);
- setContentView(mRootView);
- }
-
- public View getRootView() {
- return mRootView;
- }
-
- public View getDefaultFocusedView() {
- return mDefaultFocusedView;
- }
-}
diff --git a/tests/ImfTest/tests/Android.mk b/tests/ImfTest/tests/Android.mk
deleted file mode 100755
index 0f1924c..0000000
--- a/tests/ImfTest/tests/Android.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-# We only want this apk build for tests.
-LOCAL_MODULE_TAGS := tests
-
-# Include all test java files.
-LOCAL_SRC_FILES := $(call all-subdir-java-files)
-
-LOCAL_JAVA_LIBRARIES := android.test.runner
-
-LOCAL_PACKAGE_NAME := ImfTestTests
-
-LOCAL_INSTRUMENTATION_FOR := ImfTest
-
-include $(BUILD_PACKAGE)
diff --git a/tests/ImfTest/tests/AndroidManifest.xml b/tests/ImfTest/tests/AndroidManifest.xml
deleted file mode 100755
index 122d202..0000000
--- a/tests/ImfTest/tests/AndroidManifest.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<!-- package name must be unique so suffix with "tests" so package loader doesn't ignore us -->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.imftest.tests">
-
- <application>
- <uses-library android:name="android.test.runner" />
- </application>
-
- <!--
- This declares that this app uses the instrumentation test runner targeting
- the package of com.android.imftest. To run the tests use the command:
- "adb shell am instrument -w com.android.imftest.tests/android.test.InstrumentationTestRunner"
- -->
- <instrumentation android:name="android.test.InstrumentationTestRunner"
- android:targetPackage="com.android.imftest"
- android:label="imf tests"/>
-
-</manifest>
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScanTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScanTests.java
deleted file mode 100755
index a1c5fd2..0000000
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScanTests.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.imftest.samples;
-
-import android.test.suitebuilder.annotation.LargeTest;
-import android.view.View;
-
-import com.android.imftest.R;
-
-
-public class BigEditTextActivityNonScrollablePanScanTests extends ImfBaseTestCase<BigEditTextActivityNonScrollablePanScan> {
-
- public final String TAG = "BigEditTextActivityNonScrollablePanScanTests";
-
- public BigEditTextActivityNonScrollablePanScanTests() {
- super(BigEditTextActivityNonScrollablePanScan.class);
- }
-
- @LargeTest
- public void testAppAdjustmentPanScan() {
- // Give the IME 2 seconds to appear.
- pause(2000);
-
- View rootView = ((BigEditTextActivityNonScrollablePanScan) mTargetActivity).getRootView();
- View servedView = ((BigEditTextActivityNonScrollablePanScan) mTargetActivity).getDefaultFocusedView();
-
- assertNotNull(rootView);
- assertNotNull(servedView);
-
- destructiveCheckImeInitialState(rootView, servedView);
-
- verifyEditTextAdjustment(servedView, rootView.getMeasuredHeight());
- }
-
-}
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResizeTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResizeTests.java
deleted file mode 100755
index 2e0b0eb..0000000
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResizeTests.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.imftest.samples;
-
-import android.test.suitebuilder.annotation.LargeTest;
-import android.view.View;
-
-import com.android.imftest.R;
-
-
-public class BigEditTextActivityNonScrollableResizeTests extends ImfBaseTestCase<BigEditTextActivityNonScrollableResize> {
-
- public final String TAG = "BigEditTextActivityNonScrollableResizeTests";
-
- public BigEditTextActivityNonScrollableResizeTests() {
- super(BigEditTextActivityNonScrollableResize.class);
- }
-
- @LargeTest
- public void testAppAdjustmentPanScan() { // Give the IME 2 seconds to appear.
- pause(2000);
-
- View rootView = ((BigEditTextActivityNonScrollableResize) mTargetActivity).getRootView();
- View servedView = ((BigEditTextActivityNonScrollableResize) mTargetActivity).getDefaultFocusedView();
-
- assertNotNull(rootView);
- assertNotNull(servedView);
-
- destructiveCheckImeInitialState(rootView, servedView);
-
- verifyEditTextAdjustment(servedView, rootView.getMeasuredHeight());
- }
-
-}
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScanTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScanTests.java
deleted file mode 100755
index d3eefb5..0000000
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScanTests.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.imftest.samples;
-
-import android.test.suitebuilder.annotation.LargeTest;
-import android.view.View;
-
-import com.android.imftest.R;
-
-
-public class BigEditTextActivityScrollablePanScanTests extends ImfBaseTestCase<BigEditTextActivityScrollablePanScan> {
-
- public final String TAG = "BigEditTextActivityScrollablePanScanTests";
-
- public BigEditTextActivityScrollablePanScanTests() {
- super(BigEditTextActivityScrollablePanScan.class);
- }
-
- @LargeTest
- public void testAppAdjustmentPanScan() { // Give the IME 2 seconds to appear.
- pause(2000);
-
- View rootView = ((BigEditTextActivityScrollablePanScan) mTargetActivity).getRootView();
- View servedView = ((BigEditTextActivityScrollablePanScan) mTargetActivity).getDefaultFocusedView();
-
- assertNotNull(rootView);
- assertNotNull(servedView);
-
- destructiveCheckImeInitialState(rootView, servedView);
-
- verifyEditTextAdjustment(servedView, rootView.getMeasuredHeight());
- }
-
-}
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollableResizeTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollableResizeTests.java
deleted file mode 100755
index 5c40e6d..0000000
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollableResizeTests.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.imftest.samples;
-
-import android.test.suitebuilder.annotation.LargeTest;
-import android.view.View;
-
-import com.android.imftest.R;
-
-
-public class BigEditTextActivityScrollableResizeTests extends ImfBaseTestCase<BigEditTextActivityScrollableResize> {
-
- public final String TAG = "BigEditTextActivityScrollableResizeTests";
-
- public BigEditTextActivityScrollableResizeTests() {
- super(BigEditTextActivityScrollableResize.class);
- }
-
- @LargeTest
- public void testAppAdjustmentPanScan() {
- // Give the IME 2 seconds to appear.
- pause(2000);
-
- View rootView = ((BigEditTextActivityScrollableResize) mTargetActivity).getRootView();
- View servedView = ((BigEditTextActivityScrollableResize) mTargetActivity).getDefaultFocusedView();
-
- assertNotNull(rootView);
- assertNotNull(servedView);
-
- destructiveCheckImeInitialState(rootView, servedView);
-
- verifyEditTextAdjustment(servedView, rootView.getMeasuredHeight());
- }
-
-}
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityPanScanTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityPanScanTests.java
deleted file mode 100755
index 9a93133..0000000
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityPanScanTests.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.imftest.samples;
-
-import android.test.suitebuilder.annotation.LargeTest;
-import android.view.View;
-
-import com.android.imftest.R;
-
-
-public class BottomEditTextActivityPanScanTests extends ImfBaseTestCase<BottomEditTextActivityPanScan> {
-
- public final String TAG = "BottomEditTextActivityPanScanTests";
-
- public BottomEditTextActivityPanScanTests() {
- super(BottomEditTextActivityPanScan.class);
- }
-
- @LargeTest
- public void testAppAdjustmentPanScan() {
- // Give the IME 2 seconds to appear.
- pause(2000);
-
- View rootView = ((BottomEditTextActivityPanScan) mTargetActivity).getRootView();
- View servedView = ((BottomEditTextActivityPanScan) mTargetActivity).getDefaultFocusedView();
-
- assertNotNull(rootView);
- assertNotNull(servedView);
-
- destructiveCheckImeInitialState(rootView, servedView);
-
- verifyEditTextAdjustment(servedView, rootView.getMeasuredHeight());
- }
-
-}
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityResizeTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityResizeTests.java
deleted file mode 100755
index 9a69fd5..0000000
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityResizeTests.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.imftest.samples;
-
-import android.test.suitebuilder.annotation.LargeTest;
-import android.view.View;
-
-import com.android.imftest.R;
-
-
-public class BottomEditTextActivityResizeTests extends ImfBaseTestCase<BottomEditTextActivityResize> {
-
- public final String TAG = "BottomEditTextActivityResizeTests";
-
- public BottomEditTextActivityResizeTests() {
- super(BottomEditTextActivityResize.class);
- }
-
- @LargeTest
- public void testAppAdjustmentResize() {
- // Give the IME 2 seconds to appear.
- pause(2000);
-
- View rootView = ((BottomEditTextActivityResize) mTargetActivity).getRootView();
- View servedView = ((BottomEditTextActivityResize) mTargetActivity).getDefaultFocusedView();
-
- assertNotNull(rootView);
- assertNotNull(servedView);
-
- destructiveCheckImeInitialState(rootView, servedView);
-
- verifyEditTextAdjustment(servedView, rootView.getMeasuredHeight());
- }
-
-}
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ButtonActivityTest.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ButtonActivityTest.java
deleted file mode 100755
index ae900c3..0000000
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/ButtonActivityTest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.imftest.samples;
-
-import android.test.suitebuilder.annotation.LargeTest;
-import android.view.KeyEvent;
-import android.widget.Button;
-
-
-public class ButtonActivityTest extends ImfBaseTestCase<ButtonActivity> {
-
- final public String TAG = "ButtonActivityTest";
-
- public ButtonActivityTest() {
- super(ButtonActivity.class);
- }
-
- @LargeTest
- public void testButtonActivatesIme() {
-
- final Button button = (Button) mTargetActivity.findViewById(ButtonActivity.BUTTON_ID);
-
- // Push button
- // Bring the target EditText into focus.
- mTargetActivity.runOnUiThread(new Runnable() {
- public void run() {
- button.requestFocus();
- }
- });
-
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
-
- // Give it a couple seconds
- pause(2000);
-
- // We should have initialized imm.mServedView and imm.mCurrentTextBoxAttribute
- assertTrue(mImm.isActive());
- // imm.mServedInputConnection should be null since Button doesn't override onCreateInputConnection().
- assertFalse(mImm.isAcceptingText());
-
- destructiveCheckImeInitialState(mTargetActivity.getRootView(), button);
-
- }
-}
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ImfBaseTestCase.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ImfBaseTestCase.java
deleted file mode 100755
index 61dc611..0000000
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/ImfBaseTestCase.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.imftest.samples;
-
-import android.app.Activity;
-import android.os.SystemClock;
-import android.test.InstrumentationTestCase;
-import android.view.KeyEvent;
-import android.view.View;
-import android.view.WindowManager;
-import android.view.inputmethod.InputMethodManager;
-
-import com.android.imftest.R;
-
-public abstract class ImfBaseTestCase<T extends Activity> extends InstrumentationTestCase {
-
- /*
- * The amount of time we are willing to wait for the IME to appear after a user action
- * before we give up and fail the test.
- */
- public final long WAIT_FOR_IME = 5000;
-
- /*
- * Unfortunately there is now way for us to know how tall the IME is,
- * so we have to hard code a minimum and maximum value.
- */
- public final int IME_MIN_HEIGHT = 150;
- public final int IME_MAX_HEIGHT = 300;
-
- public final String TARGET_PACKAGE_NAME = "com.android.imftest";
- protected InputMethodManager mImm;
- protected T mTargetActivity;
- protected boolean mExpectAutoPop;
- private Class<T> mTargetActivityClass;
-
- public ImfBaseTestCase(Class<T> activityClass) {
- mTargetActivityClass = activityClass;
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
-
- mTargetActivity = launchActivity(TARGET_PACKAGE_NAME, mTargetActivityClass, null);
- mExpectAutoPop = mTargetActivity.getResources().getBoolean(R.bool.def_expect_ime_autopop);
- mImm = InputMethodManager.getInstance(mTargetActivity);
- }
-
- // Utility test methods
- public void verifyEditTextAdjustment(final View editText, int rootViewHeight) {
-
- int[] origLocation = new int[2];
- int[] newLocation = new int[2];
-
- // Tell the keyboard to go away.
- mImm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
-
- // Bring the target EditText into focus.
- mTargetActivity.runOnUiThread(new Runnable() {
- public void run() {
- editText.requestFocus();
- }
- });
-
- // Get the original location of the EditText.
- editText.getLocationOnScreen(origLocation);
-
- // Tap the EditText to bring up the IME.
- sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
-
- // Wait until the EditText pops above the IME or until we hit the timeout.
- editText.getLocationOnScreen(newLocation);
- long timeoutTime = SystemClock.uptimeMillis() + WAIT_FOR_IME;
- while (newLocation[1] > rootViewHeight - IME_MIN_HEIGHT && SystemClock.uptimeMillis() < timeoutTime) {
- editText.getLocationOnScreen(newLocation);
- pause(100);
- }
-
- assertTrue(newLocation[1] <= rootViewHeight - IME_MIN_HEIGHT);
-
- // Tell the keyboard to go away.
- mImm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
- }
-
- public void destructiveCheckImeInitialState(View rootView, View servedView) {
- if (mExpectAutoPop && (mTargetActivity.getWindow().getAttributes().
- softInputMode&WindowManager.LayoutParams.SOFT_INPUT_MASK_ADJUST)
- == WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE) {
- assertTrue(destructiveCheckImeUp(rootView, servedView));
- } else {
- assertFalse(destructiveCheckImeUp(rootView, servedView));
- }
- }
-
- public boolean destructiveCheckImeUp(View rootView, View servedView) {
- int origHeight;
- int newHeight;
-
- origHeight = rootView.getHeight();
-
- // Tell the keyboard to go away.
- mImm.hideSoftInputFromWindow(servedView.getWindowToken(), 0);
-
- // Give it five seconds to adjust
- newHeight = rootView.getHeight();
- long timeoutTime = SystemClock.uptimeMillis() + WAIT_FOR_IME;
- while (Math.abs(newHeight - origHeight) < IME_MIN_HEIGHT && SystemClock.uptimeMillis() < timeoutTime) {
- newHeight = rootView.getHeight();
- }
-
- return (Math.abs(origHeight - newHeight) >= IME_MIN_HEIGHT);
- }
-
- void pause(int millis) {
- try {
- Thread.sleep(millis);
- } catch (InterruptedException e) {
- }
- }
-
-}
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityBaseTestCase.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityBaseTestCase.java
deleted file mode 100755
index 278efb1..0000000
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityBaseTestCase.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.imftest.samples;
-
-import android.app.Activity;
-import android.widget.EditText;
-
-
-public abstract class ManyEditTextActivityBaseTestCase<T extends Activity> extends ImfBaseTestCase<T> {
-
- public ManyEditTextActivityBaseTestCase(Class<T> activityClass){
- super(activityClass);
- }
-
- public abstract void testAllEditTextsAdjust();
-
- public void verifyAllEditTextAdjustment(int numEditTexts, int rootViewHeight) {
-
- for (int i = 0; i < numEditTexts; i++) {
- final EditText lastEditText = (EditText) mTargetActivity.findViewById(i);
- verifyEditTextAdjustment(lastEditText, rootViewHeight);
- }
-
- }
-
-}
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScanTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScanTests.java
deleted file mode 100755
index 4f8d14e..0000000
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScanTests.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.imftest.samples;
-
-import android.test.suitebuilder.annotation.LargeTest;
-
-
-public class ManyEditTextActivityNoScrollPanScanTests extends ManyEditTextActivityBaseTestCase<ManyEditTextActivityNoScrollPanScan> {
-
- public final String TAG = "ManyEditTextActivityNoScrollPanScanTests";
-
- public ManyEditTextActivityNoScrollPanScanTests() {
- super(ManyEditTextActivityNoScrollPanScan.class);
- }
-
-
- @LargeTest
- public void testAllEditTextsAdjust() {
- verifyAllEditTextAdjustment(mTargetActivity.NUM_EDIT_TEXTS,
- mTargetActivity.getRootView().getMeasuredHeight());
- }
-}
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScanTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScanTests.java
deleted file mode 100755
index 7f98f7f..0000000
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScanTests.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.imftest.samples;
-
-import android.test.suitebuilder.annotation.LargeTest;
-
-
-public class ManyEditTextActivityScrollPanScanTests extends ManyEditTextActivityBaseTestCase<ManyEditTextActivityScrollPanScan> {
-
- public final String TAG = "ManyEditTextActivityScrollPanScanTests";
-
-
- public ManyEditTextActivityScrollPanScanTests() {
- super(ManyEditTextActivityScrollPanScan.class);
- }
-
- @LargeTest
- public void testAllEditTextsAdjust() {
- verifyAllEditTextAdjustment(mTargetActivity.NUM_EDIT_TEXTS,
- mTargetActivity.getRootView().getMeasuredHeight());
- }
-
-}
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollResizeTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollResizeTests.java
deleted file mode 100755
index 68dae87..0000000
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollResizeTests.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.imftest.samples;
-
-import android.test.suitebuilder.annotation.LargeTest;
-
-
-public class ManyEditTextActivityScrollResizeTests extends ManyEditTextActivityBaseTestCase<ManyEditTextActivityScrollResize> {
-
- public final String TAG = "ManyEditTextActivityScrollResizeTests";
-
-
- public ManyEditTextActivityScrollResizeTests() {
- super(ManyEditTextActivityScrollResize.class);
- }
-
- @LargeTest
- public void testAllEditTextsAdjust() {
- verifyAllEditTextAdjustment(mTargetActivity.NUM_EDIT_TEXTS,
- mTargetActivity.getRootView().getMeasuredHeight());
- }
-
-}
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivityNotSelectedTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivityNotSelectedTests.java
deleted file mode 100755
index ed5b0c9..0000000
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivityNotSelectedTests.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.imftest.samples;
-
-import android.test.suitebuilder.annotation.LargeTest;
-import android.view.View;
-
-
-public class OneEditTextActivityNotSelectedTests extends ImfBaseTestCase<OneEditTextActivityNotSelected> {
-
- public final String TAG = "OneEditTextActivityNotSelectedTests";
-
- public OneEditTextActivityNotSelectedTests() {
- super(OneEditTextActivityNotSelected.class);
- }
-
- @LargeTest
- public void testSoftKeyboardNoAutoPop() {
-
- // Give the IME 2 seconds to appear.
- pause(2000);
-
- assertFalse(mImm.isAcceptingText());
-
- View rootView = ((OneEditTextActivityNotSelected) mTargetActivity).getRootView();
- View servedView = ((OneEditTextActivityNotSelected) mTargetActivity).getDefaultFocusedView();
-
- assertNotNull(rootView);
- assertNotNull(servedView);
-
- destructiveCheckImeInitialState(rootView, servedView);
-
- verifyEditTextAdjustment(servedView, rootView.getMeasuredHeight());
- }
-
-}
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivitySelectedTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivitySelectedTests.java
deleted file mode 100755
index 42fcd66..0000000
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivitySelectedTests.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.imftest.samples;
-
-import com.android.imftest.R;
-
-import android.test.suitebuilder.annotation.LargeTest;
-import android.view.KeyEvent;
-import android.view.View;
-
-
-public class OneEditTextActivitySelectedTests extends ImfBaseTestCase<OneEditTextActivitySelected> {
-
- public final String TAG = "OneEditTextActivitySelectedTests";
-
- public OneEditTextActivitySelectedTests() {
- super(OneEditTextActivitySelected.class);
- }
-
- @LargeTest
- public void testSoftKeyboardAutoPop() {
-
- // Give the IME 2 seconds to appear.
- pause(2000);
-
- assertTrue(mImm.isAcceptingText());
-
- View rootView = ((OneEditTextActivitySelected) mTargetActivity).getRootView();
- View servedView = ((OneEditTextActivitySelected) mTargetActivity).getDefaultFocusedView();
-
- assertNotNull(rootView);
- assertNotNull(servedView);
-
- destructiveCheckImeInitialState(rootView, servedView);
-
- verifyEditTextAdjustment(servedView, rootView.getMeasuredHeight());
- }
-
-}
diff --git a/tests/SmokeTest/Android.mk b/tests/SmokeTest/Android.mk
deleted file mode 100644
index 0adfd4c..0000000
--- a/tests/SmokeTest/Android.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := tests
-
-# This builds "SmokeTestApp"
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_JAVA_LIBRARIES := android.test.runner
-
-LOCAL_PACKAGE_NAME := SmokeTestApp
-
-include $(BUILD_PACKAGE)
-
-# This builds "SmokeTest"
-include $(call all-makefiles-under,$(LOCAL_PATH)) \ No newline at end of file
diff --git a/tests/SmokeTest/AndroidManifest.xml b/tests/SmokeTest/AndroidManifest.xml
deleted file mode 100644
index f141bdc..0000000
--- a/tests/SmokeTest/AndroidManifest.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.smoketest">
-
- <application>
- <uses-library android:name="android.test.runner" />
- <activity android:name=".SmokeTestActivity"
- android:label="Smoke Tests">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.TEST" />
- </intent-filter>
- </activity>
-
- </application>
-
-</manifest>
diff --git a/tests/SmokeTest/README b/tests/SmokeTest/README
deleted file mode 100644
index 40218cf..0000000
--- a/tests/SmokeTest/README
+++ /dev/null
@@ -1,8 +0,0 @@
-The tests in this folder are a very controlled set of tests that will be run by
-the build system on every single build. They are intended to run very quickly.
-Please use caution when adding tests here.
-
-If you wish to run these tests, issue the command:
-
-adb shell am instrument \
- -w com.android.smoketest/.tests.SmokeTestInstrumentationTestRunner
diff --git a/tests/SmokeTest/src/com/android/smoketest/SmokeTestActivity.java b/tests/SmokeTest/src/com/android/smoketest/SmokeTestActivity.java
deleted file mode 100644
index 6bc5fd2..0000000
--- a/tests/SmokeTest/src/com/android/smoketest/SmokeTestActivity.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.smoketest;
-
-import android.app.LauncherActivity;
-import android.content.Intent;
-
-/**
- * Initial launcher for UI access to smoke tests. This does not actually launch the tests,
- * it simply provides manual access to the various UI activities that are used by the tests.
- *
- * To run all of the tests in this suite:
- * adb shell am instrument \
- * -w com.android.smoketest/.tests.SmokeTestInstrumentationTestRunner
- */
-public class SmokeTestActivity extends LauncherActivity {
-
- @Override
- protected Intent getTargetIntent() {
- // TODO: partition into categories by label like the sample code app
- Intent targetIntent = new Intent(Intent.ACTION_MAIN, null);
- // TODO: Do we add a new top-level intent? Or just leave it hardcoded like this?
- targetIntent.addCategory("android.intent.category.SMOKETEST_INSTRUMENTATION_TEST");
- targetIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- return targetIntent;
- }
-}
diff --git a/tests/SmokeTest/tests/Android.mk b/tests/SmokeTest/tests/Android.mk
deleted file mode 100644
index 86bf23d..0000000
--- a/tests/SmokeTest/tests/Android.mk
+++ /dev/null
@@ -1,21 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-# We only want this apk build for tests.
-LOCAL_MODULE_TAGS := tests
-
-LOCAL_JAVA_LIBRARIES := android.test.runner
-
-# Include all test java files.
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-# Notice that we don't have to include the src files of SmokeTestApp because, by
-# running the tests using an instrumentation targeting SmokeTestApp, we
-# automatically get all of its classes loaded into our environment.
-
-LOCAL_PACKAGE_NAME := SmokeTest
-
-LOCAL_INSTRUMENTATION_FOR := SmokeTestApp
-
-include $(BUILD_PACKAGE)
-
diff --git a/tests/SmokeTest/tests/AndroidManifest.xml b/tests/SmokeTest/tests/AndroidManifest.xml
deleted file mode 100644
index 517eb1e..0000000
--- a/tests/SmokeTest/tests/AndroidManifest.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<!-- package name must be unique so suffix with "tests" so package loader doesn't ignore us -->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.smoketest.tests">
-
- <!-- We add an application tag here just so that we can indicate that
- this package needs to link against the android.test library,
- which is needed when building test cases. -->
- <application>
- <uses-library android:name="android.test.runner" />
- </application>
-
- <!--
- This declares that this app uses the instrumentation test runner targeting
- the package of com.android.smoketest. To run the tests use the command:
- "adb shell am instrument -w com.android.smoketest.tests/android.test.InstrumentationTestRunner"
- -->
- <instrumentation android:name="android.test.InstrumentationTestRunner"
- android:targetPackage="com.android.smoketest"
- android:label="System Smoke Tests"/>
-
-</manifest>
diff --git a/tests/SmokeTest/tests/src/com/android/smoketest/ProcessErrorsTest.java b/tests/SmokeTest/tests/src/com/android/smoketest/ProcessErrorsTest.java
deleted file mode 100644
index 85b91f1..0000000
--- a/tests/SmokeTest/tests/src/com/android/smoketest/ProcessErrorsTest.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.smoketest;
-
-import com.android.internal.os.RuntimeInit;
-
-import android.app.ActivityManager;
-import android.content.Context;
-import android.server.data.CrashData;
-import android.test.AndroidTestCase;
-import android.util.Log;
-
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * This smoke test is designed to quickly sniff for any error conditions
- * encountered after initial startup.
- */
-public class ProcessErrorsTest extends AndroidTestCase {
-
- private final String TAG = "ProcessErrorsTest";
-
- protected ActivityManager mActivityManager;
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- mActivityManager = (ActivityManager)
- getContext().getSystemService(Context.ACTIVITY_SERVICE);
- }
-
- public void testSetUpConditions() throws Exception {
- assertNotNull(mActivityManager);
- }
-
- public void testNoProcessErrors() throws Exception {
- List<ActivityManager.ProcessErrorStateInfo> errList;
- errList = mActivityManager.getProcessesInErrorState();
-
- // note: this contains information about each process that is currently in an error
- // condition. if the list is empty (null) then "we're good".
-
- // if the list is non-empty, then it's useful to report the contents of the list
- // we'll put a copy in the log, and we'll report it back to the framework via the assert.
- final String reportMsg = reportListContents(errList);
- if (reportMsg != null) {
- Log.w(TAG, reportMsg);
- }
-
- // report a non-empty list back to the test framework
- assertNull(reportMsg, errList);
- }
-
- /**
- * This helper function will dump the actual error reports.
- *
- * @param errList The error report containing one or more error records.
- * @return Returns a string containing all of the errors.
- */
- private String reportListContents(List<ActivityManager.ProcessErrorStateInfo> errList) {
- if (errList == null) return null;
-
- StringBuilder builder = new StringBuilder();
-
- Iterator<ActivityManager.ProcessErrorStateInfo> iter = errList.iterator();
- while (iter.hasNext()) {
- ActivityManager.ProcessErrorStateInfo entry = iter.next();
-
- String condition;
- switch (entry.condition) {
- case ActivityManager.ProcessErrorStateInfo.CRASHED:
- condition = "CRASHED";
- break;
- case ActivityManager.ProcessErrorStateInfo.NOT_RESPONDING:
- condition = "ANR";
- break;
- default:
- condition = "<unknown>";
- break;
- }
-
- String stackTrace = null;
- try {
- if (entry.crashData != null) {
- CrashData cd = RuntimeInit.unmarshallException(entry.crashData);
- stackTrace = cd.toString();
- }
- } catch (RuntimeException e) { }
- if (stackTrace == null) {
- stackTrace = "<no stack trace>";
- }
-
- final String entryReport = "Process error " + condition + " " + entry.shortMsg +
- " detected in " + entry.processName + " " + entry.tag +
- ". \n" + stackTrace;
-
- builder.append(entryReport).append(" ");
- }
- return builder.toString();
- }
-
-}
diff --git a/tests/SslLoad/Android.mk b/tests/SslLoad/Android.mk
deleted file mode 100644
index f75be8d..0000000
--- a/tests/SslLoad/Android.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := tests
-
-LOCAL_SRC_FILES := $(call all-subdir-java-files)
-
-LOCAL_PACKAGE_NAME := SslLoad
-
-include $(BUILD_PACKAGE)
diff --git a/tests/SslLoad/AndroidManifest.xml b/tests/SslLoad/AndroidManifest.xml
deleted file mode 100644
index 497b1c7..0000000
--- a/tests/SslLoad/AndroidManifest.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.sslload">
- <uses-permission android:name="android.permission.INTERNET" />
- <application>
- <activity android:name="SslLoad" android:label="SSL Load">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
-</manifest>
diff --git a/tests/SslLoad/src/com/android/sslload/SslLoad.java b/tests/SslLoad/src/com/android/sslload/SslLoad.java
deleted file mode 100644
index 9a08024..0000000
--- a/tests/SslLoad/src/com/android/sslload/SslLoad.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.sslload;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.util.Calendar;
-import java.util.Map;
-
-import android.app.Activity;
-import android.content.res.Resources;
-import android.media.MediaPlayer;
-import android.os.Handler;
-import android.os.Vibrator;
-import android.os.Bundle;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.Button;
-import android.widget.TextView;
-import android.net.http.AndroidHttpClient;
-import android.util.Log;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.ResponseHandler;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.HttpResponse;
-
-public class SslLoad extends Activity implements OnClickListener, Runnable {
-
- private static final String TAG = SslLoad.class.getSimpleName();
-
- private Button button;
- private boolean running = false;
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- Thread requestThread = new Thread(this);
- requestThread.setDaemon(true);
- requestThread.start();
-
- button = new Button(this);
- button.setText("GO");
- button.setOnClickListener(this);
-
- setContentView(button);
- }
-
- @Override
- protected void onStop() {
- super.onStop();
-
- synchronized (this) {
- running = false;
- }
- }
-
- public void onClick(View v) {
- synchronized (this) {
- running = !running;
- button.setText(running ? "STOP" : "GO");
- if (running) {
- this.notifyAll();
- }
- }
- }
-
- public void run() {
- boolean error = false;
- while (true) {
- synchronized (this) {
- while (!running) {
- try {
- this.wait();
- } catch (InterruptedException e) { /* ignored */ }
- }
- }
-
- AndroidHttpClient client = AndroidHttpClient.newInstance(
- "Mozilla/5.001 (windows; U; NT4.0; en-us) Gecko/25250101");
- try {
- // Cert. is for "www.google.com", not "google.com".
- String url = error ? "https://google.com/"
- : "https://www.google.com";
- client.execute(new HttpGet(url),
- new ResponseHandler<Void>() {
- public Void handleResponse(HttpResponse response) {
- /* ignore */
- return null;
- }
- });
- Log.i(TAG, "Request succeeded.");
- } catch (IOException e) {
- Log.w(TAG, "Request failed.", e);
- }
-
- client.close();
-
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) { /* ignored */ }
-
- error = !error;
- }
- }
-}
diff --git a/tests/StatusBar/Android.mk b/tests/StatusBar/Android.mk
deleted file mode 100644
index 44f5099..0000000
--- a/tests/StatusBar/Android.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := test
-
-LOCAL_SRC_FILES := $(call all-subdir-java-files)
-
-LOCAL_PACKAGE_NAME := StatusBarTest
-LOCAL_CERTIFICATE := platform
-
-include $(BUILD_PACKAGE)
diff --git a/tests/StatusBar/AndroidManifest.xml b/tests/StatusBar/AndroidManifest.xml
deleted file mode 100644
index 9bba79c..0000000
--- a/tests/StatusBar/AndroidManifest.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.statusbartest">
- <uses-permission android:name="android.permission.DEVICE_POWER" />
- <uses-permission android:name="android.permission.STATUS_BAR" />
- <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
- <uses-permission android:name="android.permission.VIBRATE" />
-
- <application>
- <activity android:name="StatusBarTest" android:label="_StatusBar">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.DEFAULT" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- <activity android:name="NotificationTestList" android:label="_Notifications">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.DEFAULT" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- <activity android:name="ToastTest" android:label="_Toasts">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.DEFAULT" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- <activity android:name="PowerTest" android:label="_Power">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.DEFAULT" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
-</manifest>
diff --git a/tests/StatusBar/res/drawable/app_gmail.png b/tests/StatusBar/res/drawable/app_gmail.png
deleted file mode 100644
index beaaacf..0000000
--- a/tests/StatusBar/res/drawable/app_gmail.png
+++ /dev/null
Binary files differ
diff --git a/tests/StatusBar/res/drawable/app_phone.png b/tests/StatusBar/res/drawable/app_phone.png
deleted file mode 100644
index 2748c1c..0000000
--- a/tests/StatusBar/res/drawable/app_phone.png
+++ /dev/null
Binary files differ
diff --git a/tests/StatusBar/res/drawable/ic_statusbar_chat.png b/tests/StatusBar/res/drawable/ic_statusbar_chat.png
deleted file mode 100644
index e08cddb..0000000
--- a/tests/StatusBar/res/drawable/ic_statusbar_chat.png
+++ /dev/null
Binary files differ
diff --git a/tests/StatusBar/res/drawable/ic_statusbar_email.png b/tests/StatusBar/res/drawable/ic_statusbar_email.png
deleted file mode 100644
index 19c9005..0000000
--- a/tests/StatusBar/res/drawable/ic_statusbar_email.png
+++ /dev/null
Binary files differ
diff --git a/tests/StatusBar/res/drawable/ic_statusbar_missedcall.png b/tests/StatusBar/res/drawable/ic_statusbar_missedcall.png
deleted file mode 100644
index ced62d7..0000000
--- a/tests/StatusBar/res/drawable/ic_statusbar_missedcall.png
+++ /dev/null
Binary files differ
diff --git a/tests/StatusBar/res/drawable/icon1.png b/tests/StatusBar/res/drawable/icon1.png
deleted file mode 100644
index abfb6fa..0000000
--- a/tests/StatusBar/res/drawable/icon1.png
+++ /dev/null
Binary files differ
diff --git a/tests/StatusBar/res/drawable/icon2.png b/tests/StatusBar/res/drawable/icon2.png
deleted file mode 100644
index 564b38b..0000000
--- a/tests/StatusBar/res/drawable/icon2.png
+++ /dev/null
Binary files differ
diff --git a/tests/StatusBar/res/drawable/icon3.png b/tests/StatusBar/res/drawable/icon3.png
deleted file mode 100644
index e765d8f..0000000
--- a/tests/StatusBar/res/drawable/icon3.png
+++ /dev/null
Binary files differ
diff --git a/tests/StatusBar/res/drawable/icon4.png b/tests/StatusBar/res/drawable/icon4.png
deleted file mode 100644
index 5f33885..0000000
--- a/tests/StatusBar/res/drawable/icon4.png
+++ /dev/null
Binary files differ
diff --git a/tests/StatusBar/res/layout/chrono_notification.xml b/tests/StatusBar/res/layout/chrono_notification.xml
deleted file mode 100644
index 913a860..0000000
--- a/tests/StatusBar/res/layout/chrono_notification.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="80sp"
- android:orientation="horizontal"
- >
-
- <LinearLayout
- android:layout_width="wrap_content"
- android:layout_height="fill_parent"
- android:layout_weight="0"
- android:orientation="vertical"
- >
-
- <ImageView android:id="@+id/icon"
- android:layout_width="wrap_content"
- android:layout_height="45dp"
- android:layout_gravity="center"
- android:scaleType="fitCenter"
- android:src="@android:drawable/sym_def_app_icon"
- />
-
- <Chronometer android:id="@+id/time"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:singleLine="true"
- android:textColor="#ffffffff" />
-
- </LinearLayout>
-
- <TextView android:id="@+id/appName"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:layout_weight="1"
- android:paddingTop="4dp"
- android:textSize="12sp"
- android:textColor="#ffffffff"
- />
-
-</LinearLayout>
-
diff --git a/tests/StatusBar/res/raw/ringer.mp3 b/tests/StatusBar/res/raw/ringer.mp3
deleted file mode 100644
index aa052e7..0000000
--- a/tests/StatusBar/res/raw/ringer.mp3
+++ /dev/null
Binary files differ
diff --git a/tests/StatusBar/res/values/strings.xml b/tests/StatusBar/res/values/strings.xml
deleted file mode 100644
index 0c2cf0d..0000000
--- a/tests/StatusBar/res/values/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <string name="mainLabel">Hello <u>th<ignore>e</ignore>re</u>, <i>you</i> <b>Activity</b>!</string>
- <string name="back">Back</string>
- <string name="clear">Clear</string>
-</resources>
-
diff --git a/tests/StatusBar/src/com/android/statusbartest/NotificationTestList.java b/tests/StatusBar/src/com/android/statusbartest/NotificationTestList.java
deleted file mode 100644
index e1a0e7d..0000000
--- a/tests/StatusBar/src/com/android/statusbartest/NotificationTestList.java
+++ /dev/null
@@ -1,517 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.statusbartest;
-
-import android.app.ListActivity;
-import android.app.PendingIntent;
-import android.widget.ArrayAdapter;
-import android.view.View;
-import android.widget.ListView;
-import android.content.Intent;
-import android.app.Notification;
-import android.app.NotificationManager;
-import android.os.Vibrator;
-import android.os.Bundle;
-import android.os.Handler;
-import android.util.Log;
-import android.net.Uri;
-import android.os.SystemClock;
-import android.widget.RemoteViews;
-import android.widget.TextView;
-import android.os.PowerManager;
-
-public class NotificationTestList extends TestActivity
-{
- private final static String TAG = "NotificationTestList";
-
- NotificationManager mNM;
- Vibrator mVibrator = new Vibrator();
- Handler mHandler = new Handler();
-
- long mChronometerBase = 0;
-
- @Override
- protected String tag() {
- return TAG;
- }
-
- @Override
- protected Test[] tests() {
- mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
-
- return mTests;
- }
-
- private Test[] mTests = new Test[] {
- new Test("Crash") {
- public void run()
- {
- PowerManager.WakeLock wl
- = ((PowerManager)NotificationTestList.this.getSystemService("power"))
- .newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "crasher");
- wl.acquire();
- mHandler.postDelayed(new Runnable() {
- public void run() {
- throw new RuntimeException("Die!");
- }
- }, 10000);
-
- }
- },
-
- new Test("No view") {
- public void run() {
- Notification n = new Notification(R.drawable.icon1, "No view",
- System.currentTimeMillis());
- mNM.notify(1, n);
- }
- },
-
- new Test("No intent") {
- public void run() {
- Notification n = new Notification(R.drawable.icon1, "No intent",
- System.currentTimeMillis());
- n.setLatestEventInfo(NotificationTestList.this, "No intent",
- "No intent", null);
- mNM.notify(1, n);
- }
- },
-
- new Test("Layout") {
- public void run()
- {
-
- mNM.notify(1, new Notification(NotificationTestList.this,
- R.drawable.ic_statusbar_missedcall,
- null, System.currentTimeMillis()-(1000*60*60*24),
- "(453) 123-2328",
- "", null));
-
- mNM.notify(2, new Notification(NotificationTestList.this,
- R.drawable.ic_statusbar_email,
- null, System.currentTimeMillis(),
- "Mark Willem, Me (2)",
- "Re: Didn't you get the memo?", null));
-
- mNM.notify(3, new Notification(NotificationTestList.this,
- R.drawable.ic_statusbar_chat,
- null, System.currentTimeMillis()+(1000*60*60*24),
- "Sophia Winterlanden",
- "Lorem ipsum dolor sit amet.", null));
- }
- },
-
- new StateStress("Stress - Ongoing / Latest", 100, 100, new Runnable[] {
- new Runnable() {
- public void run() {
- Log.d(TAG, "Stress - Ongoing/Latest 0");
- Notification n = new Notification(NotificationTestList.this,
- R.drawable.icon3,
- null, System.currentTimeMillis(), "Stress - Ongoing",
- "Notify me!!!", null);
- n.flags |= Notification.FLAG_ONGOING_EVENT;
- mNM.notify(1, n);
- }
- },
- new Runnable() {
- public void run() {
- Log.d(TAG, "Stress - Ongoing/Latest 1");
- Notification n = new Notification(NotificationTestList.this,
- R.drawable.icon4,
- null, System.currentTimeMillis(), "Stress - Latest",
- "Notify me!!!", null);
- n.flags |= Notification.FLAG_ONGOING_EVENT;
- mNM.notify(1, n);
- }
- }
- }),
-
- new Test("Long") {
- public void run()
- {
- Notification n = new Notification();
- n.defaults |= Notification.DEFAULT_SOUND ;
- n.vibrate = new long[] {
- 300, 400, 300, 400, 300, 400, 300, 400, 300, 400, 300, 400,
- 300, 400, 300, 400, 300, 400, 300, 400, 300, 400, 300, 400,
- 300, 400, 300, 400, 300, 400, 300, 400, 300, 400, 300, 400 };
- mNM.notify(1, n);
- }
- },
-
- new Test("Default All") {
- public void run()
- {
- Notification n = new Notification();
- n.defaults |= Notification.DEFAULT_ALL;
- mNM.notify(1, n);
- }
- },
-
- new Test("Default All, once") {
- public void run()
- {
- Notification n = new Notification();
- n.defaults |= Notification.DEFAULT_ALL;
- n.flags |= Notification.FLAG_ONLY_ALERT_ONCE ;
- mNM.notify(1, n);
- }
- },
-
- new Test("Content Sound") {
- public void run()
- {
- Notification n = new Notification();
- n.sound = Uri.parse(
- "content://media/internal/audio/media/7");
-
- mNM.notify(1, n);
- }
- },
-
- new Test("Resource Sound") {
- public void run()
- {
- Notification n = new Notification();
- n.sound = Uri.parse(
- "android.resource://com.android.notificationtest/raw/ringer");
- Log.d(TAG, "n.sound=" + n.sound);
-
- mNM.notify(1, n);
- }
- },
-
- new Test("Sound and Cancel") {
- public void run()
- {
- Notification n = new Notification();
- n.sound = Uri.parse(
- "content://media/internal/audio/media/7");
-
- mNM.notify(1, n);
- SystemClock.sleep(200);
- mNM.cancel(1);
- }
- },
-
- new Test("Vibrate") {
- public void run()
- {
- Notification n = new Notification();
- n.vibrate = new long[] { 0, 700, 500, 1000 };
-
- mNM.notify(1, n);
- }
- },
-
- new Test("Vibrate and cancel") {
- public void run()
- {
- Notification n = new Notification();
- n.vibrate = new long[] { 0, 700, 500, 1000 };
-
- mNM.notify(1, n);
- SystemClock.sleep(500);
- mNM.cancel(1);
- }
- },
-
- new Test("Vibrate pattern") {
- public void run()
- {
- mVibrator.vibrate(new long[] { 250, 1000, 500, 2000 }, -1);
- }
- },
-
- new Test("Vibrate pattern repeating") {
- public void run()
- {
- mVibrator.vibrate(new long[] { 250, 1000, 500 }, 1);
- }
- },
-
- new Test("Vibrate 3s") {
- public void run()
- {
- mVibrator.vibrate(3000);
- }
- },
-
- new Test("Vibrate 100s") {
- public void run()
- {
- mVibrator.vibrate(100000);
- }
- },
-
- new Test("Vibrate off") {
- public void run()
- {
- mVibrator.cancel();
- }
- },
-
- new Test("Cancel #1") {
- public void run() {
- mNM.cancel(1);
- }
- },
-
- new Test("Cancel #1 in 3 sec") {
- public void run() {
- mHandler.postDelayed(new Runnable() {
- public void run() {
- Log.d(TAG, "Cancelling now...");
- mNM.cancel(1);
- }
- }, 3000);
- }
- },
-
- new Test("Cancel #2") {
- public void run() {
- mNM.cancel(2);
- }
- },
-
- new Test("Persistent #1") {
- public void run() {
- Notification n = new Notification(R.drawable.icon1, "tick tick tick",
- System.currentTimeMillis());
- n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
- "This is a notification!!!", makeIntent());
- mNM.notify(1, n);
- }
- },
-
- new Test("Persistent #1 in 3 sec") {
- public void run() {
- mHandler.postDelayed(new Runnable() {
- public void run() {
- Notification n = new Notification(R.drawable.icon1,
- " "
- + "tick tock tick tock\n\nSometimes notifications can "
- + "be really long and wrap to more than one line.\n"
- + "Sometimes."
- + "Ohandwhathappensifwehaveonereallylongstringarewesure"
- + "thatwesegmentitcorrectly?\n",
- System.currentTimeMillis());
- n.setLatestEventInfo(NotificationTestList.this,
- "Still Persistent #1",
- "This is still a notification!!!",
- makeIntent());
- mNM.notify(1, n);
- }
- }, 3000);
- }
- },
-
- new Test("Persistent #2") {
- public void run() {
- Notification n = new Notification(R.drawable.icon2, "tock tock tock",
- System.currentTimeMillis());
- n.setLatestEventInfo(NotificationTestList.this, "Persistent #2",
- "Notify me!!!", makeIntent());
- mNM.notify(2, n);
- }
- },
-
- new Test("Persistent #2 Vibrate") {
- public void run() {
- Notification n = new Notification(R.drawable.icon2, "tock tock tock",
- System.currentTimeMillis());
- n.setLatestEventInfo(NotificationTestList.this, "Persistent #2",
- "Notify me!!!", makeIntent());
- n.defaults = Notification.DEFAULT_VIBRATE;
- mNM.notify(2, n);
- }
- },
-
- new Test("Chronometer Start") {
- public void run() {
- Notification n = new Notification(R.drawable.icon2, "me me me me",
- System.currentTimeMillis());
- n.contentView = new RemoteViews(getPackageName(), R.layout.chrono_notification);
- mChronometerBase = SystemClock.elapsedRealtime();
- n.contentView.setChronometer(R.id.time, mChronometerBase, "Yay! (%s)", true);
- n.flags |= Notification.FLAG_ONGOING_EVENT;
- n.contentIntent = makeIntent();
- mNM.notify(2, n);
- }
- },
-
- new Test("Chronometer Stop") {
- public void run() {
- mHandler.postDelayed(new Runnable() {
- public void run() {
- Log.d(TAG, "Chronometer Stop");
- Notification n = new Notification();
- n.icon = R.drawable.icon1;
- n.contentView = new RemoteViews(getPackageName(),
- R.layout.chrono_notification);
- n.contentView.setChronometer(R.id.time, mChronometerBase, null, false);
- n.contentIntent = makeIntent();
- mNM.notify(2, n);
- }
- }, 3000);
- }
- },
-
- new Test("Sequential Persistent") {
- public void run() {
- mNM.notify(1, notificationWithNumbers(1));
- mNM.notify(2, notificationWithNumbers(2));
- }
- },
-
- new Test("Replace Persistent") {
- public void run() {
- mNM.notify(1, notificationWithNumbers(1));
- mNM.notify(1, notificationWithNumbers(1));
- }
- },
-
- new Test("Run and Cancel (n=1)") {
- public void run() {
- mNM.notify(1, notificationWithNumbers(1));
- mNM.cancel(1);
- }
- },
-
- new Test("Run an Cancel (n=2)") {
- public void run() {
- mNM.notify(1, notificationWithNumbers(1));
- mNM.notify(2, notificationWithNumbers(2));
- mNM.cancel(2);
- }
- },
-
- // Repeatedly notify and cancel -- triggers bug #670627
- new Test("Bug 670627") {
- public void run() {
- for (int i = 0; i < 10; i++) {
- Log.d(TAG, "Add two notifications");
- mNM.notify(1, notificationWithNumbers(1));
- mNM.notify(2, notificationWithNumbers(2));
- Log.d(TAG, "Cancel two notifications");
- mNM.cancel(1);
- mNM.cancel(2);
- }
- }
- },
-
- new Test("Ten Notifications") {
- public void run() {
- for (int i = 0; i < 2; i++) {
- Notification n = new Notification(NotificationTestList.this, R.drawable.icon2,
- null, System.currentTimeMillis(), "Persistent #" + i,
- "Notify me!!!" + i, null);
- n.flags |= Notification.FLAG_ONGOING_EVENT;
- n.number = i;
- mNM.notify((i+1)*10, n);
- }
- for (int i = 2; i < 10; i++) {
- Notification n = new Notification(NotificationTestList.this, R.drawable.icon2,
- null, System.currentTimeMillis(), "Persistent #" + i,
- "Notify me!!!" + i, null);
- n.number = i;
- mNM.notify((i+1)*10, n);
- }
- }
- },
-
- new Test("Cancel eight notifications") {
- public void run() {
- for (int i = 1; i < 9; i++) {
- mNM.cancel((i+1)*10);
- }
- }
- },
-
- new Test("Persistent with numbers 1") {
- public void run() {
- mNM.notify(1, notificationWithNumbers(1));
- }
- },
-
- new Test("Persistent with numbers 222") {
- public void run() {
- mNM.notify(1, notificationWithNumbers(22));
- }
- },
-
- new Test("Persistent with numbers 333") {
- public void run() {
- mNM.notify(1, notificationWithNumbers(333));
- }
- },
-
- new Test("Persistent with numbers 4444") {
- public void run() {
- mNM.notify(1, notificationWithNumbers(4444));
- }
- },
-
- };
-
- private Notification notificationWithNumbers(int num) {
- Notification n = new Notification(this, R.drawable.icon2, null, System.currentTimeMillis(),
- "Persistent #2", "Notify me!!!", null);
- n.number = num;
- return n;
- }
-
- private PendingIntent makeIntent() {
- Intent intent = new Intent(Intent.ACTION_MAIN);
- intent.setComponent(new android.content.ComponentName(
- "com.android.contacts",
- "com.android.contacts.ContactsActivity"));
- return PendingIntent.getActivity(this, 0, intent, 0);
- }
-
- class StateStress extends Test {
- StateStress(String name, int pause, int iterations, Runnable[] tasks) {
- super(name);
- mPause = pause;
- mTasks = tasks;
- mIteration = iterations;
- }
- Runnable[] mTasks;
- int mNext;
- int mIteration;
- long mPause;
- Runnable mRunnable = new Runnable() {
- public void run() {
- mTasks[mNext].run();
- mNext++;
- if (mNext >= mTasks.length) {
- mNext = 0;
- mIteration--;
- if (mIteration <= 0) {
- return;
- }
- }
- mHandler.postDelayed(mRunnable, mPause);
- }
- };
- public void run() {
- mNext = 0;
- mHandler.postDelayed(mRunnable, mPause);
- }
- }
-}
-
diff --git a/tests/StatusBar/src/com/android/statusbartest/PowerTest.java b/tests/StatusBar/src/com/android/statusbartest/PowerTest.java
deleted file mode 100644
index f236a4b..0000000
--- a/tests/StatusBar/src/com/android/statusbartest/PowerTest.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.statusbartest;
-
-import android.app.ListActivity;
-import android.app.Notification;
-import android.app.NotificationManager;
-import android.widget.ArrayAdapter;
-import android.view.View;
-import android.os.Binder;
-import android.os.IBinder;
-import android.os.IPowerManager;
-import android.widget.ListView;
-import android.content.Intent;
-import android.app.Notification;
-import android.app.NotificationManager;
-import android.app.StatusBarManager;
-import android.os.RemoteException;
-import android.os.Vibrator;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.LocalPowerManager;
-import android.os.ServiceManager;
-import android.util.Log;
-import android.net.Uri;
-import android.os.SystemClock;
-import android.widget.RemoteViews;
-import android.widget.Toast;
-import android.os.PowerManager;
-
-public class PowerTest extends TestActivity
-{
- private final static String TAG = "PowerTest";
- IPowerManager mPowerManager;
- int mPokeState = 0;
- IBinder mPokeToken = new Binder();
- Handler mHandler = new Handler();
-
- @Override
- protected String tag() {
- return TAG;
- }
-
- @Override
- protected Test[] tests() {
- mPowerManager = IPowerManager.Stub.asInterface(ServiceManager.getService("power"));
-
- return mTests;
- }
- private Test[] mTests = new Test[] {
- new Test("Touch events don't poke") {
- public void run() {
- mPokeState |= LocalPowerManager.POKE_LOCK_IGNORE_CHEEK_EVENTS;
- try {
- mPowerManager.setPokeLock(mPokeState, mPokeToken, TAG);
- } catch (RemoteException e) {
- throw new RuntimeException(e);
- }
- }
- },
- new Test("Touch events poke") {
- public void run() {
- mPokeState &= ~LocalPowerManager.POKE_LOCK_IGNORE_CHEEK_EVENTS;
- try {
- mPowerManager.setPokeLock(mPokeState, mPokeToken, TAG);
- } catch (RemoteException e) {
- throw new RuntimeException(e);
- }
- }
- },
- new Test("Short timeout") {
- public void run() {
- mPokeState &= ~LocalPowerManager.POKE_LOCK_TIMEOUT_MASK;
- mPokeState |= LocalPowerManager.POKE_LOCK_SHORT_TIMEOUT;
- try {
- mPowerManager.setPokeLock(mPokeState, mPokeToken, TAG);
- } catch (RemoteException e) {
- throw new RuntimeException(e);
- }
- }
- },
- new Test("Medium timeout") {
- public void run() {
- mPokeState &= ~LocalPowerManager.POKE_LOCK_TIMEOUT_MASK;
- mPokeState |= LocalPowerManager.POKE_LOCK_MEDIUM_TIMEOUT;
- try {
- mPowerManager.setPokeLock(mPokeState, mPokeToken, TAG);
- } catch (RemoteException e) {
- throw new RuntimeException(e);
- }
- }
- },
- new Test("Normal timeout") {
- public void run() {
- mPokeState &= ~LocalPowerManager.POKE_LOCK_TIMEOUT_MASK;
- try {
- mPowerManager.setPokeLock(mPokeState, mPokeToken, TAG);
- } catch (RemoteException e) {
- throw new RuntimeException(e);
- }
- }
- },
- new Test("Illegal timeout") {
- public void run() {
- mPokeState |= LocalPowerManager.POKE_LOCK_SHORT_TIMEOUT
- | LocalPowerManager.POKE_LOCK_MEDIUM_TIMEOUT;
- try {
- mPowerManager.setPokeLock(mPokeState, mPokeToken, TAG);
- } catch (RemoteException e) {
- throw new RuntimeException(e);
- }
- }
- },
- };
-}
diff --git a/tests/StatusBar/src/com/android/statusbartest/StatusBarTest.java b/tests/StatusBar/src/com/android/statusbartest/StatusBarTest.java
deleted file mode 100644
index 275e5cb..0000000
--- a/tests/StatusBar/src/com/android/statusbartest/StatusBarTest.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.statusbartest;
-
-import android.app.ListActivity;
-import android.app.Notification;
-import android.app.NotificationManager;
-import android.widget.ArrayAdapter;
-import android.view.View;
-import android.widget.ListView;
-import android.content.Intent;
-import android.app.Notification;
-import android.app.NotificationManager;
-import android.app.StatusBarManager;
-import android.os.Vibrator;
-import android.os.Bundle;
-import android.os.Handler;
-import android.util.Log;
-import android.net.Uri;
-import android.os.SystemClock;
-import android.widget.RemoteViews;
-import android.widget.Toast;
-import android.os.PowerManager;
-
-public class StatusBarTest extends TestActivity
-{
- private final static String TAG = "StatusBarTest";
- StatusBarManager mStatusBarManager;
- NotificationManager mNotificationManager;
- Handler mHandler = new Handler();
-
- @Override
- protected String tag() {
- return TAG;
- }
-
- @Override
- protected Test[] tests() {
- mStatusBarManager = (StatusBarManager)getSystemService(STATUS_BAR_SERVICE);
- mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
-
- return mTests;
- }
-
- private Test[] mTests = new Test[] {
- new Test("Disable Alerts") {
- public void run() {
- mStatusBarManager.disable(StatusBarManager.DISABLE_NOTIFICATION_ALERTS);
- }
- },
- new Test("Disable Expand in 3 sec.") {
- public void run() {
- mHandler.postDelayed(new Runnable() {
- public void run() {
- mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND);
- }
- }, 3000);
- }
- },
- new Test("Disable Notifications in 3 sec.") {
- public void run() {
- mHandler.postDelayed(new Runnable() {
- public void run() {
- mStatusBarManager.disable(StatusBarManager.DISABLE_NOTIFICATION_ICONS);
- }
- }, 3000);
- }
- },
- new Test("Disable Both in 3 sec.") {
- public void run() {
- mHandler.postDelayed(new Runnable() {
- public void run() {
- mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND
- | StatusBarManager.DISABLE_NOTIFICATION_ICONS);
- }
- }, 3000);
- }
- },
- new Test("Disable None in 3 sec.") {
- public void run() {
- mHandler.postDelayed(new Runnable() {
- public void run() {
- mStatusBarManager.disable(0);
- }
- }, 3000);
- }
- },
- new Test("Notify in 3 sec.") {
- public void run() {
- mHandler.postDelayed(new Runnable() {
- public void run() {
- mNotificationManager.notify(1,
- new Notification(StatusBarTest.this,
- R.drawable.ic_statusbar_missedcall,
- "tick tick tick",
- System.currentTimeMillis()-(1000*60*60*24),
- "(453) 123-2328",
- "", null
- ));
- }
- }, 3000);
- }
- },
- new Test("Cancel Notification in 3 sec.") {
- public void run() {
- mHandler.postDelayed(new Runnable() {
- public void run() {
- mNotificationManager.cancel(1);
- }
- }, 3000);
- }
- },
- new Test("Expand in 3 sec.") {
- public void run() {
- mHandler.postDelayed(new Runnable() {
- public void run() {
- mStatusBarManager.expand();
- }
- }, 3000);
- }
- },
- new Test("Expand in 3 sec.") {
- public void run() {
- mHandler.postDelayed(new Runnable() {
- public void run() {
- mStatusBarManager.expand();
- }
- }, 3000);
- }
- },
- new Test("Collapse in 3 sec.") {
- public void run() {
- mHandler.postDelayed(new Runnable() {
- public void run() {
- mStatusBarManager.collapse();
- }
- }, 3000);
- }
- },
- new Test("Toggle in 3 sec.") {
- public void run() {
- mHandler.postDelayed(new Runnable() {
- public void run() {
- mStatusBarManager.toggle();
- }
- }, 3000);
- }
- },
- };
-}
diff --git a/tests/StatusBar/src/com/android/statusbartest/TestActivity.java b/tests/StatusBar/src/com/android/statusbartest/TestActivity.java
deleted file mode 100644
index 6a8c62e..0000000
--- a/tests/StatusBar/src/com/android/statusbartest/TestActivity.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.statusbartest;
-
-import android.app.ListActivity;
-import android.app.Notification;
-import android.app.NotificationManager;
-import android.widget.ArrayAdapter;
-import android.view.View;
-import android.widget.ListView;
-import android.content.Intent;
-import android.os.Vibrator;
-import android.os.Bundle;
-import android.os.Handler;
-import android.util.Log;
-import android.net.Uri;
-import android.os.SystemClock;
-import android.widget.RemoteViews;
-import android.widget.Toast;
-import android.os.PowerManager;
-
-public abstract class TestActivity extends ListActivity
-{
- Test[] mTests;
-
- protected abstract String tag();
- protected abstract Test[] tests();
-
- abstract class Test {
- String name;
- Test(String n) {
- name = n;
- }
- abstract void run();
- }
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- mTests = tests();
-
- String[] labels = new String[mTests.length];
- for (int i=0; i<mTests.length; i++) {
- labels[i] = mTests[i].name;
- }
-
- setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, labels));
- }
-
- @Override
- public void onListItemClick(ListView l, View v, int position, long id)
- {
- Test t = mTests[position];
- Log.d(tag(), "Test: " + t.name);
- t.run();
- }
-
-}
diff --git a/tests/StatusBar/src/com/android/statusbartest/ToastTest.java b/tests/StatusBar/src/com/android/statusbartest/ToastTest.java
deleted file mode 100644
index 018c9f2..0000000
--- a/tests/StatusBar/src/com/android/statusbartest/ToastTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.statusbartest;
-
-import android.app.ListActivity;
-import android.app.PendingIntent;
-import android.widget.ArrayAdapter;
-import android.view.View;
-import android.widget.ListView;
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.Handler;
-import android.util.Log;
-import android.net.Uri;
-import android.os.SystemClock;
-import android.view.Gravity;
-import android.widget.RemoteViews;
-import android.widget.Toast;
-import android.widget.TextView;
-import android.os.PowerManager;
-
-public class ToastTest extends TestActivity
-{
- private final static String TAG = "ToastTest";
-
- Handler mHandler = new Handler();
- Toast mToast1;
- Toast mToast2;
-
- @Override
- protected String tag() {
- return TAG;
- }
-
- @Override
- protected Test[] tests() {
- return mTests;
- }
-
- private Test[] mTests = new Test[] {
- new Test("Make Toast #1") {
- public void run()
- {
- mToast1 = Toast.makeText(ToastTest.this, "hi 1", Toast.LENGTH_SHORT);
- }
- },
-
- new Test("Show Toast #1") {
- public void run()
- {
- mToast1.show();
- }
- },
-
- new Test("Update Toast #1") {
- public void run()
- {
- TextView view = new TextView(ToastTest.this);
- view.setText("replaced!");
- mToast1.setView(view);
- mToast1.show();
- }
- },
-
- new Test("Make Toast #2") {
- public void run()
- {
- mToast2 = Toast.makeText(ToastTest.this, "hi 2", Toast.LENGTH_SHORT);
- }
- },
-
- new Test("Show Toast #2") {
- public void run()
- {
- mToast2.show();
- }
- },
-
- new Test("Gravity Toast LEFT") {
- public void run()
- {
- Toast toast = Toast.makeText(ToastTest.this, "LEFT", Toast.LENGTH_SHORT);
- toast.setGravity(Gravity.LEFT, 0, 0);
- toast.show();
- }
- },
-
- new Test("Gravity Toast FILL_HORIZONTAL") {
- public void run()
- {
- Toast toast = Toast.makeText(ToastTest.this, "FILL_HORIZONTAL",
- Toast.LENGTH_SHORT);
- toast.setGravity(Gravity.FILL_HORIZONTAL, 0, 0);
- toast.show();
- }
- },
-
- };
-}
-
diff --git a/tests/framework-tests/Android.mk b/tests/framework-tests/Android.mk
deleted file mode 100644
index 5053e7d..0000000
--- a/tests/framework-tests/Android.mk
+++ /dev/null
@@ -1 +0,0 @@
-include $(call all-subdir-makefiles)
diff --git a/tests/framework-tests/README b/tests/framework-tests/README
deleted file mode 100644
index 7b46b25..0000000
--- a/tests/framework-tests/README
+++ /dev/null
@@ -1,5 +0,0 @@
-This package contains tests which need to access package-private members in the framework code.
-To do this, the tests must be loaded in the same class loader as the classes which they are
-testing. This package is loaded in the boot classpath.
-
-Run these tests via AndroidTests -> FrameworkTests.
diff --git a/tests/framework-tests/src/Android.mk b/tests/framework-tests/src/Android.mk
deleted file mode 100644
index 54e33a4..0000000
--- a/tests/framework-tests/src/Android.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := $(call all-subdir-java-files)
-
-LOCAL_MODULE := framework-tests
-
-LOCAL_JAVA_LIBRARIES := android.policy_phone android.test.runner
-
-include $(BUILD_JAVA_LIBRARY)
diff --git a/tests/framework-tests/src/android/test/FrameworkTests.java b/tests/framework-tests/src/android/test/FrameworkTests.java
deleted file mode 100644
index b5f6292..0000000
--- a/tests/framework-tests/src/android/test/FrameworkTests.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package android.test;
-
-import com.android.internal.os.LoggingPrintStreamTest;
-import android.util.EventLogFunctionalTest;
-import android.util.EventLogTest;
-import junit.framework.TestSuite;
-import com.android.internal.http.multipart.MultipartTest;
-import com.android.internal.policy.impl.LockPatternKeyguardViewTest;
-
-/**
- * Tests that are loaded in the boot classpath along with the Android framework
- * classes. This enables you to access package-private members in the framework
- * classes; doing so is not possible when the test classes are loaded in an
- * application classloader.
- */
-public class FrameworkTests {
- public static TestSuite suite() {
- TestSuite suite = new TestSuite(FrameworkTests.class.getName());
-
- suite.addTestSuite(MultipartTest.class);
- suite.addTestSuite(EventLogTest.class);
- suite.addTestSuite(EventLogFunctionalTest.class);
- suite.addTestSuite(LoggingPrintStreamTest.class);
- suite.addTestSuite(LockPatternKeyguardViewTest.class);
-
- return suite;
- }
-}
diff --git a/tests/framework-tests/src/android/text/PackedIntVectorTest.java b/tests/framework-tests/src/android/text/PackedIntVectorTest.java
deleted file mode 100644
index 78cdee9..0000000
--- a/tests/framework-tests/src/android/text/PackedIntVectorTest.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.text;
-
-import android.text.PackedIntVector;
-import junit.framework.TestCase;
-
-/**
- * PackedIntVectorTest tests the features of android.util.PackedIntVector.
- */
-public class PackedIntVectorTest extends TestCase {
-
- public void testBasic() throws Exception {
- for (int width = 0; width < 10; width++) {
- PackedIntVector p = new PackedIntVector(width);
- int[] ins = new int[width];
-
- for (int height = width * 2; height < width * 4; height++) {
- assertEquals(p.width(), width);
-
- // Test adding rows.
-
- for (int i = 0; i < height; i++) {
- int at;
-
- if (i % 2 == 0) {
- at = i;
- } else {
- at = p.size() - i;
- }
-
- for (int j = 0; j < width; j++) {
- ins[j] = i + j;
- }
-
- if (i == height / 2) {
- p.insertAt(at, null);
- } else {
- p.insertAt(at, ins);
- }
-
- assertEquals(p.size(), i + 1);
-
- for (int j = 0; j < width; j++) {
- if (i == height / 2) {
- assertEquals(0, p.getValue(at, j));
- } else {
- assertEquals(p.getValue(at, j), i + j);
- }
- }
- }
-
- // Test setting values.
-
- for (int i = 0; i < height; i++) {
- for (int j = 0; j < width; j++) {
- p.setValue(i, j, i * j);
-
- assertEquals(p.getValue(i, j), i * j);
- }
- }
-
- // Test offsetting values.
-
- for (int j = 0; j < width; j++) {
- p.adjustValuesBelow(j * 2, j, j + 27);
- }
-
- for (int i = 0; i < height; i++) {
- for (int j = 0; j < width; j++) {
- int expect = i * j;
-
- if (i >= j * 2) {
- expect += j + 27;
- }
-
- assertEquals(p.getValue(i, j), expect);
- }
- }
-
- for (int j = 0; j < width; j++) {
- p.adjustValuesBelow(j, j, j * j + 14);
- }
-
- for (int i = 0; i < height; i++) {
- for (int j = 0; j < width; j++) {
- int expect = i * j;
-
- if (i >= j * 2) {
- expect += j + 27;
- }
- if (i >= j) {
- expect += j * j + 14;
- }
-
- assertEquals(p.getValue(i, j), expect);
- }
- }
-
- // Test undoing offsets.
-
- for (int j = 0; j < width; j++) {
- p.adjustValuesBelow(j * 2, j, -(j + 27));
- p.adjustValuesBelow(j, j, -(j * j + 14));
- }
-
- for (int i = 0; i < height; i++) {
- for (int j = 0; j < width; j++) {
- assertEquals(p.getValue(i, j), i * j);
- }
- }
-
- // Test deleting rows.
-
- while (p.size() > 0) {
- int osize = p.size();
- int del = osize / 3;
-
- if (del == 0) {
- del = 1;
- }
-
- int at = (osize - del) / 2;
- p.deleteAt(at, del);
-
- assertEquals(p.size(), osize - del);
-
- for (int i = 0; i < at; i++) {
- for (int j = 0; j < width; j++) {
- assertEquals(p.getValue(i, j), i * j);
- }
- }
-
- for (int i = at; i < p.size(); i++) {
- for (int j = 0; j < width; j++) {
- assertEquals(p.getValue(i, j), (i + height - p.size()) * j);
- }
- }
- }
-
- assertEquals(0, p.size());
- }
- }
- }
-}
diff --git a/tests/framework-tests/src/android/util/EventLogFunctionalTest.java b/tests/framework-tests/src/android/util/EventLogFunctionalTest.java
deleted file mode 100644
index 8263083..0000000
--- a/tests/framework-tests/src/android/util/EventLogFunctionalTest.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.util;
-
-import android.os.Process;
-
-import com.google.android.collect.Lists;
-
-import junit.framework.TestCase;
-import junit.framework.Assert;
-
-import java.util.ArrayList;
-
-/**
- * Functional tests of EventLog.
- */
-
-public class EventLogFunctionalTest extends TestCase {
- private static final String TAG = "EventLogFunctionalTest";
-
- private static final int TAG_SIZE = 4;
- private static final int TYPE_FIELD_SIZE = 1;
- private static final int STARTING_POS_OF_PAYLOAD = TAG_SIZE + TYPE_FIELD_SIZE;
-
- private static final int TEST_TAG = 42;
- private static final int TEST_TAG2 = 314;
-
- //todo: For now all we do is test the returned length. More to come.
- public void testLogOfPosInt() throws Exception {
- final int numBytes = EventLog.writeEvent(TEST_TAG, 0x01020304);
- Assert.assertEquals(STARTING_POS_OF_PAYLOAD + 4, numBytes);
- }
-
- //todo: For now all we do is test the returned length. More to come.
- public void testLogOfPosLong() throws Exception {
- final int numBytes = EventLog.writeEvent(TEST_TAG2, 0x0102030405060708L);
- Assert.assertEquals(STARTING_POS_OF_PAYLOAD + 8, numBytes);
- }
-
- //todo: For now all we do is test the returned length. More to come.
- public void testLogOfString() throws Exception {
- final String valueStr = "foo bar baz";
- final int numBytes = EventLog.writeEvent(TEST_TAG, valueStr);
- Assert.assertEquals(STARTING_POS_OF_PAYLOAD + 4 + valueStr.length() + 1, numBytes);
- }
-
- public void testLogOfListWithOneInt() throws Exception {
- final EventLog.List list = new EventLog.List(1234);
- final int numBytes = EventLog.writeEvent(TEST_TAG, list);
- Assert.assertEquals(STARTING_POS_OF_PAYLOAD + 1 + 1 + 4 + 1, numBytes);
- }
-
- public void testLogOfListWithMultipleInts() throws Exception {
- final EventLog.List list = new EventLog.List(1234, 2345, 3456);
- final int numBytes = EventLog.writeEvent(TEST_TAG, list);
- Assert.assertEquals(STARTING_POS_OF_PAYLOAD + 1 + 1 + 4 + 1 + 4 + 1 + 4 + 1, numBytes);
- }
-
- public void testLogOfListWithEmbeddedList() throws Exception {
- final EventLog.List list = new EventLog.List(
- new EventLog.List(1234, 2345, 3456));
- final int numBytes = EventLog.writeEvent(TEST_TAG, list);
- Assert.assertEquals(STARTING_POS_OF_PAYLOAD + 2 + 1 + 1 + 4 + 1 + 4 + 1 + 4 + 1, numBytes);
- }
-
- public void testEventLargerThanInitialBufferCapacity() throws Exception {
- final Integer[] array = new Integer[127];
- for (int i = 0; i < array.length; i++) {
- array[i] = i;
- }
- final EventLog.List list = new EventLog.List((Object[]) array);
- final int numBytes = EventLog.writeEvent(TEST_TAG, list);
- Assert.assertEquals(STARTING_POS_OF_PAYLOAD + 1 + (5 * array.length) + 1, numBytes);
- }
-
- // This test is obsolete. See http://b/issue?id=1262082
- public void disableTestReadSimpleEvent() throws Exception {
- long when = System.currentTimeMillis();
- EventLog.writeEvent(2718, 12345);
- Log.i(TAG, "Wrote simple event at T=" + when);
-
- ArrayList<EventLog.Event> list = new ArrayList<EventLog.Event>();
- EventLog.readEvents(new int[] { 2718 }, list);
-
- boolean found = false;
- for (EventLog.Event event : list) {
- assertEquals(event.getTag(), 2718);
- long eventTime = event.getTimeNanos() / 1000000;
- Log.i(TAG, " Found event T=" + eventTime);
- if (eventTime > when - 100 && eventTime < when + 1000) {
- assertEquals(event.getProcessId(), Process.myPid());
- assertEquals(event.getThreadId(), Process.myTid());
- assertEquals(event.getData(), 12345);
-
- assertFalse(found);
- found = true;
- }
- }
-
- assertTrue(found);
- }
-
- // This test is obsolete. See http://b/issue?id=1262082
- public void disableTestReadCompoundEntry() throws Exception {
- long when = System.currentTimeMillis();
- EventLog.writeEvent(2719,
- new EventLog.List(1l, new EventLog.List("2", "three", "4"), 5));
- Log.i(TAG, "Wrote compound event at T=" + when);
-
- ArrayList<EventLog.Event> list = new ArrayList<EventLog.Event>();
- EventLog.readEvents(new int[] { 2719 }, list);
-
- boolean found = false;
- for (EventLog.Event event : list) {
- long eventTime = event.getTimeNanos() / 1000000;
- Log.i(TAG, " Found event T=" + eventTime);
- if (eventTime > when - 100 && eventTime < when + 1000) {
- EventLog.List data = (EventLog.List) event.getData();
- assertEquals(data.getNumItems(), 3);
-
- EventLog.List nested = (EventLog.List) data.getItem(1);
- assertEquals(nested.getNumItems(), 3);
-
- assertEquals(data.getItem(0), 1l);
- assertEquals(nested.getItem(0), "2");
- assertEquals(nested.getItem(1), "three");
- assertEquals(nested.getItem(2), "4");
- assertEquals(data.getItem(2), 5);
-
- assertFalse(found);
- found = true;
- }
- }
-
- assertTrue(found);
- }
-
- public void testEventLogTagsFile() throws Exception {
- EventLogTags tags = new EventLogTags();
- assertEquals(tags.get("answer").mTag, 42);
- assertEquals(tags.get("pi").mTag, 314);
- assertEquals(tags.get("e").mTag, 2718);
- assertEquals(tags.get(42).mName, "answer");
- assertEquals(tags.get(314).mName, "pi");
- assertEquals(tags.get(2718).mName, "e");
- }
-}
diff --git a/tests/framework-tests/src/android/util/EventLogTest.java b/tests/framework-tests/src/android/util/EventLogTest.java
deleted file mode 100644
index 4a5d888..0000000
--- a/tests/framework-tests/src/android/util/EventLogTest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.util;
-
-import com.google.android.collect.Lists;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-
-/**
- * tests for {@link EventLog}
- */
-
-public class EventLogTest extends TestCase {
- private static final int TEST_TAG = 42;
-
- public void testIllegalListTypesThrowException() throws Exception {
- try {
- EventLog.writeEvent(TEST_TAG, new EventLog.List(new Object()));
- fail("Can't create List with any old Object");
- } catch (IllegalArgumentException e) {
- // expected
- }
- try {
- EventLog.writeEvent(TEST_TAG, new EventLog.List((byte) 1));
- fail("Can't create List with any old byte");
- } catch (IllegalArgumentException e) {
- // expected
- }
- }
-
- void assertIntInByteArrayEquals(int expected, byte[] buf, int pos) {
- ByteBuffer computedBuf = ByteBuffer.wrap(buf).order(ByteOrder.nativeOrder());
- int computed = computedBuf.getInt(pos);
- Assert.assertEquals(expected, computed);
- }
-
- void assertLongInByteArrayEquals(long expected, byte[] buf, int pos) {
- ByteBuffer computedBuf = ByteBuffer.wrap(buf).order(ByteOrder.nativeOrder());
- long computed = computedBuf.getLong(pos);
- Assert.assertEquals(expected, computed);
- }
-
- void assertStringInByteArrayEquals(String expected, byte[] buf, int pos) {
- byte[] expectedBytes = expected.getBytes();
- Assert.assertTrue(expectedBytes.length <= buf.length - pos);
- for (byte expectedByte : expectedBytes) {
- Assert.assertEquals(expectedByte, buf[pos++]);
- }
- }
-}
diff --git a/tests/framework-tests/src/com/android/internal/http/multipart/MultipartTest.java b/tests/framework-tests/src/com/android/internal/http/multipart/MultipartTest.java
deleted file mode 100644
index 8b48ed0..0000000
--- a/tests/framework-tests/src/com/android/internal/http/multipart/MultipartTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package com.android.internal.http.multipart;
-
-import junit.framework.TestCase;
-import org.apache.http.Header;
-import org.apache.http.util.EncodingUtils;
-
-import java.io.BufferedWriter;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileWriter;
-
-public class MultipartTest extends TestCase {
-
- public void testParts() throws Exception {
- StringBuffer filebuffer = new StringBuffer();
- String filepartStr = "this is file part";
- filebuffer.append(filepartStr);
- File upload = File.createTempFile("Multipart", "test");
-
- FileWriter outFile = new FileWriter(upload);
- BufferedWriter out = new BufferedWriter(outFile);
- try {
- out.write(filebuffer.toString());
- out.flush();
- } finally {
- out.close();
- }
-
- Part[] parts = new Part[3];
- parts[0] = new StringPart("stringpart", "PART1!!");
- parts[1] = new FilePart(upload.getName(), upload);
- parts[2] = new StringPart("stringpart", "PART2!!");
-
- MultipartEntity me = new MultipartEntity(parts);
- ByteArrayOutputStream os = new ByteArrayOutputStream();
- me.writeTo(os);
- Header h = me.getContentType();
- String boundry = EncodingUtils.getAsciiString(me.getMultipartBoundary());
- StringBuffer contentType = new StringBuffer("multipart/form-data");
- contentType.append("; boundary=");
- contentType.append(boundry);
- assertEquals("Multipart content type error", contentType.toString(), h.getValue());
- final String CRLF = "\r\n";
- StringBuffer output = new StringBuffer();
-
- output.append("--");
- output.append(boundry);
- output.append(CRLF);
-
- output.append("Content-Disposition: form-data; name=\"stringpart\"");
- output.append(CRLF);
- output.append("Content-Type: text/plain; charset=US-ASCII");
- output.append(CRLF);
- output.append("Content-Transfer-Encoding: 8bit");
- output.append(CRLF);
- output.append(CRLF);
- output.append("PART1!!");
- output.append(CRLF);
-
- output.append("--");
- output.append(boundry);
- output.append(CRLF);
-
- output.append("Content-Disposition: form-data; name=\"");
- output.append(upload.getName());
- output.append("\"; filename=\"");
- output.append(upload.getName());
- output.append("\"");
-
- output.append(CRLF);
- output.append("Content-Type: application/octet-stream; charset=ISO-8859-1");
- output.append(CRLF);
- output.append("Content-Transfer-Encoding: binary");
- output.append(CRLF);
- output.append(CRLF);
- output.append(filepartStr);
- output.append(CRLF);
-
- output.append("--");
- output.append(boundry);
- output.append(CRLF);
-
- output.append("Content-Disposition: form-data; name=\"stringpart\"");
- output.append(CRLF);
- output.append("Content-Type: text/plain; charset=US-ASCII");
- output.append(CRLF);
- output.append("Content-Transfer-Encoding: 8bit");
- output.append(CRLF);
- output.append(CRLF);
- output.append("PART2!!");
- output.append(CRLF);
-
- output.append("--");
- output.append(boundry);
- output.append("--");
- output.append(CRLF);
- // System.out.print(output.toString());
- assertEquals("Multipart content error", output.toString(), os.toString());
-
- // System.out.print(os.toString());
- }
-}
diff --git a/tests/framework-tests/src/com/android/internal/os/LoggingPrintStreamTest.java b/tests/framework-tests/src/com/android/internal/os/LoggingPrintStreamTest.java
deleted file mode 100644
index 8e3a034..0000000
--- a/tests/framework-tests/src/com/android/internal/os/LoggingPrintStreamTest.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.os;
-
-import junit.framework.TestCase;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.io.StringWriter;
-import java.io.PrintWriter;
-
-public class LoggingPrintStreamTest extends TestCase {
-
- TestPrintStream out = new TestPrintStream();
-
- public void testPrintException() {
- @SuppressWarnings("ThrowableInstanceNeverThrown")
- Throwable t = new Throwable("Ignore me.");
-
- StringWriter sout = new StringWriter();
- t.printStackTrace(new PrintWriter(sout));
-
- t.printStackTrace(out);
- // t.printStackTrace();
-
- String[] lines = sout.toString().split("\\n");
- assertEquals(Arrays.asList(lines), out.lines);
- }
-
- public void testPrintObject() {
- Object o = new Object();
- out.print(4);
- out.print(o);
- out.print(2);
- out.flush();
- assertEquals(Arrays.asList("4" + o + "2"), out.lines);
- }
-
- public void testPrintlnObject() {
- Object o = new Object();
- out.print(4);
- out.println(o);
- out.print(2);
- out.flush();
- assertEquals(Arrays.asList("4" + o, "2"), out.lines);
- }
-
- public void testPrintf() {
- out.printf("Name: %s\nEmployer: %s", "Bob", "Google");
- assertEquals(Arrays.asList("Name: Bob"), out.lines);
- out.flush();
- assertEquals(Arrays.asList("Name: Bob", "Employer: Google"), out.lines);
- }
-
- public void testPrintInt() {
- out.print(4);
- out.print(2);
- assertTrue(out.lines.isEmpty());
- out.flush();
- assertEquals(Collections.singletonList("42"), out.lines);
- }
-
- public void testPrintlnInt() {
- out.println(4);
- out.println(2);
- assertEquals(Arrays.asList("4", "2"), out.lines);
- }
-
- public void testPrintCharArray() {
- out.print("Foo\nBar\nTee".toCharArray());
- assertEquals(Arrays.asList("Foo", "Bar"), out.lines);
- out.flush();
- assertEquals(Arrays.asList("Foo", "Bar", "Tee"), out.lines);
- }
-
- public void testPrintString() {
- out.print("Foo\nBar\nTee");
- assertEquals(Arrays.asList("Foo", "Bar"), out.lines);
- out.flush();
- assertEquals(Arrays.asList("Foo", "Bar", "Tee"), out.lines);
- }
-
- public void testPrintlnCharArray() {
- out.println("Foo\nBar\nTee".toCharArray());
- assertEquals(Arrays.asList("Foo", "Bar", "Tee"), out.lines);
- }
-
- public void testPrintlnString() {
- out.println("Foo\nBar\nTee");
- assertEquals(Arrays.asList("Foo", "Bar", "Tee"), out.lines);
- }
-
- public void testPrintlnStringWithBufferedData() {
- out.print(5);
- out.println("Foo\nBar\nTee");
- assertEquals(Arrays.asList("5Foo", "Bar", "Tee"), out.lines);
- }
-
- public void testAppend() {
- out.append("Foo\n")
- .append('4')
- .append('\n')
- .append("Bar", 1, 2)
- .append('\n');
- assertEquals(Arrays.asList("Foo", "4", "a"), out.lines);
- }
-
- static class TestPrintStream extends LoggingPrintStream {
-
- final List<String> lines = new ArrayList<String>();
-
- protected void log(String line) {
- lines.add(line);
- }
- }
-
-}
diff --git a/tests/framework-tests/src/com/android/internal/policy/impl/LockPatternKeyguardViewTest.java b/tests/framework-tests/src/com/android/internal/policy/impl/LockPatternKeyguardViewTest.java
deleted file mode 100644
index 0368651..0000000
--- a/tests/framework-tests/src/com/android/internal/policy/impl/LockPatternKeyguardViewTest.java
+++ /dev/null
@@ -1,372 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.policy.impl;
-
-import android.content.Context;
-
-import com.android.internal.telephony.SimCard;
-import android.test.AndroidTestCase;
-import android.view.View;
-import android.view.KeyEvent;
-import com.android.internal.widget.LockPatternUtils;
-import com.google.android.collect.Lists;
-
-import java.util.List;
-
-/**
- * Tests for {@link com.android.internal.policy.impl.LockPatternKeyguardView},
- * which handles the management of screens while the keyguard is showing.
- */
-public class LockPatternKeyguardViewTest extends AndroidTestCase {
- private MockUpdateMonitor mUpdateMonitor;
- private LockPatternUtils mLockPatternUtils;
- private TestableLockPatternKeyguardView mLPKV;
- private MockKeyguardCallback mKeyguardViewCallback;
-
- private static class MockUpdateMonitor extends KeyguardUpdateMonitor {
-
- public SimCard.State simState = SimCard.State.READY;
- public boolean inPortrait = false;
- public boolean keyboardOpen = false;
-
- private MockUpdateMonitor(Context context) {
- super(context);
- }
-
- @Override
- public SimCard.State getSimState() {
- return simState;
- }
-
- @Override
- public boolean isInPortrait() {
- return inPortrait;
- }
-
- @Override
- public boolean isKeyboardOpen() {
- return keyboardOpen;
- }
-
- @Override
- boolean queryInPortrait() {
- return inPortrait;
- }
-
- @Override
- boolean queryKeyboardOpen() {
- return keyboardOpen;
- }
- }
-
- private static class MockLockPatternUtils extends LockPatternUtils {
- boolean isLockPatternEnabled = true;
- public boolean isPermanentlyLocked = false;
-
- public MockLockPatternUtils() {
- super(null);
- }
-
- @Override
- public boolean isLockPatternEnabled() {
- return isLockPatternEnabled;
- }
-
- @Override
- public void setLockPatternEnabled(boolean lockPatternEnabled) {
- isLockPatternEnabled = lockPatternEnabled;
- }
-
- @Override
- public boolean isPermanentlyLocked() {
- return isPermanentlyLocked;
- }
-
- public void setPermanentlyLocked(boolean permanentlyLocked) {
- isPermanentlyLocked = permanentlyLocked;
- }
- }
-
- private static class MockKeyguardScreen extends View implements KeyguardScreen {
-
- private int mOnPauseCount = 0;
- private int mOnResumeCount = 0;
- private int mCleanupCount = 0;
-
- private MockKeyguardScreen(Context context) {
- super(context);
- setFocusable(true);
- }
-
- /** {@inheritDoc} */
- public boolean needsInput() {
- return false;
- }
-
- /** {@inheritDoc} */
- public void onPause() {
- mOnPauseCount++;
- }
-
- /** {@inheritDoc} */
- public void onResume() {
- mOnResumeCount++;
- }
-
- /** {@inheritDoc} */
- public void cleanUp() {
- mCleanupCount++;
- }
-
- public int getOnPauseCount() {
- return mOnPauseCount;
- }
-
- public int getOnResumeCount() {
- return mOnResumeCount;
- }
-
- public int getCleanupCount() {
- return mCleanupCount;
- }
- }
-
- /**
- * Allows us to inject the lock and unlock views to simulate their behavior
- * and detect their creation.
- */
- private static class TestableLockPatternKeyguardView extends LockPatternKeyguardView {
- private List<MockKeyguardScreen> mInjectedLockScreens;
- private List<MockKeyguardScreen> mInjectedUnlockScreens;
-
-
-
- private TestableLockPatternKeyguardView(Context context, KeyguardUpdateMonitor updateMonitor,
- LockPatternUtils lockPatternUtils, KeyguardWindowController controller) {
- super(context, updateMonitor, lockPatternUtils, controller);
- }
-
- @Override
- View createLockScreen() {
- final MockKeyguardScreen newView = new MockKeyguardScreen(getContext());
- if (mInjectedLockScreens == null) mInjectedLockScreens = Lists.newArrayList();
- mInjectedLockScreens.add(newView);
- return newView;
- }
-
- @Override
- View createUnlockScreenFor(UnlockMode unlockMode) {
- final MockKeyguardScreen newView = new MockKeyguardScreen(getContext());
- if (mInjectedUnlockScreens == null) mInjectedUnlockScreens = Lists.newArrayList();
- mInjectedUnlockScreens.add(newView);
- return newView;
- }
-
- public List<MockKeyguardScreen> getInjectedLockScreens() {
- return mInjectedLockScreens;
- }
-
- public List<MockKeyguardScreen> getInjectedUnlockScreens() {
- return mInjectedUnlockScreens;
- }
- }
-
- private static class MockKeyguardCallback implements KeyguardViewCallback {
-
- private int mPokeWakelockCount = 0;
- private int mKeyguardDoneCount = 0;
-
- public void pokeWakelock() {
- mPokeWakelockCount++;
- }
-
- public void pokeWakelock(int millis) {
- mPokeWakelockCount++;
- }
-
- public void keyguardDone(boolean authenticated) {
- mKeyguardDoneCount++;
- }
-
- public void keyguardDoneDrawing() {
-
- }
-
- public int getPokeWakelockCount() {
- return mPokeWakelockCount;
- }
-
- public int getKeyguardDoneCount() {
- return mKeyguardDoneCount;
- }
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mUpdateMonitor = new MockUpdateMonitor(getContext());
- mLockPatternUtils = new MockLockPatternUtils();
-
- mLPKV = new TestableLockPatternKeyguardView(getContext(), mUpdateMonitor,
- mLockPatternUtils, new KeyguardWindowController() {
- public void setNeedsInput(boolean needsInput) {
- }
- });
- mKeyguardViewCallback = new MockKeyguardCallback();
- mLPKV.setCallback(mKeyguardViewCallback);
- }
-
- public void testStateAfterCreatedWhileScreenOff() {
-
- assertEquals(1, mLPKV.getInjectedLockScreens().size());
- assertEquals(1, mLPKV.getInjectedUnlockScreens().size());
-
- MockKeyguardScreen lockScreen = mLPKV.getInjectedLockScreens().get(0);
- MockKeyguardScreen unlockScreen = mLPKV.getInjectedUnlockScreens().get(0);
-
- assertEquals(0, lockScreen.getOnPauseCount());
- assertEquals(0, lockScreen.getOnResumeCount());
- assertEquals(0, lockScreen.getCleanupCount());
-
- assertEquals(0, unlockScreen.getOnPauseCount());
- assertEquals(0, unlockScreen.getOnResumeCount());
- assertEquals(0, unlockScreen.getCleanupCount());
-
- assertEquals(0, mKeyguardViewCallback.getPokeWakelockCount());
- assertEquals(0, mKeyguardViewCallback.getKeyguardDoneCount());
- }
-
- public void testWokenByNonMenuKey() {
- mLPKV.wakeWhenReadyTq(0);
-
- // should have poked the wakelock to turn on the screen
- assertEquals(1, mKeyguardViewCallback.getPokeWakelockCount());
-
- // shouldn't be any additional views created
- assertEquals(1, mLPKV.getInjectedLockScreens().size());
- assertEquals(1, mLPKV.getInjectedUnlockScreens().size());
- MockKeyguardScreen lockScreen = mLPKV.getInjectedLockScreens().get(0);
- MockKeyguardScreen unlockScreen = mLPKV.getInjectedUnlockScreens().get(0);
-
- // lock screen should be only visible one
- assertEquals(View.VISIBLE, lockScreen.getVisibility());
- assertEquals(View.GONE, unlockScreen.getVisibility());
-
- // on resume not called until screen turns on
- assertEquals(0, lockScreen.getOnPauseCount());
- assertEquals(0, lockScreen.getOnResumeCount());
- assertEquals(0, lockScreen.getCleanupCount());
-
- assertEquals(0, unlockScreen.getOnPauseCount());
- assertEquals(0, unlockScreen.getOnResumeCount());
- assertEquals(0, unlockScreen.getCleanupCount());
-
- // simulate screen turning on
- mLPKV.onScreenTurnedOn();
-
- assertEquals(0, lockScreen.getOnPauseCount());
- assertEquals(1, lockScreen.getOnResumeCount());
- assertEquals(0, lockScreen.getCleanupCount());
-
- assertEquals(0, unlockScreen.getOnPauseCount());
- assertEquals(0, unlockScreen.getOnResumeCount());
- assertEquals(0, unlockScreen.getCleanupCount());
- }
-
- public void testWokenByMenuKeyWhenPatternSet() {
- assertEquals(true, mLockPatternUtils.isLockPatternEnabled());
-
- mLPKV.wakeWhenReadyTq(KeyEvent.KEYCODE_MENU);
-
- // should have poked the wakelock to turn on the screen
- assertEquals(1, mKeyguardViewCallback.getPokeWakelockCount());
-
- // shouldn't be any additional views created
- assertEquals(1, mLPKV.getInjectedLockScreens().size());
- assertEquals(1, mLPKV.getInjectedUnlockScreens().size());
- MockKeyguardScreen lockScreen = mLPKV.getInjectedLockScreens().get(0);
- MockKeyguardScreen unlockScreen = mLPKV.getInjectedUnlockScreens().get(0);
-
- // unlock screen should be only visible one
- assertEquals(View.GONE, lockScreen.getVisibility());
- assertEquals(View.VISIBLE, unlockScreen.getVisibility());
- }
-
- public void testScreenRequestsRecreation() {
- mLPKV.wakeWhenReadyTq(0);
- mLPKV.onScreenTurnedOn();
-
- assertEquals(1, mLPKV.getInjectedLockScreens().size());
- assertEquals(1, mLPKV.getInjectedUnlockScreens().size());
- MockKeyguardScreen lockScreen = mLPKV.getInjectedLockScreens().get(0);
-
- assertEquals(0, lockScreen.getOnPauseCount());
- assertEquals(1, lockScreen.getOnResumeCount());
-
- // simulate screen asking to be recreated
- mLPKV.mKeyguardScreenCallback.recreateMe();
-
- // should have been recreated
- assertEquals(2, mLPKV.getInjectedLockScreens().size());
- assertEquals(2, mLPKV.getInjectedUnlockScreens().size());
-
- // both old screens should have been cleaned up
- assertEquals(1, mLPKV.getInjectedLockScreens().get(0).getCleanupCount());
- assertEquals(1, mLPKV.getInjectedUnlockScreens().get(0).getCleanupCount());
-
- // old lock screen should have been paused
- assertEquals(1, mLPKV.getInjectedLockScreens().get(0).getOnPauseCount());
- assertEquals(0, mLPKV.getInjectedUnlockScreens().get(0).getOnPauseCount());
-
- // new lock screen should have been resumed
- assertEquals(1, mLPKV.getInjectedLockScreens().get(1).getOnResumeCount());
- assertEquals(0, mLPKV.getInjectedUnlockScreens().get(1).getOnResumeCount());
- }
-
- public void testMenuDoesntGoToUnlockScreenOnWakeWhenPukLocked() {
- // PUK locked
- mUpdateMonitor.simState = SimCard.State.PUK_REQUIRED;
-
- // wake by menu
- mLPKV.wakeWhenReadyTq(KeyEvent.KEYCODE_MENU);
-
- assertEquals(1, mLPKV.getInjectedLockScreens().size());
- assertEquals(1, mLPKV.getInjectedUnlockScreens().size());
- MockKeyguardScreen lockScreen = mLPKV.getInjectedLockScreens().get(0);
- MockKeyguardScreen unlockScreen = mLPKV.getInjectedUnlockScreens().get(0);
-
- // lock screen should be only visible one
- assertEquals(View.VISIBLE, lockScreen.getVisibility());
- assertEquals(View.GONE, unlockScreen.getVisibility());
- }
-
- public void testMenuGoesToLockScreenWhenDeviceNotSecure() {
- mLockPatternUtils.setLockPatternEnabled(false);
-
- // wake by menu
- mLPKV.wakeWhenReadyTq(KeyEvent.KEYCODE_MENU);
-
- assertEquals(1, mLPKV.getInjectedLockScreens().size());
- assertEquals(1, mLPKV.getInjectedUnlockScreens().size());
- MockKeyguardScreen lockScreen = mLPKV.getInjectedLockScreens().get(0);
- MockKeyguardScreen unlockScreen = mLPKV.getInjectedUnlockScreens().get(0);
-
- // lock screen should be only visible one
- assertEquals(View.VISIBLE, lockScreen.getVisibility());
- assertEquals(View.GONE, unlockScreen.getVisibility());
- }
-}
diff --git a/tests/gadgets/GadgetHostTest/Android.mk b/tests/gadgets/GadgetHostTest/Android.mk
deleted file mode 100644
index 5e04b81..0000000
--- a/tests/gadgets/GadgetHostTest/Android.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := user
-
-LOCAL_SRC_FILES := $(call all-subdir-java-files)
-
-LOCAL_PACKAGE_NAME := GadgetHostTest
-LOCAL_CERTIFICATE := platform
-
-include $(BUILD_PACKAGE)
diff --git a/tests/gadgets/GadgetHostTest/AndroidManifest.xml b/tests/gadgets/GadgetHostTest/AndroidManifest.xml
deleted file mode 100644
index 52e314f..0000000
--- a/tests/gadgets/GadgetHostTest/AndroidManifest.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.tests.gadgethost">
- <uses-permission android:name="android.permission.VIBRATE" />
-
- <application>
- <activity android:name="GadgetHostActivity" android:label="_GadgetHost">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.DEFAULT" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- <activity android:name="TestGadgetConfigure" android:label="Configure TestGadgetProvider">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.DEFAULT" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
-
- <!-- BEGIN_INCLUDE(GadgetProvider) -->
- <receiver android:name="TestGadgetProvider"
- android:label="@string/oh_hai"
- android:icon="@drawable/oh_hai_icon"
- >
- <intent-filter>
- <action android:name="android.gadget.action.GADGET_UPDATE" />
- </intent-filter>
- <meta-data android:name="android.gadget.provider"
- android:resource="@xml/gadget_info"
- />
- </receiver>
- <!-- END_INCLUDE(GadgetProvider) -->
-
- </application>
-</manifest>
diff --git a/tests/gadgets/GadgetHostTest/res/drawable/oh_hai_icon.png b/tests/gadgets/GadgetHostTest/res/drawable/oh_hai_icon.png
deleted file mode 100644
index 30ff267..0000000
--- a/tests/gadgets/GadgetHostTest/res/drawable/oh_hai_icon.png
+++ /dev/null
Binary files differ
diff --git a/tests/gadgets/GadgetHostTest/res/layout/gadget_host.xml b/tests/gadgets/GadgetHostTest/res/layout/gadget_host.xml
deleted file mode 100644
index 743f6c6..0000000
--- a/tests/gadgets/GadgetHostTest/res/layout/gadget_host.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2006 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent" >
-
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/gadget_view_title"
- />
-
- <ScrollView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- >
-
- <com.android.tests.gadgethost.GadgetContainerView
- android:id="@+id/gadget_container"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="vertical"
- />
-
- </ScrollView>
-
- <Button
- android:id="@+id/add_gadget"
- android:text="@string/add_gadget"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- />
-
-</LinearLayout>
-
diff --git a/tests/gadgets/GadgetHostTest/res/layout/test_gadget.xml b/tests/gadgets/GadgetHostTest/res/layout/test_gadget.xml
deleted file mode 100644
index 4d483c7..0000000
--- a/tests/gadgets/GadgetHostTest/res/layout/test_gadget.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2006 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<TextView xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/oh_hai_text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/oh_hai"
-/>
-
diff --git a/tests/gadgets/GadgetHostTest/res/layout/test_gadget_configure.xml b/tests/gadgets/GadgetHostTest/res/layout/test_gadget_configure.xml
deleted file mode 100644
index 0d9b983..0000000
--- a/tests/gadgets/GadgetHostTest/res/layout/test_gadget_configure.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2006 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical"
- >
-
- <TextView
- android:id="@+id/oh_hai_text"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/oh_hai"
- />
-
- <EditText
- android:id="@+id/edit_text"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- />
-
- <Button
- android:id="@+id/save_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/save"
- />
-
-
-</LinearLayout>
diff --git a/tests/gadgets/GadgetHostTest/res/values/strings.xml b/tests/gadgets/GadgetHostTest/res/values/strings.xml
deleted file mode 100644
index ad9916a..0000000
--- a/tests/gadgets/GadgetHostTest/res/values/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <string name="gadget_view_title">Gadget Test</string>
- <string name="add_gadget">Add Gadget</string>
- <string name="oh_hai">Oh hai.</string>
- <string name="delete_gadget">Delete</string>
- <string name="save">Save</string>
-</resources>
-
diff --git a/tests/gadgets/GadgetHostTest/res/xml/gadget_info.xml b/tests/gadgets/GadgetHostTest/res/xml/gadget_info.xml
deleted file mode 100644
index e0c4222..0000000
--- a/tests/gadgets/GadgetHostTest/res/xml/gadget_info.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<!-- BEGIN_INCLUDE(GadgetProviderInfo) -->
-<gadget-provider xmlns:android="http://schemas.android.com/apk/res/android"
- android:minWidth="40dp"
- android:minHeight="30dp"
- android:updatePeriodMillis="86400000"
- android:initialLayout="@layout/test_gadget"
- android:configure="com.android.tests.gadgethost.TestGadgetConfigure"
- >
-</gadget-provider>
-<!-- END_INCLUDE(GadgetProviderInfo) -->
diff --git a/tests/gadgets/GadgetHostTest/src/com/android/tests/gadgethost/GadgetContainerView.java b/tests/gadgets/GadgetHostTest/src/com/android/tests/gadgethost/GadgetContainerView.java
deleted file mode 100644
index 3814836..0000000
--- a/tests/gadgets/GadgetHostTest/src/com/android/tests/gadgethost/GadgetContainerView.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.tests.gadgethost;
-
-import android.content.Context;
-import android.util.AttributeSet;
-import android.widget.LinearLayout;
-
-public class GadgetContainerView extends LinearLayout
-{
- public GadgetContainerView(Context context) {
- super(context);
- }
-
- public GadgetContainerView(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-}
diff --git a/tests/gadgets/GadgetHostTest/src/com/android/tests/gadgethost/GadgetHostActivity.java b/tests/gadgets/GadgetHostTest/src/com/android/tests/gadgethost/GadgetHostActivity.java
deleted file mode 100644
index 0bd8926..0000000
--- a/tests/gadgets/GadgetHostTest/src/com/android/tests/gadgethost/GadgetHostActivity.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.tests.gadgethost;
-
-import android.app.Activity;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.gadget.GadgetHost;
-import android.gadget.GadgetHostView;
-import android.gadget.GadgetProviderInfo;
-import android.gadget.GadgetManager;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.ContextMenu;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.LinearLayout;
-
-public class GadgetHostActivity extends Activity
-{
- static final String TAG = "GadgetHostActivity";
-
- static final int DISCOVER_GADGET_REQUEST = 1;
- static final int CONFIGURE_GADGET_REQUEST = 2;
- static final int HOST_ID = 1234;
-
- static final String PENDING_GADGET_ID = "pending_gadget";
-
- GadgetManager mGadgetManager;
- GadgetContainerView mGadgetContainer;
-
- public GadgetHostActivity() {
- mGadgetManager = GadgetManager.getInstance(this);
- }
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.gadget_host);
-
- findViewById(R.id.add_gadget).setOnClickListener(mOnClickListener);
- mGadgetContainer = (GadgetContainerView)findViewById(R.id.gadget_container);
-
- if (false) {
- if (false) {
- mHost.deleteHost();
- } else {
- GadgetHost.deleteAllHosts();
- }
- }
- }
-
- View.OnClickListener mOnClickListener = new View.OnClickListener() {
- public void onClick(View v) {
- discoverGadget(DISCOVER_GADGET_REQUEST);
- }
- };
-
- void discoverGadget(int requestCode) {
- Intent intent = new Intent(GadgetManager.ACTION_GADGET_PICK);
- intent.putExtra(GadgetManager.EXTRA_GADGET_ID, mHost.allocateGadgetId());
- startActivityForResult(intent, requestCode);
- }
-
- void configureGadget(int requestCode, int gadgetId, ComponentName configure) {
- Intent intent = new Intent(GadgetManager.ACTION_GADGET_CONFIGURE);
- intent.setComponent(configure);
- intent.putExtra(GadgetManager.EXTRA_GADGET_ID, gadgetId);
- SharedPreferences.Editor prefs = getPreferences(0).edit();
- prefs.putInt(PENDING_GADGET_ID, gadgetId);
- prefs.commit();
- startActivityForResult(intent, requestCode);
- }
-
- void handleGadgetPickResult(int resultCode, Intent intent) {
- // BEGIN_INCLUDE(getExtra_EXTRA_GADGET_ID)
- Bundle extras = intent.getExtras();
- int gadgetId = extras.getInt(GadgetManager.EXTRA_GADGET_ID);
- // END_INCLUDE(getExtra_EXTRA_GADGET_ID)
- if (resultCode == RESULT_OK) {
- GadgetProviderInfo gadget = mGadgetManager.getGadgetInfo(gadgetId);
-
- if (gadget.configure != null) {
- // configure the gadget if we should
- configureGadget(CONFIGURE_GADGET_REQUEST, gadgetId, gadget.configure);
- } else {
- // just add it as is
- addGadgetView(gadgetId, gadget);
- }
- } else {
- mHost.deleteGadgetId(gadgetId);
- }
- }
-
- void handleGadgetConfigureResult(int resultCode, Intent data) {
- int gadgetId = getPreferences(0).getInt(PENDING_GADGET_ID, -1);
- Log.d(TAG, "resultCode=" + resultCode + " gadgetId=" + gadgetId);
- if (gadgetId < 0) {
- Log.w(TAG, "was no preference for PENDING_GADGET_ID");
- return;
- }
- if (resultCode == RESULT_OK) {
- GadgetProviderInfo gadget = mGadgetManager.getGadgetInfo(gadgetId);
- addGadgetView(gadgetId, gadget);
- } else {
- mHost.deleteGadgetId(gadgetId);
- }
- }
-
- void addGadgetView(int gadgetId, GadgetProviderInfo gadget) {
- // Inflate the gadget's RemoteViews
- GadgetHostView view = mHost.createView(this, gadgetId, gadget);
-
- // Add it to the list
- LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
- LinearLayout.LayoutParams.FILL_PARENT,
- LinearLayout.LayoutParams.WRAP_CONTENT);
- mGadgetContainer.addView(view, layoutParams);
-
- registerForContextMenu(view);
- }
-
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- switch (requestCode) {
- case DISCOVER_GADGET_REQUEST:
- handleGadgetPickResult(resultCode, data);
- break;
- case CONFIGURE_GADGET_REQUEST:
- handleGadgetConfigureResult(resultCode, data);
- }
- }
-
- protected void onStart() {
- super.onStart();
- mHost.startListening();
- }
-
- protected void onStop() {
- super.onStop();
- mHost.stopListening();
- }
-
- public void onCreateContextMenu(ContextMenu menu, View v,
- ContextMenu.ContextMenuInfo menuInfo) {
- menu.add(ContextMenu.NONE, R.string.delete_gadget, ContextMenu.NONE,
- R.string.delete_gadget);
- }
-
- public boolean onContextItemSelected(MenuItem item) {
- MyGadgetView view = (MyGadgetView)item.getMenuInfo();
- switch (item.getItemId()) {
- case R.string.delete_gadget:
- Log.d(TAG, "delete! " + view.gadgetId);
- mGadgetContainer.removeView(view);
- mHost.deleteGadgetId(view.gadgetId);
- break;
- }
-
- return true;
- }
-
- class MyGadgetView extends GadgetHostView implements ContextMenu.ContextMenuInfo {
- int gadgetId;
-
- MyGadgetView(int gadgetId) {
- super(GadgetHostActivity.this);
- this.gadgetId = gadgetId;
- }
-
- public ContextMenu.ContextMenuInfo getContextMenuInfo() {
- return this;
- }
- }
-
- GadgetHost mHost = new GadgetHost(this, HOST_ID) {
- protected GadgetHostView onCreateView(Context context, int gadgetId, GadgetProviderInfo gadget) {
- return new MyGadgetView(gadgetId);
- }
- };
-}
-
-
diff --git a/tests/gadgets/GadgetHostTest/src/com/android/tests/gadgethost/TestGadgetConfigure.java b/tests/gadgets/GadgetHostTest/src/com/android/tests/gadgethost/TestGadgetConfigure.java
deleted file mode 100644
index 897c13c..0000000
--- a/tests/gadgets/GadgetHostTest/src/com/android/tests/gadgethost/TestGadgetConfigure.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.tests.gadgethost;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.View;
-import android.widget.EditText;
-
-public class TestGadgetConfigure extends Activity {
- static final String TAG = "TestGadgetConfigure";
-
- public TestGadgetConfigure() {
- super();
- }
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.test_gadget_configure);
-
- findViewById(R.id.save_button).setOnClickListener(mOnClickListener);
- }
-
- View.OnClickListener mOnClickListener = new View.OnClickListener() {
- public void onClick(View v) {
- String text = ((EditText)findViewById(R.id.edit_text)).getText().toString();
- Log.d(TAG, "text is '" + text + '\'');
- SharedPreferences.Editor prefs = getSharedPreferences(TestGadgetProvider.PREFS_NAME, 0)
- .edit();
- prefs.putString(TestGadgetProvider.PREF_PREFIX_KEY, text);
- prefs.commit();
- setResult(RESULT_OK);
- finish();
- }
- };
-
-}
-
-
diff --git a/tests/gadgets/GadgetHostTest/src/com/android/tests/gadgethost/TestGadgetProvider.java b/tests/gadgets/GadgetHostTest/src/com/android/tests/gadgethost/TestGadgetProvider.java
deleted file mode 100644
index 370a50b..0000000
--- a/tests/gadgets/GadgetHostTest/src/com/android/tests/gadgethost/TestGadgetProvider.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.tests.gadgethost;
-
-import android.content.BroadcastReceiver;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.gadget.GadgetManager;
-import android.os.Bundle;
-import android.os.SystemClock;
-import android.util.Log;
-import android.widget.RemoteViews;
-
-public class TestGadgetProvider extends BroadcastReceiver {
- static final String TAG = "TestGadgetProvider";
-
- static final String PREFS_NAME = "com.android.tests.gadgethost.TestGadgetProvider";
- static final String PREF_PREFIX_KEY = "prefix";
-
- public void onReceive(Context context, Intent intent) {
- String action = intent.getAction();
- Log.d(TAG, "intent=" + intent);
-
- if (GadgetManager.ACTION_GADGET_ENABLED.equals(action)) {
- Log.d(TAG, "ENABLED");
- }
- else if (GadgetManager.ACTION_GADGET_DISABLED.equals(action)) {
- Log.d(TAG, "DISABLED");
- }
- else if (GadgetManager.ACTION_GADGET_UPDATE.equals(action)) {
- Log.d(TAG, "UPDATE");
- // BEGIN_INCLUDE(getExtra_EXTRA_GADGET_IDS)
- Bundle extras = intent.getExtras();
- int[] gadgetIds = extras.getIntArray(GadgetManager.EXTRA_GADGET_IDS);
- // END_INCLUDE(getExtra_EXTRA_GADGET_IDS)
-
- SharedPreferences prefs = context.getSharedPreferences(
- TestGadgetProvider.PREFS_NAME, 0);
- String prefix = prefs.getString(PREF_PREFIX_KEY, "hai");
-
- GadgetManager gm = GadgetManager.getInstance(context);
- RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.test_gadget);
- views.setTextViewText(R.id.oh_hai_text, prefix + ": " + SystemClock.elapsedRealtime());
- if (false) {
- gm.updateGadget(gadgetIds, views);
- } else {
- gm.updateGadget(new ComponentName("com.android.tests.gadgethost",
- "com.android.tests.gadgethost.TestGadgetProvider"), views);
- }
- }
- }
-}
-
diff --git a/tests/gadgets/GadgetProviderTest/Android.mk b/tests/gadgets/GadgetProviderTest/Android.mk
deleted file mode 100644
index b9bfcdb..0000000
--- a/tests/gadgets/GadgetProviderTest/Android.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := user
-
-LOCAL_SRC_FILES := $(call all-subdir-java-files)
-
-LOCAL_PACKAGE_NAME := GadgetProvider
-LOCAL_CERTIFICATE := platform
-
-include $(BUILD_PACKAGE)
diff --git a/tests/gadgets/GadgetProviderTest/AndroidManifest.xml b/tests/gadgets/GadgetProviderTest/AndroidManifest.xml
deleted file mode 100644
index 47a7a2e..0000000
--- a/tests/gadgets/GadgetProviderTest/AndroidManifest.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.tests.gadgetprovider">
- <uses-permission android:name="android.permission.VIBRATE" />
-
- <application>
- <receiver android:name="TestGadgetProvider">
- <intent-filter>
- <action android:name="android.gadget.action.GADGET_UPDATE" />
- </intent-filter>
- <meta-data android:name="android.gadget.provider" android:resource="@xml/gadget_info" />
- </receiver>
- </application>
-</manifest>
diff --git a/tests/gadgets/GadgetProviderTest/res/layout/test_gadget.xml b/tests/gadgets/GadgetProviderTest/res/layout/test_gadget.xml
deleted file mode 100644
index 4d483c7..0000000
--- a/tests/gadgets/GadgetProviderTest/res/layout/test_gadget.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2006 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<TextView xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/oh_hai_text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/oh_hai"
-/>
-
diff --git a/tests/gadgets/GadgetProviderTest/res/values/strings.xml b/tests/gadgets/GadgetProviderTest/res/values/strings.xml
deleted file mode 100644
index e07725f..0000000
--- a/tests/gadgets/GadgetProviderTest/res/values/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<resources>
- <string name="gadget_view_title">Gadget Test</string>
- <string name="add_gadget">Add Gadget</string>
- <string name="oh_hai">Oh hai.</string>
- <string name="delete_gadget">Delete</string>
-</resources>
-
diff --git a/tests/gadgets/GadgetProviderTest/res/xml/gadget_info.xml b/tests/gadgets/GadgetProviderTest/res/xml/gadget_info.xml
deleted file mode 100644
index 0fc7812..0000000
--- a/tests/gadgets/GadgetProviderTest/res/xml/gadget_info.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<gadget-provider xmlns:android="http://schemas.android.com/apk/res/android"
- android:minWidth="40dp"
- android:minHeight="30dp"
- android:updatePeriodMillis="60000"
- android:initialLayout="@layout/test_gadget"
- >
-</gadget-provider>
diff --git a/tests/gadgets/GadgetProviderTest/src/com/android/tests/gadgetprovider/TestGadgetProvider.java b/tests/gadgets/GadgetProviderTest/src/com/android/tests/gadgetprovider/TestGadgetProvider.java
deleted file mode 100644
index b81575f..0000000
--- a/tests/gadgets/GadgetProviderTest/src/com/android/tests/gadgetprovider/TestGadgetProvider.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.tests.gadgetprovider;
-
-import android.content.BroadcastReceiver;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.gadget.GadgetManager;
-import android.os.Bundle;
-import android.os.SystemClock;
-import android.util.Log;
-import android.widget.RemoteViews;
-
-public class TestGadgetProvider extends BroadcastReceiver {
-
- static final String TAG = "TestGadgetProvider";
-
- public void onReceive(Context context, Intent intent) {
- String action = intent.getAction();
- Log.d(TAG, "intent=" + intent);
-
- if (GadgetManager.ACTION_GADGET_ENABLED.equals(action)) {
- Log.d(TAG, "ENABLED");
- }
- else if (GadgetManager.ACTION_GADGET_DISABLED.equals(action)) {
- Log.d(TAG, "DISABLED");
- }
- else if (GadgetManager.ACTION_GADGET_UPDATE.equals(action)) {
- Log.d(TAG, "UPDATE");
- Bundle extras = intent.getExtras();
- int[] gadgetIds = extras.getIntArray(GadgetManager.EXTRA_GADGET_IDS);
-
- GadgetManager gm = GadgetManager.getInstance(context);
- RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.test_gadget);
- views.setTextViewText(R.id.oh_hai_text, "hai: " + SystemClock.elapsedRealtime());
- if (false) {
- gm.updateGadget(gadgetIds, views);
- } else {
- gm.updateGadget(new ComponentName("com.android.tests.gadgetprovider",
- "com.android.tests.gadgetprovider.TestGadgetProvider"), views);
- }
- }
- }
-}
-