Skip to content

Commit

Permalink
IDE-150 Refactoring UI Espresso Tests and TestUtils (Catrobat#4748)
Browse files Browse the repository at this point in the history
  • Loading branch information
Toml499 authored Aug 8, 2023
1 parent 9d67f2f commit 9800b95
Show file tree
Hide file tree
Showing 135 changed files with 486 additions and 1,059 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,12 @@ import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import org.catrobat.catroid.R
import org.catrobat.catroid.UiTestCatroidApplication
import org.catrobat.catroid.content.Project
import org.catrobat.catroid.content.Sprite
import org.catrobat.catroid.content.StartScript
import org.catrobat.catroid.test.utils.TestUtils
import org.catrobat.catroid.ui.SpriteActivity
import org.catrobat.catroid.ui.recyclerview.fragment.CatblocksScriptFragment
import org.catrobat.catroid.ui.settingsfragments.SettingsFragment
import org.catrobat.catroid.uiespresso.util.UiTestUtils
import org.catrobat.catroid.uiespresso.util.rules.FragmentActivityTestRule
import org.junit.After
import org.junit.Assert
Expand All @@ -60,7 +60,7 @@ class AddBrickCatblocksTest {
fun setUp() {
CatblocksScriptFragment.testingMode = true
SettingsFragment.setUseCatBlocks(ApplicationProvider.getApplicationContext(), true)
createProject()
UiTestUtils.createProjectWithOutDefaultScript(TestUtils.DEFAULT_TEST_PROJECT_NAME)
baseActivityTestRule.launchActivity()
}

Expand Down Expand Up @@ -100,13 +100,4 @@ class AddBrickCatblocksTest {
Assert.fail("Added script is not a StartScript: " + addedScript.javaClass.simpleName)
}
}

private fun createProject() {
val projectName = javaClass.simpleName
val project = Project(ApplicationProvider.getApplicationContext(), projectName)
val sprite = Sprite("testSprite")
project.defaultScene.addSprite(sprite)
UiTestCatroidApplication.projectManager.currentProject = project
UiTestCatroidApplication.projectManager.currentSprite = sprite
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public final class TestUtils {

public static final String DEFAULT_TEST_PROJECT_NAME = "testProject";
public static final String DEFAULT_TEST_SPRITE_NAME = "testSprite";

public static final int DEFAULT_TEST_SCRIPT_INDEX = 0;
public static final double DELTA = 0.00001;

private TestUtils() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
import org.catrobat.catroid.rules.FlakyTestRule;
import org.catrobat.catroid.runner.Flaky;
import org.catrobat.catroid.ui.SpriteActivity;
import org.catrobat.catroid.uiespresso.content.brick.utils.BrickTestUtils;
import org.catrobat.catroid.uiespresso.util.UiTestUtils;
import org.catrobat.catroid.uiespresso.util.rules.FragmentActivityTestRule;
import org.junit.Before;
import org.junit.BeforeClass;
Expand Down Expand Up @@ -61,7 +61,7 @@ public static void setUpBeforeClass() throws Exception {

@Before
public void setUp() throws Exception {
BrickTestUtils.createProjectAndGetStartScript("flakyTestTest");
UiTestUtils.createProjectAndGetStartScript("flakyTestTest");
baseActivityTestRule.launchActivity();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,15 @@

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

import org.catrobat.catroid.ProjectManager;
import org.catrobat.catroid.R;
import org.catrobat.catroid.content.Project;
import org.catrobat.catroid.content.Script;
import org.catrobat.catroid.content.Sprite;
import org.catrobat.catroid.content.StartScript;
import org.catrobat.catroid.content.bricks.SetXBrick;
import org.catrobat.catroid.formulaeditor.UserList;
import org.catrobat.catroid.test.utils.TestUtils;
import org.catrobat.catroid.ui.SpriteActivity;
import org.catrobat.catroid.uiespresso.util.UiTestUtils;
import org.catrobat.catroid.uiespresso.util.rules.FragmentActivityTestRule;
import org.junit.After;
import org.junit.Before;
Expand All @@ -44,8 +43,6 @@
import java.util.ArrayList;
import java.util.List;

import androidx.test.core.app.ApplicationProvider;

import static org.catrobat.catroid.uiespresso.content.brick.utils.BrickDataInteractionWrapper.onBrickAtPosition;
import static org.catrobat.catroid.uiespresso.formulaeditor.utils.FormulaEditorWrapper.Category.FUNCTIONS;
import static org.catrobat.catroid.uiespresso.formulaeditor.utils.FormulaEditorWrapper.onFormulaEditor;
Expand Down Expand Up @@ -123,7 +120,12 @@ public static Iterable<Object[]> data() {

@Before
public void setUp() throws Exception {
createProjectWithUserLists();
Project project = UiTestUtils.createDefaultTestProject("AddUserListToActiveFormulaUITest");
Script script = UiTestUtils.getDefaultTestScript(project);
Sprite sprite = UiTestUtils.getDefaultTestSprite(project);
projectUserList.forEach(project::addUserList);
spriteUserList.forEach(sprite::addUserList);
script.addBrick(new SetXBrick());
baseActivityTestRule.launchActivity();
}

Expand All @@ -150,22 +152,4 @@ private String generateExpectedOutput(String expectedUserListName) {
return getResourcesString(formulaName) + "( *" + expectedUserListName + "* , 1 ) ";
}
}

private void createProjectWithUserLists() {
Project project = new Project(ApplicationProvider.getApplicationContext(), AddUserListToActiveFormulaUITest
.class.getSimpleName());
Sprite sprite = new Sprite("testSprite");
Script script = new StartScript();

sprite.addScript(script);
project.getDefaultScene().addSprite(sprite);
ProjectManager.getInstance().setCurrentProject(project);
ProjectManager.getInstance().setCurrentSprite(sprite);
ProjectManager.getInstance().setCurrentlyEditedScene(project.getDefaultScene());

projectUserList.forEach(project::addUserList);
spriteUserList.forEach(sprite::addUserList);

script.addBrick(new SetXBrick());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@
import java.util.Arrays;
import java.util.List;

import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;

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

private void createTestProjectWithBricks(String projectName) {
Project project = new Project(ApplicationProvider.getApplicationContext(), projectName);
Sprite firstSprite = new Sprite("spriteScene1");
Project project = UiTestUtils.createDefaultTestProject(projectName);
Sprite firstSprite = UiTestUtils.getDefaultTestSprite(project);
secondSprite = new Sprite("spriteScene2");

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

Scene firstScene = new Scene("Scene1", project);
secondScene = new Scene("Scene2", project);

firstScene.addSprite(firstSprite);
secondScene.addSprite(secondSprite);

project.addScene(firstScene);
project.addScene(secondScene);
ProjectManager.getInstance().setCurrentProject(project);
ProjectManager.getInstance().setCurrentSprite(firstSprite);
ProjectManager.getInstance().setCurrentlyEditedScene(firstScene);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
import org.catrobat.catroid.content.Script;
import org.catrobat.catroid.content.bricks.ChangeVariableBrick;
import org.catrobat.catroid.ui.SpriteActivity;
import org.catrobat.catroid.uiespresso.content.brick.utils.BrickTestUtils;
import org.catrobat.catroid.uiespresso.util.UiTestUtils;
import org.catrobat.catroid.uiespresso.util.rules.FragmentActivityTestRule;
import org.junit.Before;
import org.junit.Rule;
Expand Down Expand Up @@ -61,7 +61,11 @@ public class ChangeVariableTest {

@Before
public void setUp() throws Exception {
createProject();
Script script = UiTestUtils
.createProjectAndGetStartScript("ChangeVariableTest");
changeVariableBrick = new ChangeVariableBrick(10);
script.addBrick(changeVariableBrick);
script.getBrickList().size();
baseActivityTestRule.launchActivity();
}

Expand Down Expand Up @@ -134,12 +138,4 @@ private void performNewVariableFromFormulaEditor(int brickId, String variableNam
.performClose();
pressBack();
}

public void createProject() {
Script script = BrickTestUtils
.createProjectAndGetStartScript("ChangeVariableTest");
changeVariableBrick = new ChangeVariableBrick(10);
script.addBrick(changeVariableBrick);
script.getBrickList().size();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@
import org.catrobat.catroid.testsuites.annotations.Cat;
import org.catrobat.catroid.testsuites.annotations.Level;
import org.catrobat.catroid.ui.SpriteActivity;
import org.catrobat.catroid.uiespresso.content.brick.utils.BrickTestUtils;
import org.catrobat.catroid.uiespresso.formulaeditor.utils.FormulaEditorDataListWrapper;
import org.catrobat.catroid.uiespresso.util.UiTestUtils;
import org.catrobat.catroid.uiespresso.util.rules.FragmentActivityTestRule;
import org.junit.Before;
import org.junit.Rule;
Expand Down Expand Up @@ -74,7 +74,7 @@ public class DeleteItemOfUserListBrickTest {
public void setUp() throws Exception {
brickPosition = 1;
deleteItemOfUserListBrick = new DeleteItemOfUserListBrick();
BrickTestUtils.createProjectAndGetStartScript("deleteItemOfUserListBrickTest1")
UiTestUtils.createProjectAndGetStartScript("deleteItemOfUserListBrickTest1")
.addBrick(deleteItemOfUserListBrick);
baseActivityTestRule.launchActivity();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@

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

import androidx.test.core.app.ApplicationProvider.getApplicationContext
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.Espresso.pressBack
import androidx.test.espresso.NoMatchingViewException
Expand All @@ -34,18 +33,17 @@ import androidx.test.espresso.matcher.ViewMatchers.isRoot
import androidx.test.espresso.matcher.ViewMatchers.withId
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.google.common.base.Stopwatch
import org.catrobat.catroid.ProjectManager
import org.catrobat.catroid.R
import org.catrobat.catroid.WaitForConditionAction.Companion.waitFor
import org.catrobat.catroid.content.Project
import org.catrobat.catroid.content.Script
import org.catrobat.catroid.content.Sprite
import org.catrobat.catroid.content.StartScript
import org.catrobat.catroid.content.bricks.DeleteLookBrick
import org.catrobat.catroid.content.bricks.PaintNewLookBrick
import org.catrobat.catroid.test.utils.TestUtils
import org.catrobat.catroid.testsuites.annotations.Cat.AppUi
import org.catrobat.catroid.testsuites.annotations.Level.Smoke
import org.catrobat.catroid.ui.SpriteActivity
import org.catrobat.catroid.uiespresso.util.UiTestUtils
import org.catrobat.catroid.uiespresso.util.actions.CustomActions.wait
import org.catrobat.catroid.uiespresso.util.rules.FragmentActivityTestRule
import org.junit.After
Expand All @@ -55,16 +53,14 @@ import org.junit.Rule
import org.junit.Test
import org.junit.experimental.categories.Category
import org.junit.runner.RunWith
import org.koin.java.KoinJavaComponent.inject
import java.util.concurrent.TimeUnit.MILLISECONDS

@Category(AppUi::class, Smoke::class)
@RunWith(AndroidJUnit4::class)
class DeleteLookBrickTest {
private lateinit var sprite: Sprite
private lateinit var script: StartScript
private lateinit var script: Script
private val projectName = "DeleteLookBrickTest"
private val projectManager by inject(ProjectManager::class.java)

@get:Rule
var baseActivityTestRule = FragmentActivityTestRule(
Expand All @@ -75,15 +71,11 @@ class DeleteLookBrickTest {

@Before
fun setUp() {
val project = Project(getApplicationContext(), projectName)
sprite = Sprite("testSprite")
script = StartScript()
val project = UiTestUtils.createDefaultTestProject(projectName)
script = UiTestUtils.getDefaultTestScript(project)
script.addBrick(PaintNewLookBrick())
sprite = UiTestUtils.getDefaultTestSprite(project)
sprite.addScript(script)
project.defaultScene.addSprite(sprite)
projectManager.currentProject = project
projectManager.currentSprite = sprite
projectManager.currentlyEditedScene = project.defaultScene
Intents.init()
baseActivityTestRule.launchActivity()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@

import org.catrobat.catroid.ProjectManager;
import org.catrobat.catroid.content.Project;
import org.catrobat.catroid.content.Scene;
import org.catrobat.catroid.content.Script;
import org.catrobat.catroid.content.Sprite;
import org.catrobat.catroid.content.StartScript;
Expand All @@ -38,6 +37,7 @@
import org.catrobat.catroid.test.utils.TestUtils;
import org.catrobat.catroid.ui.SpriteActivity;
import org.catrobat.catroid.ui.recyclerview.controller.SpriteController;
import org.catrobat.catroid.uiespresso.util.UiTestUtils;
import org.catrobat.catroid.uiespresso.util.rules.FragmentActivityTestRule;
import org.catrobat.catroid.userbrick.UserDefinedBrickInput;
import org.catrobat.catroid.userbrick.UserDefinedBrickLabel;
Expand All @@ -50,7 +50,6 @@
import java.io.IOException;
import java.util.Collections;

import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;

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

private void createProject(String projectName) throws IOException, CloneNotSupportedException {
Project project = new Project(ApplicationProvider.getApplicationContext(), projectName);
Project project = UiTestUtils.createDefaultTestProject(projectName);
ProjectManager projectManager = ProjectManager.getInstance();

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

Scene scene = project.getDefaultScene();
project.getDefaultScene().addSprite(sprite);

copiedSprite = controller.copy(sprite, project, scene);

projectManager.setCurrentProject(project);
copiedSprite = controller.copy(sprite, project, project.getDefaultScene());
projectManager.setCurrentSprite(sprite);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,25 +23,23 @@

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

import org.catrobat.catroid.content.EmptyScript;
import org.catrobat.catroid.content.Project;
import org.catrobat.catroid.content.Script;
import org.catrobat.catroid.content.Sprite;
import org.catrobat.catroid.content.bricks.Brick;
import org.catrobat.catroid.content.bricks.DeleteLookBrick;
import org.catrobat.catroid.content.bricks.ShowBrick;
import org.catrobat.catroid.io.XstreamSerializer;
import org.catrobat.catroid.testsuites.annotations.Cat;
import org.catrobat.catroid.testsuites.annotations.Level;
import org.catrobat.catroid.ui.ProjectListActivity;
import org.catrobat.catroid.uiespresso.util.UiTestUtils;
import org.catrobat.catroid.uiespresso.util.rules.BaseActivityTestRule;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;

import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;

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

@Before
public void setUp() throws Exception {
project = new Project(ApplicationProvider.getApplicationContext(),
PROJECT_NAME);
Sprite sprite = new Sprite(SPRITE_NAME);
Script script = new EmptyScript();
project = UiTestUtils.createDefaultTestProject(PROJECT_NAME);
Script script = UiTestUtils.getDefaultTestScript(project);
script.addBrick(new ShowBrick());
script.addBrick(new DeleteLookBrick());
sprite.addScript(script);
project.getDefaultScene().addSprite(sprite);
XstreamSerializer.getInstance().saveProject(project);

baseActivityTestRule.launchActivity(null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@
import org.catrobat.catroid.testsuites.annotations.Cat;
import org.catrobat.catroid.testsuites.annotations.Level;
import org.catrobat.catroid.ui.SpriteActivity;
import org.catrobat.catroid.uiespresso.content.brick.utils.BrickTestUtils;
import org.catrobat.catroid.uiespresso.formulaeditor.utils.FormulaEditorDataListWrapper;
import org.catrobat.catroid.uiespresso.util.UiTestUtils;
import org.catrobat.catroid.uiespresso.util.rules.FragmentActivityTestRule;
import org.junit.Before;
import org.junit.Rule;
Expand Down Expand Up @@ -71,7 +71,7 @@ public void setUp() throws Exception {
valueToInsert1 = 2018;
indexToInsert = 1;
userListName = "NewList";
BrickTestUtils.createProjectAndGetStartScript("addItemToUserListTest")
UiTestUtils.createProjectAndGetStartScript("addItemToUserListTest")
.addBrick(new InsertItemIntoUserListBrick(valueToInsert, indexToInsert));

baseActivityTestRule.launchActivity();
Expand Down
Loading

0 comments on commit 9800b95

Please sign in to comment.