Skip to content

Commit bc53a76

Browse files
committed
IDE-150 Refactoring UI Espresso Tests and TestUtils
1 parent 85848ae commit bc53a76

File tree

135 files changed

+486
-1059
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

135 files changed

+486
-1059
lines changed

catroid/src/androidTest/java/org/catrobat/catroid/test/utils/TestUtils.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public final class TestUtils {
5454

5555
public static final String DEFAULT_TEST_PROJECT_NAME = "testProject";
5656
public static final String DEFAULT_TEST_SPRITE_NAME = "testSprite";
57-
57+
public static final int DEFAULT_TEST_SCRIPT_INDEX = 0;
5858
public static final double DELTA = 0.00001;
5959

6060
private TestUtils() {

catroid/src/androidTest/java/org/catrobat/catroid/uiespresso/annotations/FlakyTestTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import org.catrobat.catroid.rules.FlakyTestRule;
2828
import org.catrobat.catroid.runner.Flaky;
2929
import org.catrobat.catroid.ui.SpriteActivity;
30-
import org.catrobat.catroid.uiespresso.content.brick.utils.BrickTestUtils;
30+
import org.catrobat.catroid.uiespresso.util.UiTestUtils;
3131
import org.catrobat.catroid.uiespresso.util.rules.FragmentActivityTestRule;
3232
import org.junit.Before;
3333
import org.junit.BeforeClass;
@@ -61,7 +61,7 @@ public static void setUpBeforeClass() throws Exception {
6161

6262
@Before
6363
public void setUp() throws Exception {
64-
BrickTestUtils.createProjectAndGetStartScript("flakyTestTest");
64+
UiTestUtils.createProjectAndGetStartScript("flakyTestTest");
6565
baseActivityTestRule.launchActivity();
6666
}
6767

catroid/src/androidTest/java/org/catrobat/catroid/uiespresso/content/brick/app/AddBrickCatblocksTest.kt

+3-12
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@ import androidx.test.uiautomator.UiSelector
3636
import androidx.test.uiautomator.Until
3737
import org.catrobat.catroid.R
3838
import org.catrobat.catroid.UiTestCatroidApplication.Companion.projectManager
39-
import org.catrobat.catroid.content.Project
40-
import org.catrobat.catroid.content.Sprite
4139
import org.catrobat.catroid.content.StartScript
40+
import org.catrobat.catroid.test.utils.TestUtils
4241
import org.catrobat.catroid.ui.SpriteActivity
4342
import org.catrobat.catroid.ui.recyclerview.fragment.CatblocksScriptFragment
4443
import org.catrobat.catroid.ui.settingsfragments.SettingsFragment
44+
import org.catrobat.catroid.uiespresso.util.UiTestUtils
4545
import org.catrobat.catroid.uiespresso.util.rules.FragmentActivityTestRule
4646
import org.junit.After
4747
import org.junit.Assert
@@ -66,7 +66,7 @@ class AddBrickCatblocksTest {
6666
@Before
6767
fun setUp() {
6868
SettingsFragment.setUseCatBlocks(ApplicationProvider.getApplicationContext(), true)
69-
createProject()
69+
UiTestUtils.createProjectWithOutDefaultScript(TestUtils.DEFAULT_TEST_PROJECT_NAME)
7070
baseActivityTestRule.launchActivity()
7171
}
7272

@@ -102,13 +102,4 @@ class AddBrickCatblocksTest {
102102
Assert.assertNotNull(addedScript)
103103
Assert.assertTrue(addedScript is StartScript)
104104
}
105-
106-
private fun createProject() {
107-
val projectName = javaClass.simpleName
108-
val project = Project(ApplicationProvider.getApplicationContext(), projectName)
109-
val sprite = Sprite("testSprite")
110-
project.defaultScene.addSprite(sprite)
111-
projectManager.currentProject = project
112-
projectManager.currentSprite = sprite
113-
}
114105
}

catroid/src/androidTest/java/org/catrobat/catroid/uiespresso/content/brick/app/AddUserListToActiveFormulaUITest.java

+7-23
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,15 @@
2323

2424
package org.catrobat.catroid.uiespresso.content.brick.app;
2525

26-
import org.catrobat.catroid.ProjectManager;
2726
import org.catrobat.catroid.R;
2827
import org.catrobat.catroid.content.Project;
2928
import org.catrobat.catroid.content.Script;
3029
import org.catrobat.catroid.content.Sprite;
31-
import org.catrobat.catroid.content.StartScript;
3230
import org.catrobat.catroid.content.bricks.SetXBrick;
3331
import org.catrobat.catroid.formulaeditor.UserList;
3432
import org.catrobat.catroid.test.utils.TestUtils;
3533
import org.catrobat.catroid.ui.SpriteActivity;
34+
import org.catrobat.catroid.uiespresso.util.UiTestUtils;
3635
import org.catrobat.catroid.uiespresso.util.rules.FragmentActivityTestRule;
3736
import org.junit.After;
3837
import org.junit.Before;
@@ -44,8 +43,6 @@
4443
import java.util.ArrayList;
4544
import java.util.List;
4645

47-
import androidx.test.core.app.ApplicationProvider;
48-
4946
import static org.catrobat.catroid.uiespresso.content.brick.utils.BrickDataInteractionWrapper.onBrickAtPosition;
5047
import static org.catrobat.catroid.uiespresso.formulaeditor.utils.FormulaEditorWrapper.Category.FUNCTIONS;
5148
import static org.catrobat.catroid.uiespresso.formulaeditor.utils.FormulaEditorWrapper.onFormulaEditor;
@@ -123,7 +120,12 @@ public static Iterable<Object[]> data() {
123120

124121
@Before
125122
public void setUp() throws Exception {
126-
createProjectWithUserLists();
123+
Project project = UiTestUtils.createDefaultTestProject("AddUserListToActiveFormulaUITest");
124+
Script script = UiTestUtils.getDefaultTestScript(project);
125+
Sprite sprite = UiTestUtils.getDefaultTestSprite(project);
126+
projectUserList.forEach(project::addUserList);
127+
spriteUserList.forEach(sprite::addUserList);
128+
script.addBrick(new SetXBrick());
127129
baseActivityTestRule.launchActivity();
128130
}
129131

@@ -150,22 +152,4 @@ private String generateExpectedOutput(String expectedUserListName) {
150152
return getResourcesString(formulaName) + "( *" + expectedUserListName + "* , 1 ) ";
151153
}
152154
}
153-
154-
private void createProjectWithUserLists() {
155-
Project project = new Project(ApplicationProvider.getApplicationContext(), AddUserListToActiveFormulaUITest
156-
.class.getSimpleName());
157-
Sprite sprite = new Sprite("testSprite");
158-
Script script = new StartScript();
159-
160-
sprite.addScript(script);
161-
project.getDefaultScene().addSprite(sprite);
162-
ProjectManager.getInstance().setCurrentProject(project);
163-
ProjectManager.getInstance().setCurrentSprite(sprite);
164-
ProjectManager.getInstance().setCurrentlyEditedScene(project.getDefaultScene());
165-
166-
projectUserList.forEach(project::addUserList);
167-
spriteUserList.forEach(sprite::addUserList);
168-
169-
script.addBrick(new SetXBrick());
170-
}
171155
}

catroid/src/androidTest/java/org/catrobat/catroid/uiespresso/content/brick/app/BroadcastBrickMessageUpdateTest.java

+2-8
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@
4949
import java.util.Arrays;
5050
import java.util.List;
5151

52-
import androidx.test.core.app.ApplicationProvider;
5352
import androidx.test.ext.junit.runners.AndroidJUnit4;
5453

5554
import static org.catrobat.catroid.uiespresso.content.brick.utils.BrickDataInteractionWrapper.onBrickAtPosition;
@@ -172,8 +171,8 @@ private void switchScene() {
172171
}
173172

174173
private void createTestProjectWithBricks(String projectName) {
175-
Project project = new Project(ApplicationProvider.getApplicationContext(), projectName);
176-
Sprite firstSprite = new Sprite("spriteScene1");
174+
Project project = UiTestUtils.createDefaultTestProject(projectName);
175+
Sprite firstSprite = UiTestUtils.getDefaultTestSprite(project);
177176
secondSprite = new Sprite("spriteScene2");
178177

179178
Script script = new BroadcastScript(defaultMessage);
@@ -194,14 +193,9 @@ private void createTestProjectWithBricks(String projectName) {
194193

195194
Scene firstScene = new Scene("Scene1", project);
196195
secondScene = new Scene("Scene2", project);
197-
198-
firstScene.addSprite(firstSprite);
199196
secondScene.addSprite(secondSprite);
200197

201198
project.addScene(firstScene);
202199
project.addScene(secondScene);
203-
ProjectManager.getInstance().setCurrentProject(project);
204-
ProjectManager.getInstance().setCurrentSprite(firstSprite);
205-
ProjectManager.getInstance().setCurrentlyEditedScene(firstScene);
206200
}
207201
}

catroid/src/androidTest/java/org/catrobat/catroid/uiespresso/content/brick/app/ChangeVariableTest.java

+6-10
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import org.catrobat.catroid.content.Script;
2828
import org.catrobat.catroid.content.bricks.ChangeVariableBrick;
2929
import org.catrobat.catroid.ui.SpriteActivity;
30-
import org.catrobat.catroid.uiespresso.content.brick.utils.BrickTestUtils;
30+
import org.catrobat.catroid.uiespresso.util.UiTestUtils;
3131
import org.catrobat.catroid.uiespresso.util.rules.FragmentActivityTestRule;
3232
import org.junit.Before;
3333
import org.junit.Rule;
@@ -61,7 +61,11 @@ public class ChangeVariableTest {
6161

6262
@Before
6363
public void setUp() throws Exception {
64-
createProject();
64+
Script script = UiTestUtils
65+
.createProjectAndGetStartScript("ChangeVariableTest");
66+
changeVariableBrick = new ChangeVariableBrick(10);
67+
script.addBrick(changeVariableBrick);
68+
script.getBrickList().size();
6569
baseActivityTestRule.launchActivity();
6670
}
6771

@@ -134,12 +138,4 @@ private void performNewVariableFromFormulaEditor(int brickId, String variableNam
134138
.performClose();
135139
pressBack();
136140
}
137-
138-
public void createProject() {
139-
Script script = BrickTestUtils
140-
.createProjectAndGetStartScript("ChangeVariableTest");
141-
changeVariableBrick = new ChangeVariableBrick(10);
142-
script.addBrick(changeVariableBrick);
143-
script.getBrickList().size();
144-
}
145141
}

catroid/src/androidTest/java/org/catrobat/catroid/uiespresso/content/brick/app/DeleteItemOfUserListBrickTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131
import org.catrobat.catroid.testsuites.annotations.Cat;
3232
import org.catrobat.catroid.testsuites.annotations.Level;
3333
import org.catrobat.catroid.ui.SpriteActivity;
34-
import org.catrobat.catroid.uiespresso.content.brick.utils.BrickTestUtils;
3534
import org.catrobat.catroid.uiespresso.formulaeditor.utils.FormulaEditorDataListWrapper;
35+
import org.catrobat.catroid.uiespresso.util.UiTestUtils;
3636
import org.catrobat.catroid.uiespresso.util.rules.FragmentActivityTestRule;
3737
import org.junit.Before;
3838
import org.junit.Rule;
@@ -74,7 +74,7 @@ public class DeleteItemOfUserListBrickTest {
7474
public void setUp() throws Exception {
7575
brickPosition = 1;
7676
deleteItemOfUserListBrick = new DeleteItemOfUserListBrick();
77-
BrickTestUtils.createProjectAndGetStartScript("deleteItemOfUserListBrickTest1")
77+
UiTestUtils.createProjectAndGetStartScript("deleteItemOfUserListBrickTest1")
7878
.addBrick(deleteItemOfUserListBrick);
7979
baseActivityTestRule.launchActivity();
8080
}

catroid/src/androidTest/java/org/catrobat/catroid/uiespresso/content/brick/app/DeleteLookBrickTest.kt

+6-14
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323

2424
package org.catrobat.catroid.uiespresso.content.brick.app
2525

26-
import androidx.test.core.app.ApplicationProvider.getApplicationContext
2726
import androidx.test.espresso.Espresso.onView
2827
import androidx.test.espresso.Espresso.pressBack
2928
import androidx.test.espresso.NoMatchingViewException
@@ -34,18 +33,17 @@ import androidx.test.espresso.matcher.ViewMatchers.isRoot
3433
import androidx.test.espresso.matcher.ViewMatchers.withId
3534
import androidx.test.ext.junit.runners.AndroidJUnit4
3635
import com.google.common.base.Stopwatch
37-
import org.catrobat.catroid.ProjectManager
3836
import org.catrobat.catroid.R
3937
import org.catrobat.catroid.WaitForConditionAction.Companion.waitFor
40-
import org.catrobat.catroid.content.Project
38+
import org.catrobat.catroid.content.Script
4139
import org.catrobat.catroid.content.Sprite
42-
import org.catrobat.catroid.content.StartScript
4340
import org.catrobat.catroid.content.bricks.DeleteLookBrick
4441
import org.catrobat.catroid.content.bricks.PaintNewLookBrick
4542
import org.catrobat.catroid.test.utils.TestUtils
4643
import org.catrobat.catroid.testsuites.annotations.Cat.AppUi
4744
import org.catrobat.catroid.testsuites.annotations.Level.Smoke
4845
import org.catrobat.catroid.ui.SpriteActivity
46+
import org.catrobat.catroid.uiespresso.util.UiTestUtils
4947
import org.catrobat.catroid.uiespresso.util.actions.CustomActions.wait
5048
import org.catrobat.catroid.uiespresso.util.rules.FragmentActivityTestRule
5149
import org.junit.After
@@ -55,16 +53,14 @@ import org.junit.Rule
5553
import org.junit.Test
5654
import org.junit.experimental.categories.Category
5755
import org.junit.runner.RunWith
58-
import org.koin.java.KoinJavaComponent.inject
5956
import java.util.concurrent.TimeUnit.MILLISECONDS
6057

6158
@Category(AppUi::class, Smoke::class)
6259
@RunWith(AndroidJUnit4::class)
6360
class DeleteLookBrickTest {
6461
private lateinit var sprite: Sprite
65-
private lateinit var script: StartScript
62+
private lateinit var script: Script
6663
private val projectName = "DeleteLookBrickTest"
67-
private val projectManager by inject(ProjectManager::class.java)
6864

6965
@get:Rule
7066
var baseActivityTestRule = FragmentActivityTestRule(
@@ -75,15 +71,11 @@ class DeleteLookBrickTest {
7571

7672
@Before
7773
fun setUp() {
78-
val project = Project(getApplicationContext(), projectName)
79-
sprite = Sprite("testSprite")
80-
script = StartScript()
74+
val project = UiTestUtils.createDefaultTestProject(projectName)
75+
script = UiTestUtils.getDefaultTestScript(project)
8176
script.addBrick(PaintNewLookBrick())
77+
sprite = UiTestUtils.getDefaultTestSprite(project)
8278
sprite.addScript(script)
83-
project.defaultScene.addSprite(sprite)
84-
projectManager.currentProject = project
85-
projectManager.currentSprite = sprite
86-
projectManager.currentlyEditedScene = project.defaultScene
8779
Intents.init()
8880
baseActivityTestRule.launchActivity()
8981
}

catroid/src/androidTest/java/org/catrobat/catroid/uiespresso/content/brick/app/DeleteUserDefinedReceiverBrickTest.java

+3-9
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525

2626
import org.catrobat.catroid.ProjectManager;
2727
import org.catrobat.catroid.content.Project;
28-
import org.catrobat.catroid.content.Scene;
2928
import org.catrobat.catroid.content.Script;
3029
import org.catrobat.catroid.content.Sprite;
3130
import org.catrobat.catroid.content.StartScript;
@@ -38,6 +37,7 @@
3837
import org.catrobat.catroid.test.utils.TestUtils;
3938
import org.catrobat.catroid.ui.SpriteActivity;
4039
import org.catrobat.catroid.ui.recyclerview.controller.SpriteController;
40+
import org.catrobat.catroid.uiespresso.util.UiTestUtils;
4141
import org.catrobat.catroid.uiespresso.util.rules.FragmentActivityTestRule;
4242
import org.catrobat.catroid.userbrick.UserDefinedBrickInput;
4343
import org.catrobat.catroid.userbrick.UserDefinedBrickLabel;
@@ -50,7 +50,6 @@
5050
import java.io.IOException;
5151
import java.util.Collections;
5252

53-
import androidx.test.core.app.ApplicationProvider;
5453
import androidx.test.ext.junit.runners.AndroidJUnit4;
5554

5655
import static org.catrobat.catroid.uiespresso.content.brick.utils.BrickDataInteractionWrapper.onBrickAtPosition;
@@ -113,7 +112,7 @@ public void testDifferentUserDefinedBrickNotDeleted() {
113112
}
114113

115114
private void createProject(String projectName) throws IOException, CloneNotSupportedException {
116-
Project project = new Project(ApplicationProvider.getApplicationContext(), projectName);
115+
Project project = UiTestUtils.createDefaultTestProject(projectName);
117116
ProjectManager projectManager = ProjectManager.getInstance();
118117

119118
SpriteController controller = new SpriteController();
@@ -129,12 +128,7 @@ private void createProject(String projectName) throws IOException, CloneNotSuppo
129128
createUserDefinedScripts();
130129
createStartScript();
131130

132-
Scene scene = project.getDefaultScene();
133-
project.getDefaultScene().addSprite(sprite);
134-
135-
copiedSprite = controller.copy(sprite, project, scene);
136-
137-
projectManager.setCurrentProject(project);
131+
copiedSprite = controller.copy(sprite, project, project.getDefaultScene());
138132
projectManager.setCurrentSprite(sprite);
139133
}
140134

catroid/src/androidTest/java/org/catrobat/catroid/uiespresso/content/brick/app/EmptyEventBrickTest.java

+3-9
Original file line numberDiff line numberDiff line change
@@ -23,25 +23,23 @@
2323

2424
package org.catrobat.catroid.uiespresso.content.brick.app;
2525

26-
import org.catrobat.catroid.content.EmptyScript;
2726
import org.catrobat.catroid.content.Project;
2827
import org.catrobat.catroid.content.Script;
29-
import org.catrobat.catroid.content.Sprite;
3028
import org.catrobat.catroid.content.bricks.Brick;
3129
import org.catrobat.catroid.content.bricks.DeleteLookBrick;
3230
import org.catrobat.catroid.content.bricks.ShowBrick;
3331
import org.catrobat.catroid.io.XstreamSerializer;
3432
import org.catrobat.catroid.testsuites.annotations.Cat;
3533
import org.catrobat.catroid.testsuites.annotations.Level;
3634
import org.catrobat.catroid.ui.ProjectListActivity;
35+
import org.catrobat.catroid.uiespresso.util.UiTestUtils;
3736
import org.catrobat.catroid.uiespresso.util.rules.BaseActivityTestRule;
3837
import org.junit.Before;
3938
import org.junit.Rule;
4039
import org.junit.Test;
4140
import org.junit.experimental.categories.Category;
4241
import org.junit.runner.RunWith;
4342

44-
import androidx.test.core.app.ApplicationProvider;
4543
import androidx.test.ext.junit.runners.AndroidJUnit4;
4644

4745
import static junit.framework.Assert.assertFalse;
@@ -66,14 +64,10 @@ public class EmptyEventBrickTest {
6664

6765
@Before
6866
public void setUp() throws Exception {
69-
project = new Project(ApplicationProvider.getApplicationContext(),
70-
PROJECT_NAME);
71-
Sprite sprite = new Sprite(SPRITE_NAME);
72-
Script script = new EmptyScript();
67+
project = UiTestUtils.createDefaultTestProject(PROJECT_NAME);
68+
Script script = UiTestUtils.getDefaultTestScript(project);
7369
script.addBrick(new ShowBrick());
7470
script.addBrick(new DeleteLookBrick());
75-
sprite.addScript(script);
76-
project.getDefaultScene().addSprite(sprite);
7771
XstreamSerializer.getInstance().saveProject(project);
7872

7973
baseActivityTestRule.launchActivity(null);

catroid/src/androidTest/java/org/catrobat/catroid/uiespresso/content/brick/app/InsertItemToUserListTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@
3030
import org.catrobat.catroid.testsuites.annotations.Cat;
3131
import org.catrobat.catroid.testsuites.annotations.Level;
3232
import org.catrobat.catroid.ui.SpriteActivity;
33-
import org.catrobat.catroid.uiespresso.content.brick.utils.BrickTestUtils;
3433
import org.catrobat.catroid.uiespresso.formulaeditor.utils.FormulaEditorDataListWrapper;
34+
import org.catrobat.catroid.uiespresso.util.UiTestUtils;
3535
import org.catrobat.catroid.uiespresso.util.rules.FragmentActivityTestRule;
3636
import org.junit.Before;
3737
import org.junit.Rule;
@@ -71,7 +71,7 @@ public void setUp() throws Exception {
7171
valueToInsert1 = 2018;
7272
indexToInsert = 1;
7373
userListName = "NewList";
74-
BrickTestUtils.createProjectAndGetStartScript("addItemToUserListTest")
74+
UiTestUtils.createProjectAndGetStartScript("addItemToUserListTest")
7575
.addBrick(new InsertItemIntoUserListBrick(valueToInsert, indexToInsert));
7676

7777
baseActivityTestRule.launchActivity();

0 commit comments

Comments
 (0)