mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-30 16:30:41 +00:00
import testsuite
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32187 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
734c214892
commit
0e02133729
374 changed files with 20864 additions and 0 deletions
84
Tests/base/NSXMLParser/ParseData/internal-document.result
Normal file
84
Tests/base/NSXMLParser/ParseData/internal-document.result
Normal file
|
@ -0,0 +1,84 @@
|
|||
parserDidStartDocument:
|
||||
parser:foundElementDeclarationWithName:model: cTree
|
||||
parser:foundAttributeDeclarationWithName:forElement:type:defaultValue: version cTree 1.0
|
||||
parser:foundElementDeclarationWithName:model: function
|
||||
parser:foundAttributeDeclarationWithName:forElement:type:defaultValue: name function (null)
|
||||
parser:foundAttributeDeclarationWithName:forElement:type:defaultValue: srcLoc function (null)
|
||||
parser:foundElementDeclarationWithName:model: argument
|
||||
parser:foundElementDeclarationWithName:model: result
|
||||
parser:didStartElement:namespaceURI:qualifiedName:attributes: cTree cTree {
|
||||
version = "1.0";
|
||||
}
|
||||
parser:foundCharacters:
|
||||
|
||||
parser:didStartElement:namespaceURI:qualifiedName:attributes: function function {
|
||||
name = ".main.dbl";
|
||||
srcLoc = "line 1.32";
|
||||
}
|
||||
parser:foundCharacters:
|
||||
|
||||
parser:didStartElement:namespaceURI:qualifiedName:attributes: argument argument {
|
||||
}
|
||||
parser:foundCharacters: .main.sqr
|
||||
parser:didEndElement:namespaceURI:qualifiedName: argument argument
|
||||
parser:foundCharacters:
|
||||
|
||||
parser:didStartElement:namespaceURI:qualifiedName:attributes: argument argument {
|
||||
}
|
||||
parser:foundCharacters: 3
|
||||
parser:didEndElement:namespaceURI:qualifiedName: argument argument
|
||||
parser:foundCharacters:
|
||||
|
||||
parser:didStartElement:namespaceURI:qualifiedName:attributes: result result {
|
||||
}
|
||||
parser:foundCharacters: 12
|
||||
parser:didEndElement:namespaceURI:qualifiedName: result result
|
||||
parser:foundCharacters:
|
||||
|
||||
parser:didStartElement:namespaceURI:qualifiedName:attributes: function function {
|
||||
name = ".main.sqr";
|
||||
srcLoc = "line 1.17";
|
||||
}
|
||||
parser:foundCharacters:
|
||||
|
||||
parser:didStartElement:namespaceURI:qualifiedName:attributes: argument argument {
|
||||
}
|
||||
parser:foundCharacters: 3
|
||||
parser:didEndElement:namespaceURI:qualifiedName: argument argument
|
||||
parser:foundCharacters:
|
||||
|
||||
parser:didStartElement:namespaceURI:qualifiedName:attributes: result result {
|
||||
}
|
||||
parser:foundCharacters: 6
|
||||
parser:didEndElement:namespaceURI:qualifiedName: result result
|
||||
parser:foundCharacters:
|
||||
|
||||
parser:didEndElement:namespaceURI:qualifiedName: function function
|
||||
parser:foundCharacters:
|
||||
|
||||
parser:didStartElement:namespaceURI:qualifiedName:attributes: function function {
|
||||
name = ".main.sqr";
|
||||
srcLoc = "line 1.17";
|
||||
}
|
||||
parser:foundCharacters:
|
||||
|
||||
parser:didStartElement:namespaceURI:qualifiedName:attributes: argument argument {
|
||||
}
|
||||
parser:foundCharacters: 6
|
||||
parser:didEndElement:namespaceURI:qualifiedName: argument argument
|
||||
parser:foundCharacters:
|
||||
|
||||
parser:didStartElement:namespaceURI:qualifiedName:attributes: result result {
|
||||
}
|
||||
parser:foundCharacters: 12
|
||||
parser:didEndElement:namespaceURI:qualifiedName: result result
|
||||
parser:foundCharacters:
|
||||
|
||||
parser:didEndElement:namespaceURI:qualifiedName: function function
|
||||
parser:foundCharacters:
|
||||
|
||||
parser:didEndElement:namespaceURI:qualifiedName: function function
|
||||
parser:foundCharacters:
|
||||
|
||||
parser:didEndElement:namespaceURI:qualifiedName: cTree cTree
|
||||
parserDidEndDocument:
|
24
Tests/base/NSXMLParser/ParseData/internal-document.xml
Normal file
24
Tests/base/NSXMLParser/ParseData/internal-document.xml
Normal file
|
@ -0,0 +1,24 @@
|
|||
<?xml version='1.0'?>
|
||||
<!DOCTYPE cTree [
|
||||
<!ELEMENT cTree (function*)>
|
||||
<!ATTLIST cTree version CDATA '1.0'>
|
||||
<!ELEMENT function (argument*,result,function*)>
|
||||
<!ATTLIST function name CDATA #REQUIRED srcLoc CDATA #IMPLIED>
|
||||
<!ELEMENT argument (#PCDATA)>
|
||||
<!ELEMENT result (#PCDATA)>
|
||||
]>
|
||||
<cTree>
|
||||
<function name='.main.dbl' srcLoc='line 1.32'>
|
||||
<argument>.main.sqr</argument>
|
||||
<argument>3</argument>
|
||||
<result>12</result>
|
||||
<function name='.main.sqr' srcLoc='line 1.17'>
|
||||
<argument>3</argument>
|
||||
<result>6</result>
|
||||
</function>
|
||||
<function name='.main.sqr' srcLoc='line 1.17'>
|
||||
<argument>6</argument>
|
||||
<result>12</result>
|
||||
</function>
|
||||
</function>
|
||||
</cTree>
|
20
Tests/base/NSXMLParser/basic.m
Normal file
20
Tests/base/NSXMLParser/basic.m
Normal file
|
@ -0,0 +1,20 @@
|
|||
#import "ObjectTesting.h"
|
||||
#import <Foundation/NSAutoreleasePool.h>
|
||||
#import <Foundation/NSXMLParser.h>
|
||||
int main()
|
||||
{
|
||||
NSAutoreleasePool *arp = [NSAutoreleasePool new];
|
||||
NSXMLParser *parser;
|
||||
|
||||
parser = [NSXMLParser new];
|
||||
test_alloc(@"NSXMLParser");
|
||||
test_NSObject(@"NSXMLParser", [NSArray arrayWithObject: parser]);
|
||||
[arp release]; arp = nil;
|
||||
|
||||
/* Don't release the parser ... it appears that on OSX there is a bug in
|
||||
* NSXMLParser such that deallocation crashes if the -self method has been
|
||||
* called on it (which is something the NSObject test does).
|
||||
[parser release];
|
||||
*/
|
||||
return 0;
|
||||
}
|
321
Tests/base/NSXMLParser/parse.m
Normal file
321
Tests/base/NSXMLParser/parse.m
Normal file
|
@ -0,0 +1,321 @@
|
|||
#import "ObjectTesting.h"
|
||||
#import <Foundation/NSAutoreleasePool.h>
|
||||
#import <Foundation/NSFileManager.h>
|
||||
#import <Foundation/NSUserDefaults.h>
|
||||
#import <Foundation/NSXMLParser.h>
|
||||
#include <string.h>
|
||||
|
||||
@interface Handler : NSObject
|
||||
{
|
||||
NSMutableString *s;
|
||||
}
|
||||
|
||||
- (void)parserDidStartDocument: (NSXMLParser *)parser;
|
||||
- (void)parserDidEndDocument: (NSXMLParser *)parser;
|
||||
- (void)parser: (NSXMLParser *)parser foundNotationDeclarationWithName: (NSString *)name publicID: (NSString *)publicID systemID: (NSString *)systemID;
|
||||
- (void)parser: (NSXMLParser *)parser foundUnparsedEntityDeclarationWithName: (NSString *)name publicID: (NSString *)publicID systemID: (NSString *)systemID notationName: (NSString *)notationName;
|
||||
- (void)parser: (NSXMLParser *)parser foundAttributeDeclarationWithName: (NSString *)attributeName forElement: (NSString *)elementName type: (NSString *)type defaultValue: (NSString *)defaultValue;
|
||||
- (void)parser: (NSXMLParser *)parser foundElementDeclarationWithName: (NSString *)elementName model: (NSString *)model;
|
||||
|
||||
- (void)parser: (NSXMLParser *)parser foundInternalEntityDeclarationWithName: (NSString *)name value: (NSString *)value;
|
||||
|
||||
- (void)parser: (NSXMLParser *)parser foundExternalEntityDeclarationWithName: (NSString *)name publicID: (NSString *)publicID systemID: (NSString *)systemID;
|
||||
|
||||
- (void)parser: (NSXMLParser *)parser didStartElement: (NSString *)elementName namespaceURI: (NSString *)namespaceURI qualifiedName: (NSString *)qName attributes: (NSDictionary *)attributeDict;
|
||||
- (void)parser: (NSXMLParser *)parser didEndElement: (NSString *)elementName namespaceURI: (NSString *)namespaceURI qualifiedName: (NSString *)qName;
|
||||
- (void)parser: (NSXMLParser *)parser didStartMappingPrefix: (NSString *)prefix toURI: (NSString *)namespaceURI;
|
||||
- (void)parser: (NSXMLParser *)parser didEndMappingPrefix: (NSString *)prefix;
|
||||
- (void)parser: (NSXMLParser *)parser foundCharacters: (NSString *)string;
|
||||
- (void)parser: (NSXMLParser *)parser foundIgnorableWhitespace: (NSString *)whitespaceString;
|
||||
- (void)parser: (NSXMLParser *)parser foundProcessingInstructionWithTarget: (NSString *)target data: (NSString *)data;
|
||||
- (void)parser: (NSXMLParser *)parser foundComment: (NSString *)comment;
|
||||
- (void)parser: (NSXMLParser *)parser foundCDATA: (NSData *)CDATABlock;
|
||||
- (NSData *)parser: (NSXMLParser *)parser resolveExternalEntityName: (NSString *)name systemID: (NSString *)systemID;
|
||||
- (void)parser: (NSXMLParser *)parser parseErrorOccurred: (NSError *)parseError;
|
||||
- (void)parser: (NSXMLParser *)parser validationErrorOccurred: (NSError *)validationError;
|
||||
@end
|
||||
|
||||
@implementation Handler
|
||||
|
||||
- (void) dealloc
|
||||
{
|
||||
[s release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (NSString*) description
|
||||
{
|
||||
return s;
|
||||
}
|
||||
|
||||
- (id) init
|
||||
{
|
||||
s = [NSMutableString new];
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void) parserDidStartDocument: (NSXMLParser *)parser
|
||||
{
|
||||
[s appendFormat: @"%@\n", NSStringFromSelector(_cmd)];
|
||||
}
|
||||
|
||||
- (void) parserDidEndDocument: (NSXMLParser *)parser
|
||||
{
|
||||
[s appendFormat: @"%@\n", NSStringFromSelector(_cmd)];
|
||||
}
|
||||
|
||||
- (void) parser: (NSXMLParser *)parser
|
||||
foundNotationDeclarationWithName: (NSString *)name
|
||||
publicID: (NSString *)publicID
|
||||
systemID: (NSString *)systemID
|
||||
{
|
||||
[s appendFormat: @"%@ %@ %@ %@\n", NSStringFromSelector(_cmd), name,
|
||||
publicID, systemID];
|
||||
}
|
||||
|
||||
- (void) parser: (NSXMLParser *)parser
|
||||
foundUnparsedEntityDeclarationWithName: (NSString *)name
|
||||
publicID: (NSString *)publicID
|
||||
systemID: (NSString *)systemID
|
||||
notationName: (NSString *)notationName
|
||||
{
|
||||
[s appendFormat: @"%@ %@ %@ %@ %@\n", NSStringFromSelector(_cmd), name,
|
||||
publicID, systemID, notationName];
|
||||
}
|
||||
|
||||
- (void) parser: (NSXMLParser *)parser
|
||||
foundAttributeDeclarationWithName: (NSString *)attributeName
|
||||
forElement: (NSString *)elementName
|
||||
type: (NSString *)type
|
||||
defaultValue: (NSString *)defaultValue
|
||||
{
|
||||
[s appendFormat: @"%@ %@ %@ %@ %@\n", NSStringFromSelector(_cmd),
|
||||
attributeName, elementName, type, defaultValue];
|
||||
}
|
||||
|
||||
- (void) parser: (NSXMLParser *)parser
|
||||
foundElementDeclarationWithName: (NSString *)elementName
|
||||
model: (NSString *)model
|
||||
{
|
||||
[s appendFormat: @"%@ %@ %@\n", NSStringFromSelector(_cmd),
|
||||
elementName, model];
|
||||
}
|
||||
|
||||
|
||||
- (void) parser: (NSXMLParser *)parser
|
||||
foundInternalEntityDeclarationWithName: (NSString *)name
|
||||
value: (NSString *)value
|
||||
{
|
||||
[s appendFormat: @"%@ %@ %@\n", NSStringFromSelector(_cmd),
|
||||
name, value];
|
||||
}
|
||||
|
||||
|
||||
- (void) parser: (NSXMLParser *)parser
|
||||
foundExternalEntityDeclarationWithName: (NSString *)name
|
||||
publicID: (NSString *)publicID
|
||||
systemID: (NSString *)systemID
|
||||
{
|
||||
[s appendFormat: @"%@ %@ %@ %@\n", NSStringFromSelector(_cmd),
|
||||
name, publicID, systemID];
|
||||
}
|
||||
|
||||
|
||||
- (void) parser: (NSXMLParser *)parser
|
||||
didStartElement: (NSString *)elementName
|
||||
namespaceURI: (NSString *)namespaceURI
|
||||
qualifiedName: (NSString *)qName
|
||||
attributes: (NSDictionary *)attributeDict
|
||||
{
|
||||
static NSDictionary *locale = nil;
|
||||
NSString *d;
|
||||
|
||||
if (nil == locale)
|
||||
{
|
||||
locale = [[[NSUserDefaults standardUserDefaults]
|
||||
dictionaryRepresentation] retain];
|
||||
}
|
||||
d = [attributeDict descriptionWithLocale: locale];
|
||||
[s appendFormat: @"%@ %@ %@ %@ %@\n", NSStringFromSelector(_cmd),
|
||||
elementName, namespaceURI, qName, d];
|
||||
}
|
||||
|
||||
- (void) parser: (NSXMLParser *)parser
|
||||
didEndElement: (NSString *)elementName
|
||||
namespaceURI: (NSString *)namespaceURI
|
||||
qualifiedName: (NSString *)qName
|
||||
{
|
||||
[s appendFormat: @"%@ %@ %@ %@\n", NSStringFromSelector(_cmd),
|
||||
elementName, namespaceURI, qName];
|
||||
}
|
||||
|
||||
- (void) parser: (NSXMLParser *)parser
|
||||
didStartMappingPrefix: (NSString *)prefix
|
||||
toURI: (NSString *)namespaceURI
|
||||
{
|
||||
[s appendFormat: @"%@ %@ %@\n", NSStringFromSelector(_cmd),
|
||||
prefix, namespaceURI];
|
||||
}
|
||||
|
||||
- (void) parser: (NSXMLParser *)parser
|
||||
didEndMappingPrefix: (NSString *)prefix
|
||||
{
|
||||
[s appendFormat: @"%@ %@\n", NSStringFromSelector(_cmd),
|
||||
prefix];
|
||||
}
|
||||
|
||||
- (void) parser: (NSXMLParser *)parser
|
||||
foundCharacters: (NSString *)string
|
||||
{
|
||||
[s appendFormat: @"%@ %@\n", NSStringFromSelector(_cmd),
|
||||
string];
|
||||
}
|
||||
|
||||
- (void) parser: (NSXMLParser *)parser
|
||||
foundIgnorableWhitespace: (NSString *)whitespaceString
|
||||
{
|
||||
[s appendFormat: @"%@ %@\n", NSStringFromSelector(_cmd),
|
||||
whitespaceString];
|
||||
}
|
||||
|
||||
- (void) parser: (NSXMLParser *)parser
|
||||
foundProcessingInstructionWithTarget: (NSString *)target
|
||||
data: (NSString *)data
|
||||
{
|
||||
[s appendFormat: @"%@ %@ %@\n", NSStringFromSelector(_cmd),
|
||||
target, data];
|
||||
}
|
||||
|
||||
- (void) parser: (NSXMLParser *)parser
|
||||
foundComment: (NSString *)comment
|
||||
{
|
||||
[s appendFormat: @"%@ %@\n", NSStringFromSelector(_cmd),
|
||||
comment];
|
||||
}
|
||||
|
||||
- (void) parser: (NSXMLParser *)parser
|
||||
foundCDATA: (NSData *)CDATABlock
|
||||
{
|
||||
[s appendFormat: @"%@ %@\n", NSStringFromSelector(_cmd),
|
||||
CDATABlock];
|
||||
}
|
||||
|
||||
- (NSData *) parser: (NSXMLParser *)parser
|
||||
resolveExternalEntityName: (NSString *)name
|
||||
systemID: (NSString *)systemID
|
||||
{
|
||||
[s appendFormat: @"%@ %@ %@\n", NSStringFromSelector(_cmd),
|
||||
name, systemID];
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (void) parser: (NSXMLParser *)parser
|
||||
parseErrorOccurred: (NSError *)parseError
|
||||
{
|
||||
[s appendFormat: @"%@ %@\n", NSStringFromSelector(_cmd),
|
||||
parseError];
|
||||
}
|
||||
|
||||
- (void) parser: (NSXMLParser *)parser
|
||||
validationErrorOccurred: (NSError *)validationError
|
||||
{
|
||||
[s appendFormat: @"%@ %@\n", NSStringFromSelector(_cmd),
|
||||
validationError];
|
||||
}
|
||||
|
||||
- (void) reset
|
||||
{
|
||||
[s setString: @""];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
/* Use these booleans to control parsing behavior.
|
||||
*/
|
||||
static BOOL setShouldProcessNamespaces = YES;
|
||||
static BOOL setShouldReportNamespacePrefixes = YES;
|
||||
static BOOL setShouldResolveExternalEntities = NO;
|
||||
|
||||
static BOOL
|
||||
testParse(NSData *xml, NSString *expect)
|
||||
{
|
||||
NSAutoreleasePool *arp = [NSAutoreleasePool new];
|
||||
Handler *handler;
|
||||
NSXMLParser *parser;
|
||||
|
||||
parser = [[NSXMLParser alloc] initWithData: xml];
|
||||
|
||||
[parser setShouldProcessNamespaces: setShouldProcessNamespaces];
|
||||
[parser setShouldReportNamespacePrefixes: setShouldReportNamespacePrefixes];
|
||||
[parser setShouldResolveExternalEntities: setShouldResolveExternalEntities];
|
||||
|
||||
handler = [[Handler new] autorelease];
|
||||
[parser setDelegate: handler];
|
||||
if (NO == [parser parse])
|
||||
{
|
||||
NSLog(@"Parsing failed: %@", [parser parserError]);
|
||||
[arp release];
|
||||
return NO;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (NO == [[handler description] isEqual: expect])
|
||||
{
|
||||
NSLog(@"######## Expected:\n%@\n######## Parsed:\n%@\n########\n",
|
||||
expect, [handler description]);
|
||||
[arp release];
|
||||
return NO;
|
||||
}
|
||||
}
|
||||
[arp release];
|
||||
return YES;
|
||||
}
|
||||
|
||||
static BOOL
|
||||
testParseCString(const char *xmlBytes, NSString *expect)
|
||||
{
|
||||
NSData *xml;
|
||||
|
||||
xml = [NSData dataWithBytes: xmlBytes length: strlen(xmlBytes)];
|
||||
return testParse(xml, expect);
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
NSAutoreleasePool *arp = [NSAutoreleasePool new];
|
||||
NSFileManager *mgr = [NSFileManager defaultManager];
|
||||
NSDirectoryEnumerator *dir;
|
||||
NSString *xmlName;
|
||||
const char *x1 = "<?xml version=\"1.0\"?><test x = \"1\"></test>";
|
||||
const char *x1e = "<test x=\"1\"></test>";
|
||||
NSString *e1 =
|
||||
@"parserDidStartDocument:\nparser:didStartElement:namespaceURI:qualifiedName:attributes: test test {\n x = 1;\n}\nparser:didEndElement:namespaceURI:qualifiedName: test test\nparserDidEndDocument:\n";
|
||||
|
||||
PASS((testParseCString(x1, e1)), "simple document 1")
|
||||
PASS((testParseCString(x1e, e1)), "simple document 1 without header")
|
||||
|
||||
/* Now perform any tests using .xml and .result pairs of files in
|
||||
* the ParseData subdirectory.
|
||||
*/
|
||||
dir = [mgr enumeratorAtPath: @"ParseData"];
|
||||
while ((xmlName = [dir nextObject]) != nil)
|
||||
{
|
||||
if ([[xmlName pathExtension] isEqualToString: @"xml"])
|
||||
{
|
||||
NSString *str;
|
||||
NSString *xmlPath;
|
||||
NSData *xmlData;
|
||||
NSString *result;
|
||||
|
||||
xmlPath = [@"ParseData" stringByAppendingPathComponent: xmlName];
|
||||
str = [xmlPath stringByDeletingPathExtension];
|
||||
str = [str stringByAppendingPathExtension: @"result"];
|
||||
xmlData = [NSData dataWithContentsOfFile: xmlPath];
|
||||
result = [NSString stringWithContentsOfFile: str];
|
||||
PASS((testParse(xmlData, result)), "%s", [xmlName UTF8String])
|
||||
}
|
||||
}
|
||||
|
||||
[arp release]; arp = nil;
|
||||
return 0;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue