Add Case and Tester of Javascript
[0xbench:0xbench.git] / src / org / zeroxlab / benchmark / TesterJavascript.java
1 /*
2  * Copyright (C) 2011 0xlab - http://0xlab.org/
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  * Authored by Julian Chu <walkingice@0xlab.org>
17  */
18
19 package org.zeroxlab.benchmark;
20
21 import android.app.Activity;
22 import android.os.Bundle;
23 import android.os.Message;
24 import android.content.Intent;
25 import android.webkit.WebView;
26 import android.webkit.WebSettings;
27
28 public class TesterJavascript extends Tester {
29
30     protected WebView mWebView;
31     protected WebSettings mSettings;
32
33     private double mTotalTime = 0.0;
34     private String mResult = "";
35
36     @Override
37     public void onCreate(Bundle savedInstanceState) {
38         super.onCreate(savedInstanceState);
39         setContentView(R.layout.javascript);
40         mWebView = (WebView) findViewById(R.id.web);
41
42         mSettings = mWebView.getSettings();
43         mSettings.setJavaScriptEnabled(true);
44         mWebView.addJavascriptInterface(new MsgCallback(), "ANDROID_OBJ");
45
46         startTester();
47     }
48
49     @Override
50     public void onResume() {
51         super.onResume();
52     }
53
54     @Override
55     protected String getTag() {
56         return "JavaScript";
57     }
58
59     @Override
60     protected int sleepBeforeStart() {
61         return 1000;
62     }
63
64     @Override
65     protected int sleepBetweenRound() {
66         return 1000;
67     }
68
69     @Override
70     protected void oneRound() {
71         mWebView.loadUrl("file:///android_asset/driver.html");
72     }
73
74     @Override
75     protected boolean saveResult(Intent intent) {
76         intent.putExtra(CaseJavascript.SUNSPIDER_RESULT, mResult);
77         intent.putExtra(CaseJavascript.SUNSPIDER_TOTAL, mTotalTime);
78         return true;
79     }
80
81     class MsgCallback {
82         public void finish(String result) {
83             mResult = result;
84             decreaseCounter();
85         }
86     }
87 }