| ///******************************************************************************* |
| // * Copyright (c) 2006, 2007 IBM Corporation and others. |
| // * All rights reserved. This program and the accompanying materials |
| // * are made available under the terms of the Eclipse Public License v1.0 |
| // * which accompanies this distribution, and is available at |
| // * http://www.eclipse.org/legal/epl-v10.html |
| // * |
| // * Contributors: |
| // * IBM Corporation - initial API and implementation |
| // *******************************************************************************/ |
| // |
| //package org.eclipse.ui.tests.dialogs; |
| // |
| //import java.util.ArrayList; |
| //import java.util.Iterator; |
| //import java.util.regex.Pattern; |
| // |
| //import junit.framework.TestCase; |
| // |
| //import org.eclipse.ui.dialogs.SearchPattern; |
| // |
| ///** |
| // * Test case for tests SearchPattern match functionality |
| // * |
| // * @since 3.3 |
| // * |
| // */ |
| //public class SearchPatternAuto extends TestCase { |
| // |
| // private static ArrayList resources = new ArrayList(); |
| // |
| // |
| // static { |
| // |
| // generateRescourcesTestCases('A', 'C', 8, ""); |
| // |
| // generateRescourcesTestCases('A', 'C', 4, ""); |
| // |
| // } |
| // /** |
| // * @param name |
| // */ |
| // public SearchPatternAuto(String name) { |
| // super(name); |
| // } |
| // |
| // /* (non-Javadoc) |
| // * @see junit.framework.TestCase#setUp() |
| // */ |
| // protected void setUp() throws Exception { |
| // super.setUp(); |
| // } |
| // |
| // /** |
| // * Generates strings data for match test cases. |
| // * |
| // * @param startChar |
| // * @param endChar |
| // * @param lenght |
| // * @param resource |
| // */ |
| // private static void generateRescourcesTestCases(char startChar, char endChar, int lenght, String resource){ |
| // for (char ch = startChar; ch <= endChar; ch++) { |
| // String res = resource + String.valueOf(ch); |
| // if (lenght == res.length()) |
| // resources.add(res); |
| // else if ((res.trim().length() % 2) == 0) |
| // generateRescourcesTestCases(Character.toUpperCase((char)(startChar + 1)), Character.toUpperCase((char)(endChar + 1)), lenght, res); |
| // else |
| // generateRescourcesTestCases(Character.toLowerCase((char)(startChar + 1)), Character.toLowerCase((char)(endChar + 1)), lenght, res); |
| // } |
| // } |
| // |
| // /* (non-Javadoc) |
| // * @see junit.framework.TestCase#tearDown() |
| // */ |
| // protected void tearDown() throws Exception { |
| // super.tearDown(); |
| // } |
| // |
| // /** |
| // * Tests exact match functionality. If we camelCase rule is enable, Pattern should starts with lowerCase character. |
| // * Result for "abcd " pattern should be similar to regexp pattern "abcd" with case insensitive. |
| // */ |
| // public void testExactMatch1() { |
| // String patternText = "abcd "; |
| // Pattern pattern = Pattern.compile("abcd", Pattern.CASE_INSENSITIVE); |
| // SearchPattern patternMatcher = new SearchPattern(); |
| // patternMatcher.setPattern(patternText); |
| // assertEquals(patternMatcher.getMatchRule(), SearchPattern.RULE_EXACT_MATCH); |
| // for (Iterator iter = resources.iterator(); iter.hasNext();) { |
| // String res = (String) iter.next(); |
| // assertEquals(patternMatcher.matches(res), pattern.matcher(res).matches()); |
| // } |
| // } |
| // |
| // /** |
| // * Tests exact match functionality. If we camelCase rule is enable, Pattern should starts with lowerCase character. |
| // * Result for "abcdefgh " pattern should be similar to regexp pattern "abcdefgh" with case insensitive. |
| // */ |
| // public void testExactMatch2() { |
| // String patternText = "abcdefgh<"; |
| // Pattern pattern = Pattern.compile("abcdefgh", Pattern.CASE_INSENSITIVE); |
| // SearchPattern patternMatcher = new SearchPattern(); |
| // patternMatcher.setPattern(patternText); |
| // assertEquals(patternMatcher.getMatchRule(), SearchPattern.RULE_EXACT_MATCH); |
| // for (Iterator iter = resources.iterator(); iter.hasNext();) { |
| // String res = (String) iter.next(); |
| // assertEquals(patternMatcher.matches(res), pattern.matcher(res).matches()); |
| // } |
| // } |
| // |
| // /** |
| // * Tests prefix match functionality. If we camelCase rule is enable, Pattern should starts with lowerCase character. |
| // * Result for "ab" pattern should be similar to regexp pattern "ab.*" with case insensitive. |
| // */ |
| // public void testPrefixMatch() { |
| // String patternText = "ab"; |
| // Pattern pattern = Pattern.compile("ab.*", Pattern.CASE_INSENSITIVE); |
| // SearchPattern patternMatcher = new SearchPattern(); |
| // patternMatcher.setPattern(patternText); |
| // assertEquals(patternMatcher.getMatchRule(), SearchPattern.RULE_PREFIX_MATCH); |
| // for (Iterator iter = resources.iterator(); iter.hasNext();) { |
| // String res = (String) iter.next(); |
| // assertEquals(patternMatcher.matches(res), pattern.matcher(res).matches()); |
| // } |
| // } |
| // |
| // /** |
| // * Tests pattern match functionality. It's similar to regexp patterns. |
| // * Result for "**cDe" pattern should be similar to regexp pattern ".*cde.*" with case insensitive. |
| // */ |
| // public void testPatternMatch1() { |
| // String patternText = "**cDe"; |
| // Pattern pattern = Pattern.compile(".*cde.*", Pattern.CASE_INSENSITIVE); |
| // SearchPattern patternMatcher = new SearchPattern(); |
| // patternMatcher.setPattern(patternText); |
| // assertEquals(patternMatcher.getMatchRule(), SearchPattern.RULE_PATTERN_MATCH); |
| // for (Iterator iter = resources.iterator(); iter.hasNext();) { |
| // String res = (String) iter.next(); |
| // assertEquals(patternMatcher.matches(res), pattern.matcher(res).matches()); |
| // } |
| // } |
| // |
| // /** |
| // * Tests pattern match functionality. It's similar to regexp patterns. |
| // * Result for "**c*e*i" pattern should be similar to regexp pattern ".*c.*e.*i.*" with case insensitive. |
| // */ |
| // public void testPatternMatch2() { |
| // String patternText = "**c*e*i"; |
| // Pattern pattern = Pattern.compile(".*c.*e.*i.*", Pattern.CASE_INSENSITIVE); |
| // SearchPattern patternMatcher = new SearchPattern(); |
| // patternMatcher.setPattern(patternText); |
| // assertEquals(patternMatcher.getMatchRule(), SearchPattern.RULE_PATTERN_MATCH); |
| // for (Iterator iter = resources.iterator(); iter.hasNext();) { |
| // String res = (String) iter.next(); |
| // assertEquals(patternMatcher.matches(res), pattern.matcher(res).matches()); |
| // } |
| // } |
| // |
| // /** |
| // * Tests camelCase match functionality. |
| // * Every string starts with upperCase characters should be recognize as camelCase pattern match rule. |
| // * Result for "CD" SearchPattern should be similar to regexp pattern "C[^A-Z]*D.*" or "CD.*" |
| // * If pattern contains only upperCase characters result contains all prefix match elements. |
| // */ |
| // public void testCamelCaseMatch1() { |
| // String patternText = "CD"; |
| // Pattern pattern = Pattern.compile("C[^A-Z]*D.*"); |
| // Pattern pattern2 = Pattern.compile("CD.*", Pattern.CASE_INSENSITIVE); |
| // SearchPattern patternMatcher = new SearchPattern(); |
| // patternMatcher.setPattern(patternText); |
| // assertEquals(patternMatcher.getMatchRule(), SearchPattern.RULE_CAMELCASE_MATCH); |
| // for (Iterator iter = resources.iterator(); iter.hasNext();) { |
| // String res = (String) iter.next(); |
| // if (patternMatcher.matches(res) != pattern.matcher(res).matches()) { |
| // assertEquals(patternMatcher.matches(res), pattern2.matcher(res).matches()); |
| // } |
| // } |
| // } |
| // |
| // /** |
| // * Tests camelCase match functionality. |
| // * Every string starts with upperCase characters should be recognize as camelCase pattern match rule. |
| // * Result for "AbCd " SearchPattern should be similar to regexp pattern "C[^A-Z]*D.*" or "CD.*" |
| // */ |
| // public void testCamelCaseMatch2() { |
| // String patternText = "AbCd "; |
| // Pattern pattern = Pattern.compile("Ab[^A-Z]*Cd[^A-Z]*"); |
| // SearchPattern patternMatcher = new SearchPattern(); |
| // patternMatcher.setPattern(patternText); |
| // assertEquals(patternMatcher.getMatchRule(), SearchPattern.RULE_CAMELCASE_MATCH); |
| // for (Iterator iter = resources.iterator(); iter.hasNext();) { |
| // String res = (String) iter.next(); |
| // assertEquals(patternMatcher.matches(res), pattern.matcher(res).matches()); |
| // } |
| // } |
| // |
| // /** |
| // * Tests camelCase match functionality. |
| // * Every string starts with upperCase characters should be recognize as camelCase pattern match rule. |
| // * Result for "AbCdE<" SearchPattern should be similar to regexp pattern "Ab[^A-Z]*Cd[^A-Z]*E[^A-Z]*" |
| // */ |
| // public void testCamelCaseMatch3() { |
| // String patternText = "AbCdE<"; |
| // Pattern pattern = Pattern.compile("Ab[^A-Z]*Cd[^A-Z]*E[^A-Z]*"); |
| // SearchPattern patternMatcher = new SearchPattern(); |
| // patternMatcher.setPattern(patternText); |
| // assertEquals(patternMatcher.getMatchRule(), SearchPattern.RULE_CAMELCASE_MATCH); |
| // for (Iterator iter = resources.iterator(); iter.hasNext();) { |
| // String res = (String) iter.next(); |
| // assertEquals(patternMatcher.matches(res), pattern.matcher(res).matches()); |
| // } |
| // } |
| // |
| // /** |
| // * Tests blank match functionality. |
| // * Blank string should be recognize as blank pattern match rule. |
| // * It should match with all resources. |
| // * Result for SearchPattern should be similar to regexp pattern ".*" |
| // */ |
| // public void testBlankMatch() { |
| // String patternText = ""; |
| // Pattern pattern = Pattern.compile(".*", Pattern.CASE_INSENSITIVE); |
| // SearchPattern patternMatcher = new SearchPattern(); |
| // patternMatcher.setPattern(patternText); |
| // assertEquals(patternMatcher.getMatchRule(), SearchPattern.RULE_BLANK_MATCH); |
| // for (Iterator iter = resources.iterator(); iter.hasNext();) { |
| // String res = (String) iter.next(); |
| // assertEquals(patternMatcher.matches(res), pattern.matcher(res).matches()); |
| // } |
| // } |
| // |
| //} |