You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			75 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Java
		
	
			
		
		
	
	
			75 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Java
		
	
package org.thoughtcrime.securesms.util;
 | 
						|
 | 
						|
import org.junit.Test;
 | 
						|
import org.whispersystems.libsignal.util.Pair;
 | 
						|
 | 
						|
import java.util.Arrays;
 | 
						|
import java.util.List;
 | 
						|
import java.util.Locale;
 | 
						|
 | 
						|
import static org.junit.Assert.assertEquals;
 | 
						|
import static org.junit.Assert.assertTrue;
 | 
						|
 | 
						|
public class SearchUtilTest {
 | 
						|
 | 
						|
  private static final Locale LOCALE = Locale.ENGLISH;
 | 
						|
 | 
						|
  @Test
 | 
						|
  public void getHighlightRanges_singleHighlightToken() {
 | 
						|
    String                       text      = "abc";
 | 
						|
    String                       highlight = "a";
 | 
						|
    List<Pair<Integer, Integer>> result    = SearchUtil.getHighlightRanges(LOCALE, text, highlight);
 | 
						|
 | 
						|
    assertEquals(Arrays.asList(new Pair<>(0, 1)), result);
 | 
						|
  }
 | 
						|
 | 
						|
  @Test
 | 
						|
  public void getHighlightRanges_singleHighlightTokenWithNewLines() {
 | 
						|
    String                       text      = "123\n\n\nabc";
 | 
						|
    String                       highlight = "a";
 | 
						|
    List<Pair<Integer, Integer>> result    = SearchUtil.getHighlightRanges(LOCALE, text, highlight);
 | 
						|
 | 
						|
    assertEquals(Arrays.asList(new Pair<>(6, 7)), result);
 | 
						|
  }
 | 
						|
 | 
						|
  @Test
 | 
						|
  public void getHighlightRanges_multipleHighlightTokens() {
 | 
						|
    String                       text      = "a bc";
 | 
						|
    String                       highlight = "a b";
 | 
						|
    List<Pair<Integer, Integer>> result    = SearchUtil.getHighlightRanges(LOCALE, text, highlight);
 | 
						|
 | 
						|
    assertEquals(Arrays.asList(new Pair<>(0, 1), new Pair<>(2, 3)), result);
 | 
						|
 | 
						|
 | 
						|
    text      = "abc def";
 | 
						|
    highlight = "ab de";
 | 
						|
    result    = SearchUtil.getHighlightRanges(LOCALE, text, highlight);
 | 
						|
 | 
						|
    assertEquals(Arrays.asList(new Pair<>(0, 2), new Pair<>(4, 6)), result);
 | 
						|
  }
 | 
						|
 | 
						|
  @Test
 | 
						|
  public void getHighlightRanges_onlyHighlightPrefixes() {
 | 
						|
    String                       text      = "abc";
 | 
						|
    String                       highlight = "b";
 | 
						|
    List<Pair<Integer, Integer>> result    = SearchUtil.getHighlightRanges(LOCALE, text, highlight);
 | 
						|
 | 
						|
    assertTrue(result.isEmpty());
 | 
						|
 | 
						|
    text      = "abc";
 | 
						|
    highlight = "c";
 | 
						|
    result    = SearchUtil.getHighlightRanges(LOCALE, text, highlight);
 | 
						|
 | 
						|
    assertTrue(result.isEmpty());
 | 
						|
  }
 | 
						|
 | 
						|
  @Test
 | 
						|
  public void getHighlightRanges_resultNotInFirstToken() {
 | 
						|
    String                       text      = "abc def ghi";
 | 
						|
    String                       highlight = "gh";
 | 
						|
    List<Pair<Integer, Integer>> result    = SearchUtil.getHighlightRanges(LOCALE, text, highlight);
 | 
						|
 | 
						|
    assertEquals(Arrays.asList(new Pair<>(8, 10)), result);
 | 
						|
  }
 | 
						|
}
 |