]> git.sur5r.net Git - openldap/blobdiff - tests/data/test-dn.ldif
cleanup
[openldap] / tests / data / test-dn.ldif
index 752900f87d6443e750a5b59ed473a3bc84e24148..74c66ab3f102b72dac5af5d5094021892eea5f04 100644 (file)
-# Regular DNs
-dn: dc=net
-objectClass: domain
-dc: net
-seeAlso:
-
-dn: dc=example,dc=net
+# Tree Structure
+dn: dc=example,dc=com
 objectClass: domain
 objectClass: domainRelatedObject
 dc: example
-associatedDomain: example.net
+associatedDomain: example.com
+
+dn: ou=LDAPv3,dc=example,dc=com
+objectClass: organizationalUnit
+ou: LDAPv3
+description: RFC 2253 compliant DN string representation
+
+dn: cn=Must Succeed,ou=LDAPv3,dc=example,dc=com
+objectClass: groupOfNames
+cn: Must Succeed
+# at least one member must be present; thus we use the entry's DN
+member: cn=Must Succeed,ou=LDAPv3,dc=example,dc=com
+# specific DN forms
+member: 
+member: UID=jsmith,DC=example,DC=net
+member: OU=Sales+CN=J. Smith,DC=example,DC=net
+member: CN=John Smith\, III,DC=example,DC=net
+member: OU=Sales\; Data\+Algorithms,DC=example,DC=net
+member: CN=Before\0dAfter,DC=example,DC=net
+member: CN=\23John Smith\20,DC=example,DC=net
+member: CN=Lu\C4\8Di\C4\87
+# DN forms already defined as "member" in a different string representation
+seeAlso: CN=John Smith\2C III,DC=example,DC=net
+seeAlso: OU=Sales\3B Data\2BAlgorithms,DC=example,DC=net
+seeAlso: CN=\#John Smith\ ,DC=example,DC=net
+# comment
+description: "member" values contain specific DN forms;
+description: "seeAlso" values contain DN forms already defined as "member",
+description: but in a different string representation;
+description: the following "description" values contain the "member" and
+description: "seeAlso" DN string representations used above.
+# list here all string representations used above in "member" and "seeAlso"
+description: ""
+description: UID=jsmith,DC=example,DC=net
+description: OU=Sales+CN=J. Smith,DC=example,DC=net
+description: CN=John Smith\, III,DC=example,DC=net
+description: CN=John Smith\2C III,DC=example,DC=net
+description: OU=Sales\; Data\+Algorithms,DC=example,DC=net
+description: OU=Sales\3B Data\2BAlgorithms,DC=example,DC=net
+description: CN=Before\0dAfter,DC=example,DC=net
+description: CN=\23John Smith\20,DC=example,DC=net
+description: CN=\#John Smith\ ,DC=example,DC=net
+description: CN=Lu\C4\8Di\C4\87
+
+dn: cn=Should Succeed,ou=LDAPv3,dc=example,dc=com
+objectClass: groupOfNames
+cn: Should Succeed
+member: cn=Should Succeed,ou=LDAPv3,dc=example,dc=com
+member: 1.3.6.1.4.1.1466.0=#04024869,DC=example,DC=com
+member: 1.1.1=
+description: 1.3.6.1.4.1.1466.0=#04024869,DC=example,DC=com
+description: 1.1.1=
+
+dn: cn=Unescaped Equals,ou=LDAPv3,dc=example,dc=com
+objectClass: groupOfNames
+cn: Unescaped Equals
+member: cn=Unescaped Equals,ou=LDAPv3,dc=example,dc=com
+member: cn=A*x=b is a linear algebra problem,ou=LDAPv3,dc=example,dc=com
+description: cn=A*x=b is a linear algebra problem,ou=LDAPv3,dc=example,dc=com // unescaped EQUALS
+
+dn: cn=Must Fail 1,ou=Groups,dc=example,dc=com
+objectClass: groupOfNames
+cn: Must Fail 1
+member: uid;x-option=jsmith
+description: uid;x-option=jsmith // option
+
+dn: cn=Must Fail 2,ou=Groups,dc=example,dc=com
+objectClass: groupOfNames
+cn: Must Fail 2
+member: at_tr=jsmith
+description: at_tr=jsmith // invalid attribute type name
+
+dn: cn=Must Fail 3,ou=Groups,dc=example,dc=com
+objectClass: groupOfNames
+cn: Must Fail 3
+member: -attr=jsmith
+description: -attr=jsmith // invalid attribute type name
+
+dn: cn=Must Fail 4,ou=Groups,dc=example,dc=com
+objectClass: groupOfNames
+cn: Must Fail 4
+
+dn: cn=Must Fail 5,ou=Groups,dc=example,dc=com
+objectClass: groupOfNames
+cn: Must Fail 5
+member: 1..1=jsmith
+description: 1..1=jsmith // invalid numeric OID
+
+dn: cn=Must Fail 6,ou=Groups,dc=example,dc=com
+objectClass: groupOfNames
+cn: Must Fail 6
+member: 1.1.=jsmith
+description: 1.1.=jsmith // invalid numeric OID
+
+dn: cn=Must Fail 7,ou=Groups,dc=example,dc=com
+objectClass: groupOfNames
+cn: Must Fail 7
+member: 01.1=jsmith
+description: 01.1=jsmith // invalid numeric OID
+
+dn: cn=Must Fail 8,ou=Groups,dc=example,dc=com
+objectClass: groupOfNames
+cn: Must Fail 8
+member: 1.ff=jsmith
+description: 1.ff=jsmith // invalid numeric OID
+
+dn: cn=Must Fail 9,ou=Groups,dc=example,dc=com
+objectClass: groupOfNames
+cn: Must Fail 9
+member: 1.1.1=#GG
+description: 1.1.1=#GG // invalid HEX form
+
+dn: cn=Must Fail 10,ou=Groups,dc=example,dc=com
+objectClass: groupOfNames
+cn: Must Fail 10
+member: 1.1.1=#000
+description: 1.1.1=#000 // invalid HEX form
+
+dn: cn=Must Fail 11,ou=Groups,dc=example,dc=com
+objectClass: groupOfNames
+cn: Must Fail 11
+member: 1.1.1=#F
+description: 1.1.1=#F // invalid HEX form
+
+dn: cn=Must Fail 12,ou=Groups,dc=example,dc=com
+objectClass: groupOfNames
+cn: Must Fail 12
+member: 1.1.1=#
+description: 1.1.1=# // invalid HEX form
+
+dn: cn=Must Fail 13,ou=Groups,dc=example,dc=com
+objectClass: groupOfNames
+cn: Must Fail 13
+member: UID=jsmith,,DC=example,DC=net
+description: UID=jsmith,,DC=example,DC=net // extra comma
+
+dn: cn=Must Fail 14,ou=Groups,dc=example,dc=com
+objectClass: groupOfNames
+cn: Must Fail 14
+member: UID=john,smith
+description: UID=john,smith // unescaped ,
+
+dn: cn=Must Fail 15,ou=Groups,dc=example,dc=com
+objectClass: groupOfNames
+cn: Must Fail 15
+member: UID=john+smith
+description: UID=john+smith // unescaped +
+
+dn: cn=Must Fail 16,ou=Groups,dc=example,dc=com
+objectClass: groupOfNames
+cn: Must Fail 16
+member: UID=john\?smith
+description: UID=john\?smith // invalid escape of ? or unescaped \
+
+dn: cn=Must Fail 17,ou=Groups,dc=example,dc=com
+objectClass: groupOfNames
+cn: Must Fail 17
+member: UID=john\Fsmith
+description: UID=john\Fsmith // invalid HEX escape
+
+dn: cn=Must Fail 18,ou=Groups,dc=example,dc=com
+objectClass: groupOfNames
+cn: Must Fail 18
+member: UID=john\GGsmith
+description: UID=john\GGsmith // invalid HEX escape
+
+# String representations we should accept for compatibility with RFC1779
+dn: ou=LDAPv2,dc=example,dc=com
+objectClass: organizationalUnit
+ou: LDAPv2
+description: RFC 1779 compliant DN string representation
+
+dn: cn=May Succeed 1,ou=LDAPv2,dc=example,dc=com
+objectClass: groupOfNames
+cn: May Succeed 1
+member:  
+description: " " // space, quote characters (") are not part of the string
+
+dn: cn=May Succeed 2,ou=LDAPv2,dc=example,dc=com
+objectClass: groupOfNames
+cn: May Succeed 2
+member: OID.0.9.2342.19200300.100.1.1=jsmith
+description: OID.0.9.2342.19200300.100.1.1=jsmith // invalid attribute type name
+
+dn: cn=May Succeed 3,ou=LDAPv2,dc=example,dc=com
+objectClass: groupOfNames
+cn: May Succeed 3
+member: UID=jsmith, O=example, C=US
+description: UID=jsmith, O=example, C=US // spaces
+
+dn: cn=May Succeed 4,ou=LDAPv2,dc=example,dc=com
+objectClass: groupOfNames
+cn: May Succeed 4
+member: UID=jsmith;O=example;C=US
+description: UID=jsmith;O=example;C=US // semi-colons
+
+dn: cn=May Succeed 5,ou=LDAPv2,dc=example,dc=com
+objectClass: groupOfNames
+cn: May Succeed 5
+member: <UID=jsmith,O=example,C=US>
+description: <UID=jsmith,O=example,C=US> // brackets
+
+dn: cn=May Succeed 6,ou=LDAPv2,dc=example,dc=com
+objectClass: groupOfNames
+cn: May Succeed 6
+member: CN="John Smith",O=example,C=US
+description: CN="John Smith",O=example,C=US // quotes
+
+# Other DN-related syntaxes
+dn: ou=Related Syntaxes,dc=example,dc=com
+objectClass: organizationalUnit
+ou: Related Syntaxes
+
+# Name and Optional UID
+dn: cn=Name and Optional UID,ou=Related Syntaxes,dc=example,dc=com
+objectClass: groupOfUniqueNames
+cn: Name and Optional UID
+uniqueMember: cn=Name and Optional UID,ou=Related Syntaxes,dc=example,dc=com
+uniqueMember: #'1'B
+uniqueMember: #'0010'B
+uniqueMember: dc=example,dc=com#'1000'B
+uniqueMember: dc=example,dc=com#'0'B
+description: cn=Name and Optional UID,ou=Related Syntaxes,dc=example,dc=com // only DN portion
+description: #'1'B // empty "" DN
+description: #'0010'B // empty "" DN with leading '0's
+description: dc=example,dc=com#'1000'B // with DN portion
+description: dc=example,dc=com#'0'B // with DN portion and just one '0'
+
+dn: cn=Should Fail 1,cn=Name and Optional UID,ou=Related Syntaxes,dc=example,dc=com
+objectClass: groupOfUniqueNames
+cn: Should Fail 1
+uniqueMember: #'1234'B
+description: #'1234'B // illegal digits other than '0' and '1'
+
+dn: cn=Should Fail 2,cn=Name and Optional UID,ou=Related Syntaxes,dc=example,dc=com
+objectClass: groupOfUniqueNames
+cn: Should Fail 2
+uniqueMember: #'12ABCD'B
+description: #'12ABCD'B // illegal digits and chars other than '0' and '1'
+
+dn: cn=Should Parse as DN,cn=Name and Optional UID,ou=Related Syntaxes,dc=example,dc=com
+objectClass: groupOfUniqueNames
+cn: Should Parse as DN
+uniqueMember: dc=example,dc=com#0'B
+uniqueMember: dc=example,dc=com#'0B
+uniqueMember: dc=example,dc=com '0'B
+description: dc=example,dc=com#0'B // malformed UID?
+description: dc=example,dc=com#'0B // malformed UID?
+description: dc=example,dc=com '0'B // malformed UID?
 
 #  UID=jsmith,DC=example,DC=net                          [AoOn]
 #  304631133011060A0992268993F22C64011916036E657431      [AoO]
 #  173015060A0992268993F22C64011916076578616D706C65
 #  31163014060A0992268993F22C64010113066A736D697468
-dn: UID=jsmith,DC=example,DC=net
-objectClass: inetOrgPerson
-cn: J. Smith
-sn: Smith
-uid: jsmith
-description: UID=jsmith,DC=example,DC=net
-
+#
 #  OU=Sales+CN=J. Smith,DC=example,DC=net                [AoOn]
 #  304F31133011060A0992268993F22C64011916036E657431      [AoO]
 #  173015060A0992268993F22C64011916076578616D706C65
 #  311F300C060355040B130553616C6573300F060355040313
 #  084A2E20536D697468
-dn: OU=Sales+CN=J. Smith,DC=example,DC=net
-objectClass: inetOrgPerson
-cn: J. Smith
-sn: Smith
-ou: Sales
-description: OU=Sales+CN=J. Smith,DC=example,DC=net
-
+#
 #  CN=John Smith\, III,DC=example,DC=net                 [AoOn]
 #  304831133011060A0992268993F22C64011916036E657431      [AoO]
 #  173015060A0992268993F22C64011916076578616D706C65
 #  311830160603550403130F4A6F686E20536D6974682C2049
 #  4949
-
+#
 #  CN=John Smith\2C III,DC=example,DC=net                [AoOn]
 #  304831133011060A0992268993F22C64011916036E657431      [AoO]
 #  173015060A0992268993F22C64011916076578616D706C65
 #  311830160603550403130F4A6F686E20536D6974682C2049
 #  4949
-dn: CN=John Smith\, III,DC=example,DC=net
-objectClass: inetOrgPerson
-cn: John Smith, III
-sn: Smith
-seeAlso: CN=John Smith\2C III,DC=example,DC=net
-description: CN=John Smith\, III,DC=example,DC=net
-description: CN=John Smith\2C III,DC=example,DC=net
-
-dn: OU=Sales\; Data\+Algorithms,DC=example,DC=net
-objectClass: organizationalUnit
-ou: Sales; Data+Algorithms
-seeAlso: OU=Sales\3B Data\2BAlgorithms,DC=example,DC=net
-description: OU=Sales\; Data\+Algorithms,DC=example,DC=net
-description: OU=Sales\3B Data\2BAlgorithms,DC=example,DC=net
-
+#
 #  CN=Before\0dAfter,DC=example,DC=net                   [AoOn]
 #  304531133011060A0992268993F22C64011916036E657431      [AoO]
 #  173015060A0992268993F22C64011916076578616D706C65
 #  3115301306035504030C0C4265666F72650D4166746572
-dn: CN=Before\0dAfter,DC=example,DC=net
-objectClass: groupOfNames
-cn:: QmVmb3JlDUFmdGVy
-member: CN=Before\0dAfter,DC=example,DC=net
-description: CN=Before\0dAfter,DC=example,DC=net
-
+#
 #  CN=\23John Smith\20,DC=example,DC=net                 [AoOn]
 #  304531133011060A0992268993F22C64011916036E657431      [AoO]
 #  173015060A0992268993F22C64011916076578616D706C65
 #  311530130603550403140C234A6F686E20536D69746820
-
+#
 #  CN=\#John Smith\ ,DC=example,DC=net                   [AoOn]
 #  304531133011060A0992268993F22C64011916036E657431      [AoO]
 #  173015060A0992268993F22C64011916076578616D706C65
 #  311530130603550403140C234A6F686E20536D69746820
-dn: CN=\23John Smith\20,DC=example,DC=net
-objectClass: inetOrgPerson
-cn:: I0pvaG4gU21pdGgg
-sn: Smith
-seeAlso: CN=\#John Smith\ ,DC=example,DC=net
-description: CN=\23John Smith\20,DC=example,DC=net
-description: CN=\#John Smith\ ,DC=example,DC=net
-
+#
+#  FIXME: currently doesn't work
 #  1.3.6.1.4.1.1466.0=#04024869,DC=example,DC=com        [AoOn]
 #  304031133011060A0992268993F22C64011916036E657431      [AoO]
 #  173015060A0992268993F22C64011916076578616D706C65
 #  3110300E06082B060104018B3A0004024869
-#  FIXME
-dn: 1.3.6.1.4.1.1466.0=#04024869,DC=example,DC=com
-objectClass: top
-
+#
 #  CN=Lu\C4\8Di\C4\87                                    [AoOn]
 #  30123110300E06035504030C074C75C48D69C487              [AoO]
-dn: CN=Lu\C4\8Di\C4\87
-objectClass: inetOrgPerson
-cn:: THXEjWnEhw==
-sn:: THXEjWnEhw==
-description: CN=Lu\C4\8Di\C4\87
-
+#
+#  FIXME: currently doesn't work
 #  1.1.1=    // empty value                              [AoO]
 #  300A31083006060229011300                              [AoO]
-#  FIXME
-dn: 1.1.1=
-objectClass: top
-
+#
 #Invalid DNs
 #  // some implementations may be liberal in what they accept
 #  // but should strict in what they produce.
-
+#
 #  uid;x-option=jsmith   // option                       [oOn]
-dn: uid;x-option=jsmith
-objectClass: inetOrgPerson
-cn: J. Smith
-sn: Smith
-uid;x-option: jsmith
-
+#
 #  at_tr=jsmith          // invalid attribute type name  [AoOn]
-dn: at_tr=jsmith
-objectClass: top
-
+#
 #  -attr=jsmith          // invalid attribute type name  [AoOn]
-dn: -attr=jsmith
-objectClass: top
-
+#
 #  1..1=jsmith           // invalid numeric OID          [AoO]
-dn: 1..1=jsmith
-objectClass: top
-
+#
 #  1.1.=jsmith           // invalid numeric OID          [AoO]
-dn: 1.1.=jsmith
-objectClass: top
-
+#
 #  01.1=jsmith           // invalid numeric OID          [oO]
-dn: 01.1=jsmith
-objectClass: top
-
+#
 #  1.ff=jsmith           // invalid numeric OID          [AoOn]
-dn: 1.ff=jsmith
-objectClass: top
-
+#
 #  1.1.1=#GG             // invalid HEX form             [AoOn]
-dn: 1.1.1=#GG
-objectClass: top
-
+#
 #  1.1.1=#000            // invalid HEX form             [AoO]
-dn: 1.1.1=#000
-objectClass: top
-
+#
 #  1.1.1=#F              // invalid HEX form             [AoO]
-dn: 1.1.1=#F
-objectClass: top
-
+#
 #  1.1.1=#               // invalid HEX form             [AoO]
-dn: 1.1.1=#
-objectClass: top
-
+#
 #  UID=jsmith,,DC=example,DC=net  // extra comma         [AoOn]
-dn: UID=jsmith,,DC=example,DC=net
-objectClass: inetOrgPerson
-cn: J. Smith
-sn: Smith
-uid: jsmith
-
+#
 #  UID=john,smith        // unescaped ,                  [AoOn]
-dn: UID=john,smith
-objectClass: inetOrgPerson
-cn: J. Smith
-sn: Smith
-uid: john
-
+#
 #  UID=john+smith        // unescaped +                  [AoOn]
-dn: UID=john+smith
-objectClass: inetOrgPerson
-cn: J. Smith
-sn: Smith
-uid: john
-
+#
 #  UID=john\?smith       // invalid escape of ? or unescaped \ [oOn]
-dn: UID=john\?smith
-objectClass: inetOrgPerson
-cn: J. Smith
-sn: Smith
-uid: john?smith
-
+#
 #  UID=john\Fsmith       // invalid hex escape           [AoOn]
-dn: UID=john\Fsmith
-objectClass: inetOrgPerson
-cn: J. Smith
-sn: Smith
-
+#
 #  UID=john\GGsmith      // invalid hex escape           [oOn]
-dn: UID=john\GGsmith
-objectClass: inetOrgPerson
-cn: J. Smith
-sn: Smith
-
-
+#
 #The following strings are invalid for use in LDAPv3, but were
 #legal in LDAPv2 (RFC 1779).  Some LDAPv3 implementations are
 #liberal in accepting these but should not generate them.
-
+#
 #  " " // space, quote characters (") are not part of the string
-
+#
 #  OID.1.1=jsmith                    // invalid attribute type name
-dn: OID.0.9.2342.19200300.100.1.1=jsmith
-objectClass: inetOrgPerson
-cn: J. Smith
-sn: Smith
-uid: jsmith
-description: OID.0.9.2342.19200300.100.1.1=jsmith
-
-dn: C=US
-objectClass: country
-c: US
-
-dn: O=example, C=US
-objectClass: organization
-o: example
-
+#
 #  UID=jsmith, O=example, C=US       // spaces
+#
 #  UID=jsmith;O=example;C=US         // semi-colons
-dn: UID=jsmith, O=example, C=US
-objectClass: inetOrgPerson
-cn: J. Smith
-sn: Smith
-uid: jsmith
-seeAlso: UID=jsmith;O=example;C=US
-description: UID=jsmith, O=example, C=US
-description: UID=jsmith;O=example;C=US
-
+#
 #  <UID=jsmith,O=example,C=US>       // brackets         [AoOn]
-dn: cn=LDAPv2,O=example,C=US
-objectClass: groupOfNames
-cn: LDAPv2
-member: <UID=jsmith,O=example,C=US>
-description: <UID=jsmith,O=example,C=US>
-
+#
 #  CN="John Smith",O=example,C=US    // quotes
-dn: CN="John Smith",O=example,C=US
-objectClass: inetOrgPerson
-cn: John Smith
-sn: Smith
-description: CN="John Smith",O=example,C=US