Skip to content

Commit 167b6ca

Browse files
committed
Merge pull request Catrobat#142 from Catrobat/issue#54
Issue#54
2 parents de1b070 + 8d7eb9b commit 167b6ca

File tree

6 files changed

+52
-17
lines changed

6 files changed

+52
-17
lines changed

catroid/src/org/catrobat/catroid/ui/fragment/ScriptFragment.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ public void updateAdapterAfterAddNewBrick(Brick brickToBeAdded) {
291291
} else {
292292
int firstVisibleBrick = listView.getFirstVisiblePosition();
293293
int lastVisibleBrick = listView.getLastVisiblePosition();
294-
int position = ((lastVisibleBrick - firstVisibleBrick) / 2);
294+
int position = ((1 + lastVisibleBrick - firstVisibleBrick) / 2);
295295
position += firstVisibleBrick;
296296
adapter.addNewBrick(position, brickToBeAdded);
297297
}

catroidUiTest/src/org/catrobat/catroid/uitest/content/BrickDragAndDropTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ public void testPutHoveringBrickDown() {
112112

113113
yPositionList = UiTestUtils.getListItemYPositions(solo);
114114
solo.clickOnScreen(20, yPositionList.get(0));
115-
solo.clickOnScreen(20, yPositionList.get(1));
115+
solo.clickOnScreen(20, yPositionList.get(2));
116116
solo.clickOnText(solo.getString(R.string.brick_context_dialog_move_brick));
117117

118118
Display display = solo.getCurrentActivity().getWindowManager().getDefaultDisplay();
@@ -121,7 +121,7 @@ public void testPutHoveringBrickDown() {
121121
int height = display.getHeight();
122122

123123
solo.sleep(200);
124-
solo.drag(20, 20, 200, height - 20, 100);
124+
solo.drag(20, 20, 300, height - 20, 100);
125125
solo.sleep(200);
126126

127127
assertTrue("Last Brick should now be BroadcastBrick", adapter.getItem(3) instanceof BroadcastBrick);

catroidUiTest/src/org/catrobat/catroid/uitest/content/ScriptDeleteTest.java

+2-4
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import java.util.ArrayList;
2626

2727
import org.catrobat.catroid.ProjectManager;
28+
import org.catrobat.catroid.R;
2829
import org.catrobat.catroid.content.Project;
2930
import org.catrobat.catroid.content.Script;
3031
import org.catrobat.catroid.content.Sprite;
@@ -37,7 +38,6 @@
3738
import org.catrobat.catroid.uitest.util.UiTestUtils;
3839

3940
import android.test.ActivityInstrumentationTestCase2;
40-
import org.catrobat.catroid.R;
4141

4242
import com.jayway.android.robotium.solo.Solo;
4343

@@ -77,9 +77,7 @@ public void testAddLooksCategoryBrick() {
7777
assertTrue("Set costume brick was not added", solo.searchText(brickSetCostumeText));
7878

7979
UiTestUtils.addNewBrick(solo, R.string.brick_set_size_to);
80-
solo.clickOnText(brickSetCostumeText);
81-
assertTrue("Set size to brick was not added",
82-
solo.searchText(solo.getString(R.string.brick_set_size_to)));
80+
assertTrue("Set size to brick was not added", solo.searchText(solo.getString(R.string.brick_set_size_to)));
8381
}
8482

8583
public void testDeleteScript() {

catroidUiTest/src/org/catrobat/catroid/uitest/content/brick/LoopBrickTest.java

+1-4
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,6 @@ public void testRepeatBrick() {
107107
yPosition = UiTestUtils.getListItemYPositions(solo);
108108
int addedYPosition = UiTestUtils.getAddedListItemYPosition(solo);
109109

110-
solo.drag(20, 20, addedYPosition, yPosition.get(2), 20);
111-
112110
Sprite sprite = ProjectManager.getInstance().getCurrentSprite();
113111
assertEquals("Incorrect number of Scripts.", 2, sprite.getNumberOfScripts());
114112

@@ -144,7 +142,6 @@ public void testRepeatBrick() {
144142

145143
assertTrue("Wrong Brick instance.", (projectBrickList.get(2) instanceof SetCostumeBrick));
146144
assertTrue("Wrong Brick instance.", (projectBrickList.get(3) instanceof LoopEndBrick));
147-
148145
}
149146

150147
public void testForeverBrick() {
@@ -168,7 +165,7 @@ public void testForeverBrick() {
168165
yPosition = UiTestUtils.getListItemYPositions(solo);
169166
addedYPosition = UiTestUtils.getAddedListItemYPosition(solo);
170167

171-
solo.drag(20, 20, addedYPosition, yPosition.get(3), 20);
168+
solo.drag(20, 20, addedYPosition, yPosition.get(2) + 20, 20);
172169
solo.sleep(200);
173170

174171
assertEquals("Incorrect number of bricks.", 7, projectBrickList.size());

catroidUiTest/src/org/catrobat/catroid/uitest/ui/ScriptFragmentTest.java

+43-3
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@
2727

2828
import org.catrobat.catroid.ProjectManager;
2929
import org.catrobat.catroid.R;
30+
import org.catrobat.catroid.content.BroadcastScript;
31+
import org.catrobat.catroid.content.Script;
32+
import org.catrobat.catroid.content.Sprite;
33+
import org.catrobat.catroid.content.StartScript;
3034
import org.catrobat.catroid.content.bricks.Brick;
3135
import org.catrobat.catroid.ui.MainMenuActivity;
3236
import org.catrobat.catroid.ui.ProjectActivity;
@@ -54,9 +58,6 @@ public ScriptFragmentTest() {
5458
@Override
5559
public void setUp() throws Exception {
5660
super.setUp();
57-
brickListToCheck = UiTestUtils.createTestProject();
58-
solo = new Solo(getInstrumentation(), getActivity());
59-
UiTestUtils.getIntoScriptTabActivityFromMainMenu(solo);
6061
}
6162

6263
@Override
@@ -75,7 +76,20 @@ public void tearDown() throws Exception {
7576
solo = null;
7677
}
7778

79+
private void initTestProject() {
80+
brickListToCheck = UiTestUtils.createTestProject();
81+
solo = new Solo(getInstrumentation(), getActivity());
82+
UiTestUtils.getIntoScriptTabActivityFromMainMenu(solo);
83+
}
84+
85+
private void initEmptyProject() {
86+
UiTestUtils.createEmptyProject();
87+
solo = new Solo(getInstrumentation(), getActivity());
88+
UiTestUtils.getIntoScriptTabActivityFromMainMenu(solo);
89+
}
90+
7891
public void testCreateNewBrickButton() {
92+
initTestProject();
7993
int brickCountInView = solo.getCurrentListViews().get(0).getCount();
8094
int brickCountInList = brickListToCheck.size();
8195

@@ -92,6 +106,7 @@ public void testCreateNewBrickButton() {
92106
}
93107

94108
public void testBrickCategoryDialog() {
109+
initTestProject();
95110
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
96111

97112
// enable mindstorm bricks, if disabled
@@ -146,7 +161,30 @@ public void testBrickCategoryDialog() {
146161
solo.waitForText(brickLegoStopMotor, 0, 2000));
147162
}
148163

164+
/**
165+
*
166+
* Tests issue#54. https://github.com/Catrobat/Catroid/issues/54
167+
*/
168+
public void testOnlyAddControlBricks() {
169+
initEmptyProject();
170+
Sprite sprite = ProjectManager.getInstance().getCurrentSprite();
171+
assertEquals("Project should contain only one script.", 1, sprite.getNumberOfScripts());
172+
173+
Script script = sprite.getScript(0);
174+
assertTrue("Single script isn't empty.", script.getBrickList().isEmpty());
175+
176+
List<Integer> yPositionList = UiTestUtils.getListItemYPositions(solo);
177+
UiTestUtils.addNewBrick(solo, R.string.brick_broadcast_receive);
178+
solo.clickOnScreen(20, yPositionList.get(1));
179+
solo.sleep(200);
180+
181+
assertEquals("Two control bricks should be added.", 2, sprite.getNumberOfScripts());
182+
assertTrue("First script isn't a start script.", sprite.getScript(0) instanceof StartScript);
183+
assertTrue("Second script isn't a broadcast script.", sprite.getScript(1) instanceof BroadcastScript);
184+
}
185+
149186
public void testSimpleDragNDrop() {
187+
initTestProject();
150188
ArrayList<Integer> yPositionList = UiTestUtils.getListItemYPositions(solo);
151189
assertTrue("Test project brick list smaller than expected", yPositionList.size() >= 6);
152190

@@ -163,6 +201,7 @@ public void testSimpleDragNDrop() {
163201
}
164202

165203
public void testDeleteItem() {
204+
initTestProject();
166205
ArrayList<Integer> yPositionList = UiTestUtils.getListItemYPositions(solo);
167206
assertTrue("Test project brick list smaller than expected", yPositionList.size() >= 6);
168207

@@ -197,6 +236,7 @@ public void testDeleteItem() {
197236
}
198237

199238
public void testBackgroundBricks() {
239+
initTestProject();
200240
String currentProject = solo.getString(R.string.main_menu_continue);
201241
String background = solo.getString(R.string.background);
202242
String categoryLooks = solo.getString(R.string.category_looks);

catroidUiTest/src/org/catrobat/catroid/uitest/util/UiTestUtils.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -642,10 +642,10 @@ public static ArrayList<Integer> getListItemYPositions(final Solo solo) {
642642
}
643643

644644
public static int getAddedListItemYPosition(Solo solo) {
645-
ArrayList<Integer> yPositionList = getListItemYPositions(solo);
646-
int pos = (yPositionList.size() - 1) / 2;
645+
ArrayList<Integer> yPositionsList = getListItemYPositions(solo);
646+
int middleYPositionIndex = yPositionsList.size() / 2;
647647

648-
return yPositionList.get(pos);
648+
return yPositionsList.get(middleYPositionIndex);
649649
}
650650

651651
public static void longClickAndDrag(final Solo solo, final float xFrom, final float yFrom, final float xTo,

0 commit comments

Comments
 (0)