diff --git a/src/main/java/rx/observables/StringObservable.java b/src/main/java/rx/observables/StringObservable.java index 0af7817..89869f2 100644 --- a/src/main/java/rx/observables/StringObservable.java +++ b/src/main/java/rx/observables/StringObservable.java @@ -434,24 +434,14 @@ public void onNext(String segment) { leftOver = parts[parts.length - 1]; } - private int emptyPartCount = 0; - /** * when limit == 0 trailing empty parts are not emitted. - * + * * @param part */ private void output(String part) { - if (part.isEmpty()) { - emptyPartCount++; - } - else { - for (; emptyPartCount > 0; emptyPartCount--) - if (!o.isUnsubscribed()) - o.onNext(""); - if (!o.isUnsubscribed()) - o.onNext(part); - } + if (!o.isUnsubscribed()) + o.onNext(part); } }; } diff --git a/src/test/java/rx/observables/StringObservableTest.java b/src/test/java/rx/observables/StringObservableTest.java index aa3dc76..a449e51 100644 --- a/src/test/java/rx/observables/StringObservableTest.java +++ b/src/test/java/rx/observables/StringObservableTest.java @@ -143,7 +143,22 @@ public void testSplitOnColon() { @Test public void testSplitOnOh() { - testSplit("boo:and:foo", "o", 0, "b", "", ":and:f"); + testSplit("boo:and:foo", "o", 0, "b", "", ":and:f", "", ""); + } + + @Test + public void testDocumentationSplit() { + //Documentation Example + //split(["boo:an", "d:foo"], "o") --> ["b", "", ":and:f", "", ""] + + List expected = Observable.from(new String[]{"b", "", ":and:f", "", ""}).toList().toBlocking().single(); + + Observable test = Observable.from(new String[]{"boo:an", "d:foo"}); + List actual = StringObservable.split(test, "o").toList().toBlocking().single(); + + String[] expectedArray = expected.toArray(new String[expected.size()]); + String[] actualArray = actual.toArray(new String[actual.size()]); + assertArrayEquals(expectedArray, actualArray); } @Test