0
0
mirror of https://github.com/ankidroid/Anki-Android.git synced 2024-09-20 03:52:15 +02:00

NF: next_token may consider <%

This commit is contained in:
Arthur Milchior 2021-05-28 14:08:46 +02:00 committed by Arthur Milchior
parent d8c40f0c13
commit d3ea492f65
2 changed files with 17 additions and 8 deletions

View File

@ -289,15 +289,15 @@ public class Tokenizer implements Iterator<Tokenizer.Token> {
/**
* @param template The remaining of template to lex
* @param legacy Whether to accept <% as handlebar
* @return The next token, or null at end of string
*/
@VisibleForTesting
protected static @Nullable IResult next_token(@NonNull String template) {
IResult t = new_handlebar_token(template);
protected static @Nullable IResult next_token(@NonNull String template, boolean legacy) {
IResult t = handlebar_token(template, legacy);
if (t != null) {
return t;
}
return text_token(template, false);
return text_token(template, legacy);
}
@ -310,7 +310,7 @@ public class Tokenizer implements Iterator<Tokenizer.Token> {
if (mTemplate.length() == 0) {
throw new NoSuchElementException();
}
IResult ir = next_token(mTemplate);
IResult ir = next_token(mTemplate, false);
if (ir == null) {
// Missing closing }}
mFailed = true;

View File

@ -153,12 +153,21 @@ public class TokenizerTest extends RobolectricTest {
IResult expected = new IResult(new Tokenizer.Token(token,
field_name),
remaining);
assertThat(next_token(template), is(expected));
assertThat(next_token(template, true),
is(expected));
assertThat(next_token(template, false),
is(expected));
IResult legacy_expected = expected.new_to_legacy();
String legacy_template = new_to_legacy(template);
assertThat(next_token(legacy_template, true),
is(legacy_expected));
}
private void test_next_token_is_null(@NonNull String template) {
assertThat(next_token(template), nullValue());
assertThat(next_token(template, false), nullValue());
assertThat(next_token(template, true), nullValue());
String legacy_template = new_to_legacy(template);
assertThat(next_token(legacy_template, true), nullValue());
}
@Test