diff --git a/app/src/androidTest/java/com/swt20/swt_morning2/HangmanTests.java b/app/src/androidTest/java/com/swt20/swt_morning2/HangmanTests.java index dd0a374..06703ed 100644 --- a/app/src/androidTest/java/com/swt20/swt_morning2/HangmanTests.java +++ b/app/src/androidTest/java/com/swt20/swt_morning2/HangmanTests.java @@ -73,13 +73,15 @@ public void playGame() { } assertThat(st.getScore(Game.HANGMAN), is(oldScore + 1)); return; - } catch (Exception e) { + } catch (AssertionError e) { // View not displayed } } assert (false); } + + @Test public void playGameTwice() { @@ -102,7 +104,7 @@ public void playGameTwice() { } else { return; } - } catch (Exception e) { + } catch (AssertionError e) { // View not displayed } } @@ -119,7 +121,7 @@ public void pressWrongLetterTwice() { // Go from Hangman Menu to Game onView(withId(R.id.hangmanStartGameButton)).perform(click()); - String letter = "y"; + String letter = "."; for (int i = 0; i < 2; i++) { onView(withId(R.id.plainText_nextChar)).perform(typeText(letter)); @@ -133,7 +135,7 @@ public void pressWrongLetterTwice() { matches(withDrawable(R.drawable.hangman_1))); return; // View displayed - } catch (Exception e) { + } catch (AssertionError e) { // View not displayed } } @@ -149,20 +151,15 @@ public void pressLetterMoreThanNineTimes() { // Go from Hangman Menu to Game onView(withId(R.id.hangmanStartGameButton)).perform(click()); - String letter = "a"; + String letter = "."; for (int i = 0; i < 12; i++) { onView(withId(R.id.plainText_nextChar)).perform(typeText(letter)); try { - try { - Thread.sleep(100); - } catch (InterruptedException e) { - // View not displayed - } onView(withId(R.id.button_playagain)).check(matches(isDisplayed())); return; // View displayed - } catch (Exception e) { + } catch (AssertionError e) { // View not displayed } } @@ -262,6 +259,7 @@ public void doubleAddCustomWord() { } + @Test public void scoreReduced() { Activity activity = activityRule.getActivity(); ScoreTracker st = new ScoreTracker(activity.getApplicationContext()); @@ -272,8 +270,8 @@ public void scoreReduced() { // Go from Hangman Menu to Game onView(withId(R.id.hangmanStartGameButton)).perform(click()); - String letter = "a"; - for (int i = 0; i <= 9; i++) { + String letter = "."; + for (int i = 0; i <= 12; i++) { onView(withId(R.id.plainText_nextChar)).perform(typeText(letter)); try { onView(withId(R.id.button_playagain)).check(matches(isDisplayed())); @@ -282,12 +280,12 @@ public void scoreReduced() { onView(isRoot()).perform(pressBack()); // View displayed break; - } catch (Exception e) { + } catch (AssertionError e) { // View not displayed } } try { - Thread.sleep(5000); + Thread.sleep(100); } catch (InterruptedException e) { // View not displayed } diff --git a/app/src/androidTest/java/com/swt20/swt_morning2/TicTacToeTests.java b/app/src/androidTest/java/com/swt20/swt_morning2/TicTacToeTests.java index 49a32d4..bcd830a 100644 --- a/app/src/androidTest/java/com/swt20/swt_morning2/TicTacToeTests.java +++ b/app/src/androidTest/java/com/swt20/swt_morning2/TicTacToeTests.java @@ -214,13 +214,26 @@ private boolean clickField(int rid, int colourid) { try { onView(withId(rid)).check(matches( EspressoTestsMatchers.withDrawable(R.drawable.empty))); - } catch (Error e) { + } catch (Throwable e) { // Not empty -- continue return false; } - onView(withId(rid)).perform(click()); - onView(withId(rid)).check(matches(EspressoTestsMatchers.withDrawable(colourid))); + try { + onView(withId(rid)).perform(click()); + try { + if (onView(withId(R.id.ttt_menu_button)) != null) { + onView(withId(R.id.ttt_menu_button)).check(matches(isDisplayed())); + } + return false; + } catch (Throwable e) { + //empty + } + onView(withId(rid)).check(matches(EspressoTestsMatchers.withDrawable(colourid))); + } catch (Throwable e) { + onView(withId(R.id.ttt_menu_button)).check(matches(isDisplayed())); + return false; + } return true; } @@ -250,4 +263,29 @@ public void autoplayerExists() { } } } + + @Test + public void playToDraw() { + onView(withId(R.id.ticTacToeButton)).perform(click()); + onView(withId(R.id.ttt_menu_button)).perform(click()); + onView(withId(R.id.imageView)).perform(click()); + onView(withId(R.id.imageView7)).perform(click()); + onView(withId(R.id.imageView8)).perform(click()); + onView(withId(R.id.imageView3)).perform(click()); + onView(withId(R.id.imageView2)).perform(click()); + onView(withId(R.id.imageView9)).perform(click()); + onView(withId(R.id.imageView6)).perform(click()); + onView(withId(R.id.imageView5)).perform(click()); + onView(withId(R.id.imageView4)).perform(click()); + try { + onView(withId(R.id.ttt_menu_button)).check(matches(isDisplayed())); + } catch (Exception e) { + assert (true); + return; + } + assert (false); + + } + + } diff --git a/app/src/main/java/com/swt20/swt_morning2/HangmanGameFragment.java b/app/src/main/java/com/swt20/swt_morning2/HangmanGameFragment.java index 71fd4c3..11d2606 100644 --- a/app/src/main/java/com/swt20/swt_morning2/HangmanGameFragment.java +++ b/app/src/main/java/com/swt20/swt_morning2/HangmanGameFragment.java @@ -89,9 +89,11 @@ public void onClick(View view) { for (int i = 0; i < word2guess.length(); i++) { word2guessViewtext += "_ "; } + textViewWord2Guess.setVisibility(View.VISIBLE); textViewWord2Guess.setText(word2guessViewtext); textView.setVisibility(View.VISIBLE); nextChar.setVisibility(View.VISIBLE); + view.findViewById(R.id.button_playagain).setVisibility(View.INVISIBLE); feedbackView.setImageResource(0); mainView.findViewById(R.id.button_hangman_hint).setVisibility(View.VISIBLE); @@ -221,7 +223,7 @@ private void gameFinished(int points, String text, View view) { textView.setVisibility(View.INVISIBLE); nextChar.setVisibility(View.INVISIBLE); view.findViewById(R.id.button_hangman_hint).setVisibility(View.INVISIBLE); - + textViewWord2Guess.setVisibility(View.INVISIBLE); } } diff --git a/app/src/main/java/com/swt20/swt_morning2/TicTacToeGameFragment.java b/app/src/main/java/com/swt20/swt_morning2/TicTacToeGameFragment.java index fdf23c4..cc3a6da 100644 --- a/app/src/main/java/com/swt20/swt_morning2/TicTacToeGameFragment.java +++ b/app/src/main/java/com/swt20/swt_morning2/TicTacToeGameFragment.java @@ -64,7 +64,7 @@ private void setupCell(final int x, final int y, final ImageView imageView, final TableLayout gameField) { imageView.setImageResource(R.drawable.empty); imageView.setOnClickListener(new View.OnClickListener() { - private void checkWin() { + private boolean checkWin() { TicTacToeGameLogic.Player winner = logic.getWinner(); if (winner != null) { String text; @@ -77,7 +77,9 @@ private void checkWin() { logic.changeScore(winner, tracker); Toast.makeText(getContext(), text, Toast.LENGTH_SHORT).show(); getActivity().onBackPressed(); + return true; } + return false; } @Override @@ -86,7 +88,9 @@ public void onClick(View view) { // outsource to fkt. imageView.setImageResource(logic.getCell(x, y).getOwner().getResId()); - checkWin(); + if (checkWin()) { + return; + } logic.autoplayerTurn(); for (int y = 0; y < gameField.getChildCount(); y++) { final TableRow currentRow = (TableRow) gameField.getChildAt(y); diff --git a/app/src/main/res/layout/hangman_game.xml b/app/src/main/res/layout/hangman_game.xml index c7319aa..3f386a5 100644 --- a/app/src/main/res/layout/hangman_game.xml +++ b/app/src/main/res/layout/hangman_game.xml @@ -25,12 +25,10 @@ android:layout_height="wrap_content" android:text="@string/hangman_playagain" android:visibility="invisible" - app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.498" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/textView_word2guess" - app:layout_constraintVertical_bias="0.482" /> + app:layout_constraintTop_toBottomOf="@+id/feedbackView" />