Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9f491e34 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka Committed by Android (Google) Code Review
Browse files

Merge "Filter out empty entry from more keys CSV"

parents 0de2fbd7 24cd2617
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -325,7 +325,7 @@ public class KeySpecParser {
            return null;
        }
        if (Utils.codePointCount(text) == 1) {
            return new String[] { text };
            return text.codePointAt(0) == COMMA ? null : new String[] { text };
        }

        ArrayList<String> list = null;
@@ -333,10 +333,13 @@ public class KeySpecParser {
        for (int pos = 0; pos < size; pos++) {
            final char c = text.charAt(pos);
            if (c == COMMA) {
                // Skip empty entry.
                if (pos - start > 0) {
                    if (list == null) {
                        list = new ArrayList<String>();
                    }
                    list.add(text.substring(start, pos));
                }
                // Skip comma
                start = pos + 1;
            } else if (c == ESCAPE_CHAR) {
@@ -344,10 +347,13 @@ public class KeySpecParser {
                pos++;
            }
        }
        final String remain = (size - start > 0) ? text.substring(start) : null;
        if (list == null) {
            return new String[] { text.substring(start) };
            return remain != null ? new String[] { remain } : null;
        } else {
            list.add(text.substring(start));
            if (remain != null) {
                list.add(remain);
            }
            return list.toArray(new String[list.size()]);
        }
    }
+8 −2
Original line number Diff line number Diff line
@@ -42,7 +42,8 @@ public class KeySpecParserCsvTests extends AndroidTestCase {
        final String actual[] = KeySpecParser.parseCsvString(value, mTestResources,
                R.string.empty_string);
        if (expected.length == 0) {
            assertNull(message, actual);
            assertNull(message + ": expected=null actual=" + Arrays.toString(actual),
                    actual);
            return;
        }
        assertEquals(message + ": expected=" + Arrays.toString(expected)
@@ -74,6 +75,11 @@ public class KeySpecParserCsvTests extends AndroidTestCase {

    public void testParseCsvTextZero() {
        assertTextArray("Empty string", "");
        assertTextArray("Empty entry", ",");
        assertTextArray("Empty entry at beginning", ",a", "a");
        assertTextArray("Empty entry at end", "a,", "a");
        assertTextArray("Empty entry at middle", "a,,b", "a", "b");
        assertTextArray("Empty entries with escape", ",a,b\\,c,,d,", "a", "b\\,c", "d");
    }

    public void testParseCsvTextSingle() {
@@ -82,7 +88,7 @@ public class KeySpecParserCsvTests extends AndroidTestCase {
        assertTextArray("Single escape", "\\", "\\");
        assertTextArray("Space", " ", " ");
        assertTextArray("Single label", "abc", "abc");
        assertTextArray("Single srrogate pairs label", SURROGATE2, SURROGATE2);
        assertTextArray("Single surrogate pairs label", SURROGATE2, SURROGATE2);
        assertTextArray("Spaces", "   ", "   ");
        assertTextArray("Spaces in label", "a b c", "a b c");
        assertTextArray("Spaces at beginning of label", " abc", " abc");