Skip to content

Commit 317b132

Browse files
Displaying test stats in the header upon completion of run
1 parent fbbb1e1 commit 317b132

File tree

3 files changed

+40
-7
lines changed

3 files changed

+40
-7
lines changed

res/layout/test_stats.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
3+
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
4+
android:layout_width="fill_parent"
5+
android:layout_height="fill_parent">
6+
<TextView android:id="@+id/stats"
7+
android:layout_height="wrap_content"
8+
android:layout_width="wrap_content"
9+
android:layout_centerHorizontal="true"
10+
android:layout_centerVertical="true"
11+
android:padding="5dip"
12+
android:gravity="center_horizontal|center_vertical"
13+
android:textSize="18sp" />
14+
</RelativeLayout>

src/main/java/net/zetetic/TestResultAdapter.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import android.content.Context;
44
import android.graphics.Color;
5-
import android.view.LayoutInflater;
65
import android.view.View;
76
import android.view.ViewGroup;
87
import android.widget.ArrayAdapter;
@@ -22,8 +21,7 @@ public View getView(int position, View view, ViewGroup parent) {
2221

2322
ViewHolder holder;
2423
if(view == null){
25-
LayoutInflater viewInflater = (LayoutInflater) ZeteticApplication.getInstance().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
26-
view = viewInflater.inflate(R.layout.test_result_row, null);
24+
view = View.inflate(ZeteticApplication.getInstance(), R.layout.test_result_row, null);
2725
holder = new ViewHolder();
2826
holder.testName = (TextView) view.findViewById(R.id.test_name);
2927
holder.testStatus = (TextView) view.findViewById(R.id.test_status);

src/main/java/net/zetetic/TestSuiteActivity.java

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
import android.os.Bundle;
55
import android.util.Log;
66
import android.view.View;
7-
import android.widget.ArrayAdapter;
8-
import android.widget.ListView;
7+
import android.widget.*;
98
import net.zetetic.tests.ResultNotifier;
109
import net.zetetic.tests.TestResult;
1110
import net.zetetic.tests.TestSuiteRunner;
@@ -18,6 +17,7 @@ public class TestSuiteActivity extends Activity implements ResultNotifier {
1817
private static String TAG = "net.zetetic.sqlcipher.test";
1918
ListView resultsView;
2019
List<TestResult> results;
20+
View statsView;
2121

2222
public TestSuiteActivity(){
2323
results = new ArrayList<TestResult>();
@@ -32,6 +32,8 @@ public void onCreate(Bundle savedInstanceState) {
3232

3333
public void onButtonClick(View view) {
3434

35+
results.clear();
36+
hideStats();
3537
findViewById(R.id.executeSuite).setEnabled(false);
3638
resultsView = (ListView) findViewById(R.id.test_suite_results);
3739
ZeteticApplication.getInstance().setCurrentActivity(this);
@@ -42,16 +44,35 @@ public void onButtonClick(View view) {
4244
public void send(TestResult result) {
4345

4446
results.add(result);
45-
ArrayAdapter<TestResult> adapter = (ArrayAdapter<TestResult>) resultsView.getAdapter();
47+
HeaderViewListAdapter adapter = (HeaderViewListAdapter) resultsView.getAdapter();
4648
if(adapter == null){
49+
statsView = View.inflate(this, R.layout.test_stats, null);
50+
resultsView.addHeaderView(statsView);
51+
hideStats();
4752
resultsView.setAdapter(new TestResultAdapter(ZeteticApplication.getInstance(), results));
4853
} else {
49-
adapter.notifyDataSetChanged();
54+
((ArrayAdapter<TestResult>)adapter.getWrappedAdapter()).notifyDataSetChanged();
5055
}
5156
}
5257

5358
@Override
5459
public void complete() {
60+
61+
TextView stats = (TextView) statsView.findViewById(R.id.stats);
62+
int successCount = 0;
63+
for(TestResult result : results){
64+
if(result.isSuccess()){
65+
successCount += 1;
66+
}
67+
}
68+
stats.setText(String.format("Passed: %d Failed: %d", successCount, results.size() - successCount));
69+
stats.setVisibility(View.VISIBLE);
5570
findViewById(R.id.executeSuite).setEnabled(true);
5671
}
72+
73+
private void hideStats(){
74+
if(statsView != null){
75+
statsView.findViewById(R.id.stats).setVisibility(View.GONE);
76+
}
77+
}
5778
}

0 commit comments

Comments
 (0)