102d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert/*
202d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert * Copyright (C) 2009 The Android Open Source Project
302d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert *
402d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert * Licensed under the Apache License, Version 2.0 (the "License");
502d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert * you may not use this file except in compliance with the License.
602d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert * You may obtain a copy of the License at
702d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert *
802d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert *      http://www.apache.org/licenses/LICENSE-2.0
902d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert *
1002d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert * Unless required by applicable law or agreed to in writing, software
1102d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert * distributed under the License is distributed on an "AS IS" BASIS,
1202d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1302d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert * See the License for the specific language governing permissions and
1402d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert * limitations under the License.
1502d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert */
1602d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert
1702d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringertpackage com.android.quicksearchbox.benchmarks;
1802d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert
1902d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringertimport android.content.ComponentName;
2002d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringertimport android.content.Intent;
2102d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringertimport android.content.pm.PackageManager;
2202d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert
2302d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert/*
2402d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert
2502d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn BringertTo build and run:
2602d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert
2702d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringertmmm packages/apps/QuickSearchBox/benchmarks \
2802d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert&& adb install -r $OUT/data/app/QuickSearchBoxBenchmarks.apk \
2902d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert&& sleep 10 \
3002d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert&& adb shell am start -a android.intent.action.MAIN \
3102d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert        -n com.android.quicksearchbox.benchmarks/.WebLatency \
3202d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert&& adb logcat
3302d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert
3402d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert*/
3502d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert
3602d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringertpublic class WebLatency extends SourceLatency {
3702d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert
3802d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert    private static final String[] queries = {
3902d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert        "", "a", "s", "e", "r", "pub", "taxi", "kilt hire", "pizza",
4002d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert             "weather london uk", "terminator showtimes", "obama news",
4102d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert             "12 USD in GBP", "how to pass a drug test", "goog stock",
4202d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert             "76 Bucking",
4302d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert             "sanxjkashasrxae"
4402d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert    };
4502d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert
4602d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert    @Override
4702d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert    protected void onResume() {
4802d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert        super.onResume();
4902d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert        testWebSuggestions();
5002d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert        finish();
5102d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert    }
5202d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert
5302d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert    private ComponentName getWebSearchComponent() {
5402d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert        Intent webSearchIntent = new Intent(Intent.ACTION_WEB_SEARCH);
5502d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert        PackageManager pm = getPackageManager();
5602d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert        return webSearchIntent.resolveActivity(pm);
5702d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert    }
5802d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert
5902d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert    private void testWebSuggestions() {
6002d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert        ComponentName webComponent = getWebSearchComponent();
6102d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert        checkSource("WEB", webComponent, queries);
6202d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert    }
6302d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert
6402d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert}
65