/*
* Copyright 2012-2014 eBay Software Foundation and selendroid committers.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package io.selendroid.testapp;
import io.selendroid.testapp.server.HttpServer;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
public class WebViewActivity extends Activity {
private HttpServer server = null;
private WebView mainWebView = null;
private Spinner testDataSpinner = null;
private ArrayAdapter<SpinnerItem> arrayAdapter = null;
@Override
public void onCreate(Bundle savedInstanceState) {
server = HttpServer.getInstance();
setContentView(io.selendroid.testapp.R.layout.webview);
mainWebView = (WebView) findViewById(io.selendroid.testapp.R.id.mainWebView);
mainWebView.setWebViewClient(new TestAppWebViewClient());
testDataSpinner =
(Spinner) findViewById(io.selendroid.testapp.R.id.spinner_webdriver_test_data);
arrayAdapter =
new ArrayAdapter<SpinnerItem>(this, android.R.layout.simple_spinner_item,
new ArrayList<SpinnerItem>());
arrayAdapter.add(new SpinnerItem("'Say Hello'-Demo", "http://localhost:4450/"));
arrayAdapter.add(new SpinnerItem("xhtmlTestPage", "file:///android_asset/web/xhtmlTest.html"));
arrayAdapter.add(new SpinnerItem("formPage", "file:///android_asset/web/formPage.html"));
arrayAdapter.add(new SpinnerItem("selectableItemsPage",
"file:///android_asset/web/selectableItems.html"));
arrayAdapter
.add(new SpinnerItem("nestedPage", "file:///android_asset/web/nestedElements.html"));
arrayAdapter.add(new SpinnerItem("javascriptPage",
"file:///android_asset/web/javascriptPage.html"));
arrayAdapter.add(new SpinnerItem("missedJsReferencePage",
"file:///android_asset/web/missedJsReference.html"));
arrayAdapter.add(new SpinnerItem("actualXhtmlPage",
"file:///android_asset/web/actualXhtmlPage.xhtml"));
arrayAdapter
.add(new SpinnerItem("Click Source", "file:///android_asset/web/click_source.html"));
arrayAdapter.add(new SpinnerItem("Clicks", "file:///android_asset/web/clicks.html"));
arrayAdapter.add(new SpinnerItem("Long Content Page",
"file:///android_asset/web/longContentPage.html"));
arrayAdapter.add(new SpinnerItem("TestClickPage1",
"file:///android_asset/web/test_click_page1.html"));
arrayAdapter.add(new SpinnerItem("TestClickPage2",
"file:///android_asset/web/test_click_page2.html"));
arrayAdapter.add(new SpinnerItem("about:blank", "about:blank"));
arrayAdapter.add(new SpinnerItem("iframes", "file:///android_asset/web/iframes.html"));
testDataSpinner.setAdapter(arrayAdapter);
testDataSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
SpinnerItem item = (SpinnerItem) testDataSpinner.getSelectedItem();
mainWebView.loadUrl(item.url);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
SpinnerItem item = (SpinnerItem) testDataSpinner.getSelectedItem();
mainWebView.loadUrl(item.url);
}
});
super.onCreate(savedInstanceState);
}
private class TestAppWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
((TextView)findViewById(R.id.webviewLocation)).setText(url);
return super.shouldOverrideUrlLoading(view, url);
}
}
@Override
protected void onStart() {
mainWebView.loadUrl("about:blank");
super.onStart();
}
public void showHomeScreenDialog(View view) {
Intent nextScreen = new Intent(getApplicationContext(), HomeScreenActivity.class);
startActivity(nextScreen);
}
public class SpinnerItem {
private String text;
public String url;
SpinnerItem(String text, String url) {
this.text = text;
this.url = url;
}
@Override
public String toString() {
return text;
}
}
}