You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2008/06/07 08:28:15 UTC
svn commit: r664290 [13/13] - in /directory/shared/branches/bigbang: ./
asn1/src/main/java/org/apache/directory/shared/asn1/
asn1/src/main/java/org/apache/directory/shared/asn1/ber/
asn1/src/main/java/org/apache/directory/shared/asn1/ber/grammar/ asn1/...
Modified: directory/shared/branches/bigbang/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/parser/SchemaParserTestUtils.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/bigbang/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/parser/SchemaParserTestUtils.java?rev=664290&r1=664289&r2=664290&view=diff
==============================================================================
--- directory/shared/branches/bigbang/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/parser/SchemaParserTestUtils.java (original)
+++ directory/shared/branches/bigbang/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/parser/SchemaParserTestUtils.java Fri Jun 6 23:28:06 2008
@@ -36,7 +36,7 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$
*/
-public class SchemaParserTestUtils
+public class SchemaParserTestUtils
{
/**
@@ -74,34 +74,42 @@
}
// simple
- value = "( 0.1.2.3.4.5.6.7.8.9 "+required+" )";
+ value = "( 0.1.2.3.4.5.6.7.8.9 " + required + " )";
asd = parser.parse( value );
Assert.assertEquals( "0.1.2.3.4.5.6.7.8.9", asd.getNumericOid() );
// simple
- value = "( 123.4567.890 "+required+")";
+ value = "( 123.4567.890 " + required + ")";
asd = parser.parse( value );
Assert.assertEquals( "123.4567.890", asd.getNumericOid() );
-
- // simple with spaces
- value = "( 0.1.2.3.4.5.6.7.8.9 "+required+" )";
+
+ // simple with multiple spaces
+ value = "( 0.1.2.3.4.5.6.7.8.9 " + required + " )";
asd = parser.parse( value );
Assert.assertEquals( "0.1.2.3.4.5.6.7.8.9", asd.getNumericOid() );
- // non-numeric not allowed
- value = "( test "+required+" )";
- try
- {
- parser.parse( value );
- Assert.fail( "Exception expected, invalid NUMERICOID test" );
- }
- catch ( ParseException pe )
- {
- // expected
- }
+ // simple w/o spaces
+ value = "(0.1.2.3.4.5.6.7.8.9 " + required + ")";
+ asd = parser.parse( value );
+ Assert.assertEquals( "0.1.2.3.4.5.6.7.8.9", asd.getNumericOid() );
+
+ // simple with tabs, newline, comment.
+ value = "(\t0.1.2.3.4.5.6.7.8.9\n#comment\n" + required + "\r\n)\r";
+ asd = parser.parse( value );
+ Assert.assertEquals( "0.1.2.3.4.5.6.7.8.9", asd.getNumericOid() );
+
+ // quoted OID
+ value = "( '0.1.2.3.4.5.6.7.8.9' " + required + " )";
+ asd = parser.parse( value );
+ Assert.assertEquals( "0.1.2.3.4.5.6.7.8.9", asd.getNumericOid() );
+
+ // quoted OID in parentheses
+ value = "( ('0.1.2.3.4.5.6.7.8.9') " + required + " )";
+ asd = parser.parse( value );
+ Assert.assertEquals( "0.1.2.3.4.5.6.7.8.9", asd.getNumericOid() );
- // to short
- value = "( 1 "+required+" )";
+ // too short
+ value = "( 1 " + required + " )";
try
{
parser.parse( value );
@@ -113,7 +121,7 @@
}
// dot only
- value = "( . "+required+" )";
+ value = "( . " + required + " )";
try
{
parser.parse( value );
@@ -125,7 +133,7 @@
}
// ends with dot
- value = "( 1.1. "+required+" )";
+ value = "( 1.1. " + required + " )";
try
{
parser.parse( value );
@@ -136,44 +144,60 @@
// expected
}
- // quotes not allowed
- value = "( '1.1' "+required+" )";
+ // multiple not allowed
+ value = "( ( 1.2.3 4.5.6 ) " + required + " )";
try
{
parser.parse( value );
- Assert.fail( "Exception expected, invalid NUMERICOID '1.1' (quoted)" );
+ Assert.fail( "Exception expected, invalid multiple OIDs not allowed.)" );
}
catch ( ParseException pe )
{
- // expected
+ // excpected
}
- // leading 0 not allowed
- value = "( 01.1 "+required+" )";
- try
+ if ( !parser.isQuirksMode() )
{
- parser.parse( value );
- Assert.fail( "Exception expected, invalid NUMERICOID 01.1 (leading zero)" );
- }
- catch ( ParseException pe )
- {
- // expected
- }
+ // non-numeric not allowed
+ value = "( test " + required + " )";
+ try
+ {
+ parser.parse( value );
+ Assert.fail( "Exception expected, invalid NUMERICOID test" );
+ }
+ catch ( ParseException pe )
+ {
+ // expected
+ }
+
+ // leading 0 not allowed
+ value = "( 01.1 " + required + " )";
+ try
+ {
+ parser.parse( value );
+ Assert.fail( "Exception expected, invalid NUMERICOID 01.1 (leading zero)" );
+ }
+ catch ( ParseException pe )
+ {
+ // expected
+ }
+
+ // alpha not allowed
+ value = "( 1.2.a.4 " + required + " )";
+ try
+ {
+ parser.parse( value );
+ Assert.fail( "Exception expected, invalid NUMERICOID 1.2.a.4 (alpha not allowed)" );
+ }
+ catch ( ParseException pe )
+ {
+ // excpected
+ }
- // alpha not allowed
- value = "( 1.2.a.4 "+required+" )";
- try
- {
- parser.parse( value );
- Assert.fail( "Exception expected, invalid NUMERICOID 1.2.a.4 (alpha not allowed)" );
- }
- catch ( ParseException pe )
- {
- Assert.assertTrue( true );
}
-
}
-
+
+
/**
* Tests NAME and its values
*
@@ -185,38 +209,40 @@
AbstractSchemaDescription asd = null;
// alpha
- value = "( "+oid+" "+required+" NAME 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' )";
+ value = "( " + oid + " " + required + " NAME 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' )";
asd = parser.parse( value );
Assert.assertEquals( 1, asd.getNames().size() );
Assert.assertEquals( "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", asd.getNames().get( 0 ) );
// alpha-num-hypen
- value = "( "+oid+" "+required+" NAME 'abcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789' )";
+ value = "( " + oid + " " + required
+ + " NAME 'abcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789' )";
asd = parser.parse( value );
Assert.assertEquals( 1, asd.getNames().size() );
- Assert.assertEquals( "abcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789", asd.getNames().get( 0 ) );
+ Assert
+ .assertEquals( "abcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789", asd.getNames().get( 0 ) );
// with parentheses
- value = "( "+oid+" "+required+" NAME ( 'a-z-0-9' ) )";
+ value = "( " + oid + " " + required + " NAME ( 'a-z-0-9' ) )";
asd = parser.parse( value );
Assert.assertEquals( 1, asd.getNames().size() );
Assert.assertEquals( "a-z-0-9", asd.getNames().get( 0 ) );
// with parentheses, without space
- value = "( "+oid+" "+required+" NAME ('a-z-0-9') )";
+ value = "(" + oid + " " + required + " NAME('a-z-0-9'))";
asd = parser.parse( value );
Assert.assertEquals( 1, asd.getNames().size() );
Assert.assertEquals( "a-z-0-9", asd.getNames().get( 0 ) );
// multi with space
- value = "( "+oid+" "+required+" NAME ( 'test1' 'test2' ) )";
+ value = " ( " + oid + " " + required + " NAME ( 'test1' 'test2' ) ) ";
asd = parser.parse( value );
Assert.assertEquals( 2, asd.getNames().size() );
Assert.assertEquals( "test1", asd.getNames().get( 0 ) );
Assert.assertEquals( "test2", asd.getNames().get( 1 ) );
// multi without space
- value = "( "+oid+" "+required+" NAME ('test1' 'test2' 'test3') )";
+ value = "(" + oid + " " + required + " NAME('test1''test2''test3'))";
asd = parser.parse( value );
Assert.assertEquals( 3, asd.getNames().size() );
Assert.assertEquals( "test1", asd.getNames().get( 0 ) );
@@ -224,75 +250,44 @@
Assert.assertEquals( "test3", asd.getNames().get( 2 ) );
// multi with many spaces
- value = "( "+oid+" "+required+" NAME ( 'test1' 'test2' 'test3' ) )";
+ value = "( " + oid + " " + required
+ + " NAME ( 'test1' 'test2' 'test3' ) )";
asd = parser.parse( value );
Assert.assertEquals( 3, asd.getNames().size() );
Assert.assertEquals( "test1", asd.getNames().get( 0 ) );
Assert.assertEquals( "test2", asd.getNames().get( 1 ) );
Assert.assertEquals( "test3", asd.getNames().get( 2 ) );
- // lowercase
- value = "( "+oid+" "+required+" name 'test' )";
- try
- {
- parser.parse( value );
- Assert.fail( "Exception expected, NAME is lowercase" );
- }
- catch ( ParseException pe )
- {
- // expected
- }
-
- // unquoted
- value = "( "+oid+" "+required+" NAME test )";
- try
- {
- parser.parse( value );
- Assert.fail( "Exception expected, invalid NAME test (unquoted)" );
- }
- catch ( ParseException pe )
- {
- // expected
- }
+ // multi with tabs, newline, comment, etc.
+ value = "(\r\n" + oid + "\r" + required
+ + "\nNAME\t(\t\t\t'test1'\t\n\t'test2'\t\r\t'test3'\t\r\n\t)\n#comment\n)";
+ asd = parser.parse( value );
+ Assert.assertEquals( 3, asd.getNames().size() );
+ Assert.assertEquals( "test1", asd.getNames().get( 0 ) );
+ Assert.assertEquals( "test2", asd.getNames().get( 1 ) );
+ Assert.assertEquals( "test3", asd.getNames().get( 2 ) );
- // start with number
- value = "( "+oid+" "+required+" NAME '1test' )";
- try
- {
- parser.parse( value );
- Assert.fail( "Exception expected, invalid NAME 1test (starts with number)" );
- }
- catch ( ParseException pe )
- {
- // expected
- }
+ // lowercase NAME
+ value = "( " + oid + " " + required + " name 'test' )";
+ asd = parser.parse( value );
+ Assert.assertEquals( 1, asd.getNames().size() );
+ Assert.assertEquals( "test", asd.getNames().get( 0 ) );
- // start with hypen
- value = "( "+oid+" "+required+" NAME '-test' )";
- try
- {
- parser.parse( value );
- Assert.fail( "Exception expected, invalid NAME -test (starts with hypen)" );
- }
- catch ( ParseException pe )
- {
- // expected
- }
+ // unquoted NAME value
+ value = "( " + oid + " " + required + " NAME test )";
+ asd = parser.parse( value );
+ Assert.assertEquals( 1, asd.getNames().size() );
+ Assert.assertEquals( "test", asd.getNames().get( 0 ) );
- // invalid character
- value = "( "+oid+" "+required+" NAME 'te_st' )";
- try
- {
- parser.parse( value );
- Assert.fail( "Exception expected, invalid NAME te_st (contains invalid character)" );
- }
- catch ( ParseException pe )
- {
- // expected
- }
+ // multi unquoted NAME values
+ value = " ( " + oid + " " + required + " NAME (test1 test2) ) ";
+ asd = parser.parse( value );
+ Assert.assertEquals( 2, asd.getNames().size() );
+ Assert.assertEquals( "test1", asd.getNames().get( 0 ) );
+ Assert.assertEquals( "test2", asd.getNames().get( 1 ) );
// NAM unknown
- value = "( "+oid+" "+required+" NAM 'test' )";
+ value = "( " + oid + " " + required + " NAM 'test' )";
try
{
parser.parse( value );
@@ -303,81 +298,133 @@
// expected
}
- // one valid, one invalid
- value = "( "+oid+" "+required+" NAME ( 'test' 'te_st' ) )";
- try
+ if ( !parser.isQuirksMode() )
{
- parser.parse( value );
- Assert.fail( "Exception expected, invalid NAME te_st (contains invalid character)" );
- }
- catch ( ParseException pe )
- {
- // expected
- }
+ // start with number
+ value = "( " + oid + " " + required + " NAME '1test' )";
+ try
+ {
+ parser.parse( value );
+ Assert.fail( "Exception expected, invalid NAME 1test (starts with number)" );
+ }
+ catch ( ParseException pe )
+ {
+ // expected
+ }
- // no space between values
- value = "( "+oid+" "+required+" NAME ( 'test1''test2' ) )";
- try
- {
- asd = parser.parse( value );
- Assert.fail( "Exception expected, invalid NAME values (no space between values)" );
- }
- catch ( ParseException pe )
- {
- Assert.assertTrue( true );
+ // start with hypen
+ value = "( " + oid + " " + required + " NAME '-test' )";
+ try
+ {
+ parser.parse( value );
+ Assert.fail( "Exception expected, invalid NAME -test (starts with hypen)" );
+ }
+ catch ( ParseException pe )
+ {
+ // expected
+ }
+
+ // invalid character
+ value = "( " + oid + " " + required + " NAME 'te_st' )";
+ try
+ {
+ parser.parse( value );
+ Assert.fail( "Exception expected, invalid NAME te_st (contains invalid character)" );
+ }
+ catch ( ParseException pe )
+ {
+ // expected
+ }
+
+ // one valid, one invalid
+ value = "( " + oid + " " + required + " NAME ( 'test' 'te_st' ) )";
+ try
+ {
+ parser.parse( value );
+ Assert.fail( "Exception expected, invalid NAME te_st (contains invalid character)" );
+ }
+ catch ( ParseException pe )
+ {
+ // expected
+ }
}
}
-
-
+
+
/**
* Tests DESC
*
* @throws ParseException
*/
- public static void testDescription( AbstractSchemaParser parser, String oid, String required ) throws ParseException
+ public static void testDescription( AbstractSchemaParser parser, String oid, String required )
+ throws ParseException
{
String value = null;
AbstractSchemaDescription asd = null;
// simple
- value = "("+oid+" "+required+" DESC 'Descripton')";
+ value = "(" + oid + " " + required + " DESC 'Descripton')";
+ asd = parser.parse( value );
+ Assert.assertEquals( "Descripton", asd.getDescription() );
+
+ // simple with tabs, newline, comment, etc.
+ value = "(" + oid + "\n" + required + "\tDESC#comment\n\n\r\n\r\t'Descripton')";
+ asd = parser.parse( value );
+ Assert.assertEquals( "Descripton", asd.getDescription() );
+
+ // simple w/o space
+ value = "(" + oid + " " + required + " DESC'Descripton')";
+ asd = parser.parse( value );
+ Assert.assertEquals( "Descripton", asd.getDescription() );
+
+ // simple parentheses and quotes
+ value = "(" + oid + " " + required + " DESC ('Descripton') )";
asd = parser.parse( value );
Assert.assertEquals( "Descripton", asd.getDescription() );
// unicode
- value = "( "+oid+" "+required+" DESC 'Descripton \u00E4\u00F6\u00FC\u00DF \u90E8\u9577' )";
+ value = "( " + oid + " " + required + " DESC 'Descripton \u00E4\u00F6\u00FC\u00DF \u90E8\u9577' )";
asd = parser.parse( value );
Assert.assertEquals( "Descripton \u00E4\u00F6\u00FC\u00DF \u90E8\u9577", asd.getDescription() );
-
+
// escaped characters
- value = "( "+oid+" "+required+" DESC 'test\\5Ctest' )";
+ value = "( " + oid + " " + required + " DESC 'test\\5Ctest' )";
asd = parser.parse( value );
Assert.assertEquals( "test\\test", asd.getDescription() );
- value = "( "+oid+" "+required+" DESC 'test\\5ctest' )";
+ value = "( " + oid + " " + required + " DESC 'test\\5ctest' )";
asd = parser.parse( value );
Assert.assertEquals( "test\\test", asd.getDescription() );
- value = "( "+oid+" "+required+" DESC 'test\\27test' )";
+ value = "( " + oid + " " + required + " DESC 'test\\27test' )";
asd = parser.parse( value );
Assert.assertEquals( "test'test", asd.getDescription() );
- value = "( "+oid+" "+required+" DESC '\\5C\\27\\5c' )";
+ value = "( " + oid + " " + required + " DESC '\\5C\\27\\5c' )";
asd = parser.parse( value );
Assert.assertEquals( "\\'\\", asd.getDescription() );
-
- // lowercase
- value = "( "+oid+" "+required+" desc 'Descripton' )";
+
+ // lowercase DESC
+ value = "( " + oid + " " + required + " desc 'Descripton' )";
+ asd = parser.parse( value );
+ Assert.assertEquals( "Descripton", asd.getDescription() );
+
+ // empty DESC
+ value = "( " + oid + " " + required + " DESC '' )";
+ asd = parser.parse( value );
+ Assert.assertEquals( "", asd.getDescription() );
+
+ // multiple not allowed
+ value = "(" + oid + " " + required + " DESC ( 'Descripton1' 'Description 2' ) )";
try
{
parser.parse( value );
- Assert.fail( "Exception expected, DESC is lowercase" );
+ Assert.fail( "Exception expected, invalid multiple DESC not allowed.)" );
}
catch ( ParseException pe )
{
- Assert.assertTrue( true );
+ // expected
}
-
}
-
-
+
+
/**
* Test extensions.
*
@@ -389,12 +436,12 @@
AbstractSchemaDescription asd = null;
// no extension
- value = "( "+oid+" "+required+" )";
+ value = "( " + oid + " " + required + " )";
asd = parser.parse( value );
Assert.assertEquals( 0, asd.getExtensions().size() );
// single extension with one value
- value = "( "+oid+" "+required+" X-TEST 'test' )";
+ value = "( " + oid + " " + required + " X-TEST 'test' )";
asd = parser.parse( value );
Assert.assertEquals( 1, asd.getExtensions().size() );
Assert.assertNotNull( asd.getExtensions().get( "X-TEST" ) );
@@ -402,7 +449,8 @@
Assert.assertEquals( "test", asd.getExtensions().get( "X-TEST" ).get( 0 ) );
// single extension with multiple values
- value = "( "+oid+" "+required+" X-TEST-ABC ('test1' 'test \u00E4\u00F6\u00FC\u00DF' 'test \u90E8\u9577' ) )";
+ value = "( " + oid + " " + required
+ + " X-TEST-ABC ('test1' 'test \u00E4\u00F6\u00FC\u00DF' 'test \u90E8\u9577' ) )";
asd = parser.parse( value );
Assert.assertEquals( 1, asd.getExtensions().size() );
Assert.assertNotNull( asd.getExtensions().get( "X-TEST-ABC" ) );
@@ -412,7 +460,34 @@
Assert.assertEquals( "test \u90E8\u9577", asd.getExtensions().get( "X-TEST-ABC" ).get( 2 ) );
// multiple extensions
- value = "("+oid+" "+required+" X-TEST-a ('test1-1' 'test1-2') X-TEST-b ('test2-1' 'test2-2'))";
+ value = "(" + oid + " " + required + " X-TEST-a ('test1-1' 'test1-2') X-TEST-b ('test2-1' 'test2-2'))";
+ asd = parser.parse( value );
+ Assert.assertEquals( 2, asd.getExtensions().size() );
+ Assert.assertNotNull( asd.getExtensions().get( "X-TEST-a" ) );
+ Assert.assertEquals( 2, asd.getExtensions().get( "X-TEST-a" ).size() );
+ Assert.assertEquals( "test1-1", asd.getExtensions().get( "X-TEST-a" ).get( 0 ) );
+ Assert.assertEquals( "test1-2", asd.getExtensions().get( "X-TEST-a" ).get( 1 ) );
+ Assert.assertNotNull( asd.getExtensions().get( "X-TEST-b" ) );
+ Assert.assertEquals( 2, asd.getExtensions().get( "X-TEST-b" ).size() );
+ Assert.assertEquals( "test2-1", asd.getExtensions().get( "X-TEST-b" ).get( 0 ) );
+ Assert.assertEquals( "test2-2", asd.getExtensions().get( "X-TEST-b" ).get( 1 ) );
+
+ // multiple extensions, no spaces
+ value = "(" + oid + " " + required + " X-TEST-a('test1-1''test1-2')X-TEST-b('test2-1''test2-2'))";
+ asd = parser.parse( value );
+ Assert.assertEquals( 2, asd.getExtensions().size() );
+ Assert.assertNotNull( asd.getExtensions().get( "X-TEST-a" ) );
+ Assert.assertEquals( 2, asd.getExtensions().get( "X-TEST-a" ).size() );
+ Assert.assertEquals( "test1-1", asd.getExtensions().get( "X-TEST-a" ).get( 0 ) );
+ Assert.assertEquals( "test1-2", asd.getExtensions().get( "X-TEST-a" ).get( 1 ) );
+ Assert.assertNotNull( asd.getExtensions().get( "X-TEST-b" ) );
+ Assert.assertEquals( 2, asd.getExtensions().get( "X-TEST-b" ).size() );
+ Assert.assertEquals( "test2-1", asd.getExtensions().get( "X-TEST-b" ).get( 0 ) );
+ Assert.assertEquals( "test2-2", asd.getExtensions().get( "X-TEST-b" ).get( 1 ) );
+
+ // multiple extensions, tabs, newline, comments
+ value = "(" + oid + "\n#comment\n" + required
+ + "\nX-TEST-a\n(\t'test1-1'\t\n'test1-2'\n\r)\tX-TEST-b\n(\n'test2-1'\t'test2-2'\t)\r)";
asd = parser.parse( value );
Assert.assertEquals( 2, asd.getExtensions().size() );
Assert.assertNotNull( asd.getExtensions().get( "X-TEST-a" ) );
@@ -425,15 +500,18 @@
Assert.assertEquals( "test2-2", asd.getExtensions().get( "X-TEST-b" ).get( 1 ) );
// some more complicated
- value = "("+oid+" "+required+" X-_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ('\\5C\\27\\5c'))";
+ value = "(" + oid + " " + required
+ + " X-_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ('\\5C\\27\\5c'))";
asd = parser.parse( value );
Assert.assertEquals( 1, asd.getExtensions().size() );
Assert.assertNotNull( asd.getExtensions().get( "X-_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ) );
- Assert.assertEquals( 1, asd.getExtensions().get( "X-_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ).size() );
- Assert.assertEquals( "\\'\\", asd.getExtensions().get( "X-_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ).get( 0 ) );
-
+ Assert.assertEquals( 1, asd.getExtensions().get( "X-_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" )
+ .size() );
+ Assert.assertEquals( "\\'\\", asd.getExtensions().get(
+ "X-_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ).get( 0 ) );
+
// invalid extension, no number allowed
- value = "( "+oid+" "+required+" X-TEST1 'test' )";
+ value = "( " + oid + " " + required + " X-TEST1 'test' )";
try
{
asd = parser.parse( value );
@@ -446,7 +524,7 @@
}
-
+
/**
* Tests OBSOLETE
*
@@ -458,27 +536,32 @@
AbstractSchemaDescription asd = null;
// not obsolete
- value = "( "+oid+" "+required+" )";
+ value = "( " + oid + " " + required + " )";
asd = parser.parse( value );
Assert.assertFalse( asd.isObsolete() );
// not obsolete
- value = "( "+oid+" "+required+" NAME 'test' DESC 'Descripton' )";
+ value = "( " + oid + " " + required + " NAME 'test' DESC 'Descripton' )";
asd = parser.parse( value );
Assert.assertFalse( asd.isObsolete() );
-
+
// obsolete
- value = "("+oid+" "+required+" NAME 'test' DESC 'Descripton' OBSOLETE)";
+ value = "(" + oid + " " + required + " NAME 'test' DESC 'Descripton' OBSOLETE)";
asd = parser.parse( value );
Assert.assertTrue( asd.isObsolete() );
// obsolete
- value = "("+oid+" "+required+" OBSOLETE)";
+ value = "(" + oid + " " + required + " OBSOLETE)";
asd = parser.parse( value );
Assert.assertTrue( asd.isObsolete() );
- // ivalid
- value = "("+oid+" "+required+" NAME 'test' DESC 'Descripton' OBSOLET )";
+ // lowercased obsolete
+ value = "(" + oid + " " + required + " obsolete)";
+ asd = parser.parse( value );
+ Assert.assertTrue( asd.isObsolete() );
+
+ // invalid
+ value = "(" + oid + " " + required + " NAME 'test' DESC 'Descripton' OBSOLET )";
try
{
asd = parser.parse( value );
@@ -488,9 +571,9 @@
{
// expected
}
-
+
// trailing value not allowed
- value = "("+oid+" "+required+" NAME 'test' DESC 'Descripton' OBSOLETE 'true' )";
+ value = "(" + oid + " " + required + " NAME 'test' DESC 'Descripton' OBSOLETE 'true' )";
try
{
asd = parser.parse( value );
@@ -500,11 +583,10 @@
{
Assert.assertTrue( true );
}
-
+
}
-
-
-
+
+
/**
* Tests for unique elements.
*
@@ -518,17 +600,17 @@
try
{
parser.parse( testValue );
- Assert.fail( "Exception expected, element appears twice in "+testValue );
+ Assert.fail( "Exception expected, element appears twice in " + testValue );
}
catch ( ParseException pe )
{
Assert.assertTrue( true );
}
}
-
+
}
-
-
+
+
/**
* Tests the multithreaded use of a single parser.
*/
@@ -536,7 +618,7 @@
{
final boolean[] isSuccessMultithreaded = new boolean[1];
isSuccessMultithreaded[0] = true;
-
+
// start up and track all threads (40 threads)
List<Thread> threads = new ArrayList<Thread>();
for ( int ii = 0; ii < 10; ii++ )
@@ -565,7 +647,47 @@
// check that no one thread failed to parse and generate a SS object
Assert.assertTrue( isSuccessMultithreaded[0] );
-
+
+ }
+
+
+ /**
+ * Tests quirks mode.
+ */
+ public static void testQuirksMode( AbstractSchemaParser parser, String required ) throws ParseException
+ {
+ try
+ {
+ String value = null;
+ AbstractSchemaDescription asd = null;
+
+ parser.setQuirksMode( true );
+
+ // alphanum OID
+ value = "( abcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789 " + required + " )";
+ asd = parser.parse( value );
+ Assert.assertEquals( "abcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789", asd
+ .getNumericOid() );
+
+ // start with hypen
+ value = "( -oid " + required + " )";
+ asd = parser.parse( value );
+ Assert.assertEquals( "-oid", asd.getNumericOid() );
+
+ // start with number
+ value = "( 1oid " + required + " )";
+ asd = parser.parse( value );
+ Assert.assertEquals( "1oid", asd.getNumericOid() );
+
+ // start with dot
+ value = "( .oid " + required + " )";
+ asd = parser.parse( value );
+ Assert.assertEquals( ".oid", asd.getNumericOid() );
+ }
+ finally
+ {
+ parser.setQuirksMode( false );
+ }
}
static class ParseSpecification implements Runnable
@@ -573,17 +695,18 @@
private final AbstractSchemaParser parser;
private final String value;
private final boolean[] isSuccessMultithreaded;
-
+
private AbstractSchemaDescription result;
-
+
+
public ParseSpecification( AbstractSchemaParser parser, String value, boolean[] isSuccessMultithreaded )
{
this.parser = parser;
this.value = value;
this.isSuccessMultithreaded = isSuccessMultithreaded;
}
-
-
+
+
public void run()
{
try
@@ -594,10 +717,9 @@
{
e.printStackTrace();
}
-
+
isSuccessMultithreaded[0] = isSuccessMultithreaded[0] && ( result != null );
}
}
-
-
+
}
Modified: directory/shared/branches/bigbang/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/parser/SyntaxCheckerDescriptionSchemaParserTest.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/bigbang/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/parser/SyntaxCheckerDescriptionSchemaParserTest.java?rev=664290&r1=664289&r2=664290&view=diff
==============================================================================
--- directory/shared/branches/bigbang/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/parser/SyntaxCheckerDescriptionSchemaParserTest.java (original)
+++ directory/shared/branches/bigbang/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/parser/SyntaxCheckerDescriptionSchemaParserTest.java Fri Jun 6 23:28:06 2008
@@ -56,7 +56,7 @@
}
- public void testNumericOid() throws Exception
+ public void testNumericOid() throws ParseException
{
SchemaParserTestUtils.testNumericOid( parser, "FQCN org.apache.directory.SimpleComparator" );
}
@@ -70,7 +70,6 @@
public void testFqcn() throws ParseException
{
-
String value = null;
SyntaxCheckerDescription scd = null;
@@ -79,13 +78,11 @@
scd = parser.parseSyntaxCheckerDescription( value );
assertNotNull( scd.getFqcn() );
assertEquals( "org.apache.directory.SimpleComparator", scd.getFqcn() );
-
}
public void testBytecode() throws ParseException
{
-
String value = null;
SyntaxCheckerDescription scd = null;
@@ -94,7 +91,6 @@
scd = parser.parseSyntaxCheckerDescription( value );
assertNotNull( scd.getBytecode() );
assertEquals( "ABCDEFGHIJKLMNOPQRSTUVWXYZ+/abcdefghijklmnopqrstuvwxyz0123456789====", scd.getBytecode() );
-
}
@@ -132,7 +128,7 @@
}
- public void testSimpleSyntaxChecker() throws Exception
+ public void testSimpleSyntaxChecker() throws ParseException
{
String simple = "( " + OID + " FQCN " + FQCN + " )";
SyntaxCheckerDescription desc = parser.parseSyntaxCheckerDescription( simple );
@@ -144,7 +140,7 @@
}
- public void testSyntaxCheckerWithDesc() throws Exception
+ public void testSyntaxCheckerWithDesc() throws ParseException
{
String simple = "( " + OID + " DESC '" + DESC + "' FQCN " + FQCN + " )";
SyntaxCheckerDescription desc = parser.parseSyntaxCheckerDescription( simple );
@@ -156,7 +152,7 @@
}
- public void testSyntaxCheckerWithDescAndByteCode() throws Exception
+ public void testSyntaxCheckerWithDescAndByteCode() throws ParseException
{
String simple = "( " + OID + " DESC '" + DESC + "' FQCN " + FQCN + " BYTECODE " + BYTECODE + " )";
SyntaxCheckerDescription desc = parser.parseSyntaxCheckerDescription( simple );
@@ -168,7 +164,7 @@
}
- public void testSyntaxCheckerExample() throws Exception
+ public void testSyntaxCheckerExample() throws ParseException
{
String simple = "( 1.3.6.1.4.1.18060.0.4.1.0.10000 DESC 'bogus desc' FQCN org.apache.directory.shared.ldap.schema.syntax.AcceptAllSyntaxChecker )";
SyntaxCheckerDescription desc = parser.parseSyntaxCheckerDescription( simple );
@@ -176,7 +172,7 @@
}
- public void testRealByteCodeExample() throws Exception
+ public void testRealByteCodeExample() throws ParseException
{
String simple = "( 1.3.6.1.4.1.18060.0.4.1.0.10002 DESC 'bogus desc' "
+ "FQCN DummySyntaxChecker BYTECODE yv66vgAAADEAHgoABAAYCQADABkHABoHABsHABwBAANvaWQBABJMam"
@@ -204,9 +200,42 @@
/**
* Tests the multithreaded use of a single parser.
*/
- public void testMultiThreaded() throws Exception
+ public void testMultiThreaded() throws ParseException
{
// TODO
}
+
+ /**
+ * Tests quirks mode.
+ */
+ public void testQuirksMode() throws ParseException
+ {
+ SchemaParserTestUtils.testQuirksMode( parser, "FQCN org.apache.directory.SimpleComparator" );
+
+ try
+ {
+ parser.setQuirksMode( true );
+
+ // ensure all other test pass in quirks mode
+ testNumericOid();
+ testDescription();
+ testFqcn();
+ testBytecode();
+ testExtensions();
+ testFull();
+ testUniqueElements();
+ testSimpleSyntaxChecker();
+ testSyntaxCheckerWithDesc();
+ testSyntaxCheckerWithDescAndByteCode();
+ testSyntaxCheckerExample();
+ testRealByteCodeExample();
+ testMultiThreaded();
+ }
+ finally
+ {
+ parser.setQuirksMode( false );
+ }
+ }
+
}
Modified: directory/shared/branches/bigbang/ldap/src/test/java/org/apache/directory/shared/ldap/trigger/TriggerSpecificationParserTest.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/bigbang/ldap/src/test/java/org/apache/directory/shared/ldap/trigger/TriggerSpecificationParserTest.java?rev=664290&r1=664289&r2=664290&view=diff
==============================================================================
--- directory/shared/branches/bigbang/ldap/src/test/java/org/apache/directory/shared/ldap/trigger/TriggerSpecificationParserTest.java (original)
+++ directory/shared/branches/bigbang/ldap/src/test/java/org/apache/directory/shared/ldap/trigger/TriggerSpecificationParserTest.java Fri Jun 6 23:28:06 2008
@@ -193,8 +193,8 @@
TriggerSpecification triggerSpecification = null;
String spec = "AFTER Delete " +
- "CALL \"BackupUtilities.backupDeletedEntry\" ($ldapContext \"ou=Backup,ou=System\", $name, $deletedEntry); " +
- "CALL \"BackupUtilities.recreateDeletedEntry\" ($name, $deletedEntry);";
+ "CALL \"BackupUtilities.backupDeletedEntry\" ($ldapContext \"ou=Backup,ou=System\", $name, $deletedEntry); " +
+ "CALL \"BackupUtilities.recreateDeletedEntry\" ($name, $deletedEntry);";
triggerSpecification = parser.parse( spec );