blob: cdff625fda02c6845fc17e1059e88f46915b4204 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.omnibox;
import android.test.suitebuilder.annotation.SmallTest;
import junit.framework.TestCase;
public class SuggestionAnswerTest extends TestCase {
@SmallTest
public void testMalformedJsonReturnsNull() {
String json = "} malformed json {";
SuggestionAnswer answer = SuggestionAnswer.parseAnswerContents(json);
assertNull(answer);
}
@SmallTest
public void testEmpyJsonReturnsNull() {
String json = "";
SuggestionAnswer answer = SuggestionAnswer.parseAnswerContents(json);
assertNull(answer);
}
@SmallTest
public void testOneLineReturnsNull() {
String json =
"{ 'l': [" +
" { 'il': { 't': [{ 't': 'text', 'tt': 8 }] } }, " +
"] }";
SuggestionAnswer answer = SuggestionAnswer.parseAnswerContents(json);
assertNull(answer);
}
@SmallTest
public void testTwoLinesDoesntReturnNull() {
String json =
"{ 'l': [" +
" { 'il': { 't': [{ 't': 'text', 'tt': 8 }] } }, " +
" { 'il': { 't': [{ 't': 'other text', 'tt': 5 }] } }" +
"] }";
SuggestionAnswer answer = SuggestionAnswer.parseAnswerContents(json);
assertNotNull(answer);
}
@SmallTest
public void testThreeLinesReturnsNull() {
String json =
"{ 'l': [" +
" { 'il': { 't': [{ 't': 'text', 'tt': 8 }] } }, " +
" { 'il': { 't': [{ 't': 'other text', 'tt': 5 }] } }" +
" { 'il': { 't': [{ 't': 'yet more text', 'tt': 13 }] } }" +
"] }";
SuggestionAnswer answer = SuggestionAnswer.parseAnswerContents(json);
assertNull(answer);
}
@SmallTest
public void testFiveLinesReturnsNull() {
String json =
"{ 'l': [" +
" { 'il': { 't': [{ 't': 'line 1', 'tt': 0 }] } }, " +
" { 'il': { 't': [{ 't': 'line 2', 'tt': 5 }] } }" +
" { 'il': { 't': [{ 't': 'line 3', 'tt': 13 }] } }" +
" { 'il': { 't': [{ 't': 'line 4', 'tt': 14 }] } }" +
" { 'il': { 't': [{ 't': 'line 5', 'tt': 5 }] } }" +
"] }";
SuggestionAnswer answer = SuggestionAnswer.parseAnswerContents(json);
assertNull(answer);
}
@SmallTest
public void testPropertyPresence() {
String json =
"{ 'l': [" +
" { 'il': { 't': [{ 't': 'text', 'tt': 8 }, { 't': 'moar', 'tt': 0 }], " +
" 'i': { 'd': 'http://example.com/foo.jpg' } } }, " +
" { 'il': { 't': [{ 't': 'other text', 'tt': 5 }], " +
" 'at': { 't': 'slatfotf', 'tt': 42 }, " +
" 'st': { 't': 'oh hi, Mark', 'tt': 7666 } } } " +
"] }";
SuggestionAnswer answer = SuggestionAnswer.parseAnswerContents(json);
SuggestionAnswer.ImageLine firstLine = answer.getFirstLine();
assertEquals(2, firstLine.getTextFields().size());
assertFalse(firstLine.hasAdditionalText());
assertFalse(firstLine.hasStatusText());
assertTrue(firstLine.hasImage());
SuggestionAnswer.ImageLine secondLine = answer.getSecondLine();
assertEquals(1, secondLine.getTextFields().size());
assertTrue(secondLine.hasAdditionalText());
assertTrue(secondLine.hasStatusText());
assertFalse(secondLine.hasImage());
}
@SmallTest
public void testContents() {
String json =
"{ 'l': [" +
" { 'il': { 't': [{ 't': 'text', 'tt': 8 }, { 't': 'moar', 'tt': 0 }], " +
" 'at': { 't': 'hi there', 'tt': 7 } } }, " +
" { 'il': { 't': [{ 't': 'ftw', 'tt': 6006 }], " +
" 'st': { 't': 'shop S-Mart', 'tt': 666 }, " +
" 'i': { 'd': 'Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGlj' } } } " +
"] }";
SuggestionAnswer answer = SuggestionAnswer.parseAnswerContents(json);
SuggestionAnswer.ImageLine firstLine = answer.getFirstLine();
assertEquals("text", firstLine.getTextFields().get(0).getText());
assertEquals(8, firstLine.getTextFields().get(0).getType());
assertEquals("moar", firstLine.getTextFields().get(1).getText());
assertEquals(0, firstLine.getTextFields().get(1).getType());
assertEquals("hi there", firstLine.getAdditionalText().getText());
assertEquals(7, firstLine.getAdditionalText().getType());
SuggestionAnswer.ImageLine secondLine = answer.getSecondLine();
assertEquals("ftw", secondLine.getTextFields().get(0).getText());
assertEquals(6006, secondLine.getTextFields().get(0).getType());
assertEquals("shop S-Mart", secondLine.getStatusText().getText());
assertEquals(666, secondLine.getStatusText().getType());
assertEquals("Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGlj", secondLine.getImage());
}
}