blob: 07b64b9965433e83160b41adb9c39a3672ff549e [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.netbeans.api.search;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import junit.textui.TestRunner;
import org.netbeans.api.search.SearchHistory;
import org.netbeans.api.search.SearchPattern;
import org.netbeans.junit.NbTestCase;
import org.netbeans.junit.NbTestSuite;
/**
*
* @author Martin Roskanin
*/
public final class SearchHistoryTest extends NbTestCase {
/**
*/
public SearchHistoryTest(String name) {
super(name);
}
/**
*/
public static void main(String args[]) {
TestRunner.run(new NbTestSuite(SearchHistoryTest.class));
}
/**
*/
public void testSearchPatternSize() throws Exception {
assertSize("SearchPattern size", 256, SearchPattern.create("searchText",true,true,false));
}
public void testSearchHistoryListSize() throws Exception{
for (int i = 0; i<60; i++){
SearchHistory.getDefault().add(SearchPattern.create(String.valueOf(i),true,true,false));
}
assertTrue(SearchHistory.getDefault().getSearchPatterns().size() == 10);
}
public void testLastSelectedListener() throws Exception{
final boolean fired[] = new boolean[1];
fired[0] = false;
PropertyChangeListener pcl = new PropertyChangeListener(){
@Override
public void propertyChange(PropertyChangeEvent evt){
if (evt!=null && SearchHistory.LAST_SELECTED.equals(evt.getPropertyName())){
fired[0] = true;
}
}
};
SearchHistory.getDefault().add(SearchPattern.create("init",true,true,false));
SearchHistory.getDefault().addPropertyChangeListener(pcl);
SearchHistory.getDefault().setLastSelected(SearchPattern.create("newSearchtext",true,true,false));
SearchHistory.getDefault().removePropertyChangeListener(pcl);
assertTrue(fired[0]);
}
public void testAddToSearchHistoryListener() throws Exception{
final boolean fired[] = new boolean[2];
PropertyChangeListener pcl = new PropertyChangeListener(){
@Override
public void propertyChange(PropertyChangeEvent evt){
if (evt!=null && SearchHistory.ADD_TO_HISTORY.equals(evt.getPropertyName())){
fired[0] = true;
}else{
fired[1] = true;
}
}
};
SearchHistory.getDefault().addPropertyChangeListener(pcl);
SearchHistory.getDefault().add(SearchPattern.create("searchtext",true,true,false));
SearchHistory.getDefault().removePropertyChangeListener(pcl);
assertTrue(fired[0]);
assertFalse("Only the expected change is fired", fired[1]);
}
public void testAddIncorrectItemToSearchHistoryListener() throws Exception{
final boolean fired[] = new boolean[2];
PropertyChangeListener pcl = new PropertyChangeListener(){
@Override
public void propertyChange(PropertyChangeEvent evt){
if (evt!=null && SearchHistory.ADD_TO_HISTORY.equals(evt.getPropertyName())){
fired[0] = true;
} else {
fired[1] = true;
}
}
};
SearchHistory.getDefault().addPropertyChangeListener(pcl);
// add valid pattern
fired[0] = false;
fired[1] = false;
SearchHistory.getDefault().add(SearchPattern.create("searchtext2",true,true,false));
assertTrue(fired[0]);
assertFalse("Only the expected change is fired", fired[1]);
// add the same pattern, it shouldn't be added
fired[0] = false;
fired[1] = false;
SearchHistory.getDefault().add(SearchPattern.create("searchtext2",true,true,false));
assertTrue(!fired[0]);
assertFalse("Only the expected change is fired", fired[1]);
// add null pattern
fired[0] = false;
fired[1] = false;
SearchHistory.getDefault().add(null);
assertTrue(!fired[0]);
assertFalse("Only the expected change is fired", fired[1]);
// add pattern with null searchExpression
fired[0] = false;
fired[1] = false;
SearchHistory.getDefault().add(SearchPattern.create(null,true,true,false));
assertTrue(!fired[0]);
assertFalse("Only the expected change is fired", fired[1]);
// add pattern with empty searchExpression
fired[0] = false;
fired[1] = false;
SearchHistory.getDefault().add(SearchPattern.create("",true,true,false));
assertTrue(!fired[0]);
assertFalse("Only the expected change is fired", fired[1]);
SearchHistory.getDefault().removePropertyChangeListener(pcl);
}
public void testEquals() throws Exception{
SearchPattern pattern_one = SearchPattern.create("one",false, false, false);
SearchPattern pattern_one_a = SearchPattern.create("one",true, false, false);
SearchPattern pattern_one_b = SearchPattern.create("one",false, true, false);
SearchPattern pattern_one_c = SearchPattern.create("one",false,false, true);
SearchPattern pattern_one_d = SearchPattern.create("one",true,true, false);
SearchPattern pattern_one_e = SearchPattern.create("one",true,false, true);
SearchPattern pattern_one_f = SearchPattern.create("one",true,true, true);
SearchPattern pattern_two = SearchPattern.create("two",false, false, false);
SearchPattern pattern_TwO = SearchPattern.create("TwO",false, false, false);
SearchPattern pattern_TwO_a = SearchPattern.create("TwO",false, true, false);
SearchPattern pattern_one_test = SearchPattern.create("one",false, false, false);
SearchPattern pattern_one_a_test = SearchPattern.create("one",true, false, false);
SearchPattern pattern_one_b_test = SearchPattern.create("one",false, true, false);
SearchPattern pattern_one_c_test = SearchPattern.create("one",false,false, true);
SearchPattern pattern_one_d_test = SearchPattern.create("one",true,true, false);
SearchPattern pattern_one_e_test = SearchPattern.create("one",true,false, true);
SearchPattern pattern_one_f_test = SearchPattern.create("one",true,true, true);
SearchPattern pattern_two_test = SearchPattern.create("two",false, false, false);
SearchPattern pattern_TwO_test = SearchPattern.create("TwO",false, false, false);
SearchPattern pattern_TwO_a_test = SearchPattern.create("TwO",false, true, false);
assertTrue(pattern_one.equals(pattern_one_test));
assertTrue(pattern_one_test.equals(pattern_one));
assertTrue(pattern_one_a_test.equals(pattern_one_a));
assertTrue(pattern_one_b_test.equals(pattern_one_b));
assertTrue(pattern_one_c_test.equals(pattern_one_c));
assertTrue(pattern_one_d_test.equals(pattern_one_d));
assertTrue(pattern_one_e_test.equals(pattern_one_e));
assertTrue(pattern_one_f_test.equals(pattern_one_f));
//--------------------------------------------------
assertTrue(!pattern_one_a_test.equals(pattern_one_b));
assertTrue(!pattern_one_a_test.equals(pattern_one_c));
assertTrue(!pattern_one_b_test.equals(pattern_one_c));
assertTrue(!pattern_one_d_test.equals(pattern_one_e));
assertTrue(pattern_two.equals(pattern_two_test));
assertTrue(pattern_TwO.equals(pattern_TwO_test));
assertTrue(pattern_TwO_a.equals(pattern_TwO_a_test));
assertTrue(!pattern_two.equals(pattern_TwO_test));
assertTrue(!pattern_TwO_a.equals(pattern_TwO_test));
}
public void testHashCode() throws Exception{
int pattern_one = SearchPattern.create("one",false, false, false).hashCode();
int pattern_one_a = SearchPattern.create("one",true, false, false).hashCode();
int pattern_one_b = SearchPattern.create("one",false, true, false).hashCode();
int pattern_one_c = SearchPattern.create("one",false,false, true).hashCode();
int pattern_one_d = SearchPattern.create("one",true,true, false).hashCode();
int pattern_one_e = SearchPattern.create("one",true,false, true).hashCode();
int pattern_one_f = SearchPattern.create("one",true,true, true).hashCode();
int pattern_two = SearchPattern.create("two",false, false, false).hashCode();
int pattern_TwO = SearchPattern.create("TwO",false, false, false).hashCode();
int pattern_TwO_a = SearchPattern.create("TwO",false, true, false).hashCode();
int pattern_one_test = SearchPattern.create("one",false, false, false).hashCode();
int pattern_one_a_test = SearchPattern.create("one",true, false, false).hashCode();
int pattern_one_b_test = SearchPattern.create("one",false, true, false).hashCode();
int pattern_one_c_test = SearchPattern.create("one",false,false, true).hashCode();
int pattern_one_d_test = SearchPattern.create("one",true,true, false).hashCode();
int pattern_one_e_test = SearchPattern.create("one",true,false, true).hashCode();
int pattern_one_f_test = SearchPattern.create("one",true,true, true).hashCode();
int pattern_two_test = SearchPattern.create("two",false, false, false).hashCode();
int pattern_TwO_test = SearchPattern.create("TwO",false, false, false).hashCode();
int pattern_TwO_a_test = SearchPattern.create("TwO",false, true, false).hashCode();
assertTrue(pattern_one == pattern_one_test);
assertTrue(pattern_one_test == pattern_one);
assertTrue(pattern_one_a_test == pattern_one_a);
assertTrue(pattern_one_b_test == pattern_one_b);
assertTrue(pattern_one_c_test == pattern_one_c);
assertTrue(pattern_one_d_test == pattern_one_d);
assertTrue(pattern_one_e_test == pattern_one_e);
assertTrue(pattern_one_f_test == pattern_one_f);
//--------------------------------------------------
assertTrue(pattern_one_a_test != pattern_one_b);
assertTrue(pattern_one_a_test != pattern_one_c);
assertTrue(pattern_one_b_test != pattern_one_c);
assertTrue(pattern_one_d_test != pattern_one_e);
assertTrue(pattern_two == pattern_two_test);
assertTrue(pattern_TwO == pattern_TwO_test);
assertTrue(pattern_TwO_a == pattern_TwO_a_test);
assertTrue(pattern_two != pattern_TwO_test);
assertTrue(pattern_TwO_a != pattern_TwO_test);
}
}