Skip to content

Commit fdbe301

Browse files
authored
Add test coverage for io.flutter.run package including SdkFields fix (#8650)
1 parent dd10639 commit fdbe301

File tree

4 files changed

+39
-13
lines changed

4 files changed

+39
-13
lines changed

src/io/flutter/run/SdkFields.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@ public boolean hasAdditionalArgs() {
9393
public String[] getAdditionalArgsParsed() {
9494
if (hasAdditionalArgs()) {
9595
assert additionalArgs != null;
96-
return ParametersListUtil.parse(additionalArgs, false, true, true).toArray(new String[0]);
96+
return ParametersListUtil.parse(additionalArgs, false, false, true).stream().filter(s -> !s.isEmpty())
97+
.toArray(String[]::new);
9798
}
9899

99100
return new String[0];
@@ -115,7 +116,8 @@ public boolean hasAttachArgs() {
115116
public String[] getAttachArgsParsed() {
116117
if (hasAttachArgs()) {
117118
assert attachArgs != null;
118-
return ParametersListUtil.parse(attachArgs, false, true, true).toArray(new String[0]);
119+
return ParametersListUtil.parse(attachArgs, false, false, true).stream().filter(s -> !s.isEmpty())
120+
.toArray(String[]::new);
119121
}
120122
return new String[0];
121123
}

testSrc/unit/io/flutter/run/SdkFieldsTest.java

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -67,23 +67,29 @@ public void roundTripShouldPreserveFields() {
6767
@Test
6868
public void supportsSpacesInAdditionalArgs() {
6969
final SdkFields sdkFields = new SdkFields();
70-
sdkFields.setAdditionalArgs("--dart-define='VALUE=foo bar' --other=baz");
71-
72-
assertArrayEquals(new String[]{
73-
"--dart-define=VALUE=foo bar",
74-
"--other=baz"
75-
}, sdkFields.getAdditionalArgsParsed());
70+
sdkFields.setAdditionalArgs(" --dart-define=\"VALUE=foo bar\" ");
71+
assertArrayEquals(new String[] { "--dart-define=VALUE=foo bar" }, sdkFields.getAdditionalArgsParsed());
7672
}
7773

7874
@Test
7975
public void supportsSpacesInAttachArgs() {
8076
final SdkFields sdkFields = new SdkFields();
81-
sdkFields.setAttachArgs("--dart-define='VALUE=foo bar' --other=baz");
77+
sdkFields.setAttachArgs(" --dart-define=\"VALUE=foo bar\" ");
78+
assertArrayEquals(new String[] { "--dart-define=VALUE=foo bar" }, sdkFields.getAttachArgsParsed());
79+
}
80+
81+
@Test
82+
public void getAdditionalArgsParsed_edgeCases() {
83+
final SdkFields sdkFields = new SdkFields();
84+
85+
sdkFields.setAdditionalArgs(null);
86+
assertEquals(0, sdkFields.getAdditionalArgsParsed().length);
87+
88+
sdkFields.setAdditionalArgs(" ");
89+
assertArrayEquals(new String[0], sdkFields.getAdditionalArgsParsed());
8290

83-
assertArrayEquals(new String[]{
84-
"--dart-define=VALUE=foo bar",
85-
"--other=baz"
86-
}, sdkFields.getAttachArgsParsed());
91+
sdkFields.setAdditionalArgs(" --foo --bar ");
92+
assertArrayEquals(new String[] { "--foo", "--bar" }, sdkFields.getAdditionalArgsParsed());
8793
}
8894

8995
private void addOption(Element elt, String name, String value) {

testSrc/unit/io/flutter/run/bazel/BazelFieldsTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,18 @@ public void roundTripShouldPreserveFields() {
6565
assertEquals("bazel_or_dart_target", after.getTarget());
6666
assertEquals("bazel_args --1 -2=3", after.getBazelArgs());
6767
assertEquals("additional_args --1 --2=3", after.getAdditionalArgs());
68+
6869
assertTrue(after.getEnableReleaseMode());
6970
}
7071

72+
@Test
73+
public void constructorHandlesNulls() {
74+
final BazelFields fields = new BazelFields(null, null, null, false);
75+
assertNull(fields.getTarget());
76+
assertNull(fields.getBazelArgs());
77+
assertNull(fields.getAdditionalArgs());
78+
}
79+
7180
private void addOption(Element elt, String name, String value) {
7281
final Element child = new Element("option");
7382
child.setAttribute("name", name);

testSrc/unit/io/flutter/run/bazelTest/BazelTestFieldsTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,15 @@ public void roundTripShouldPreserveFields() {
7070
assertEquals("--no-watch --other-args", after.getAdditionalArgs());
7171
}
7272

73+
@Test
74+
public void constructorHandlesNulls() {
75+
final BazelTestFields fields = new BazelTestFields(null, null, null, null);
76+
assertNull(fields.getTestName());
77+
assertNull(fields.getEntryFile());
78+
assertNull(fields.getBazelTarget());
79+
assertNull(fields.getAdditionalArgs());
80+
}
81+
7382
private void addOption(Element elt, String name, String value) {
7483
final Element child = new Element("option");
7584
child.setAttribute("name", name);

0 commit comments

Comments
 (0)