Merge pull request #405 from gnustep/small_xml_fixes

Two small xml fixes
This commit is contained in:
Doug Simons 2024-05-15 09:26:57 -06:00 committed by GitHub
commit 0935f77d8f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 83 additions and 3 deletions

View file

@ -43,7 +43,15 @@ int main()
NSInternalInconsistencyException,
"cannot add attributes to multiple parents");
[root1 setAttributes:@[attr2]];
PASS_EQUAL([root1 attributeForName: @"attr2"], attr2,
"setAttributes: added the new attribute");
PASS_EQUAL([root1 attributeForName: @"attr1"], nil,
"setAttributes: removed the old attribute");
PASS_EQUAL([root1 attributes], @[attr2], "attributes are just as set");
[root1 setAttributes:@[]];
PASS_EQUAL([root1 attributes], @[], "setAttributes:@[] removes all attributes");
[root1 release];
[root2 release];

View file

@ -0,0 +1,35 @@
#import "ObjectTesting.h"
#import <Foundation/NSAutoreleasePool.h>
#import <Foundation/NSXMLElement.h>
#import <Foundation/NSXMLDocument.h>
#import <Foundation/NSXMLNode.h>
#import <Foundation/NSError.h>
int main()
{
NSAutoreleasePool *arp = [NSAutoreleasePool new];
NSString *sourceXML = @"<parent>"
"<chyld>buzz</chyld>"
"<otherchyld>woody</otherchyld>"
"<zorgtree>gollyfoo</zorgtree>"
"<ln:loner xmlns:ln=\"http://loner.ns\">POW</ln:loner>"
"</parent>";
NSXMLDocument *doc = [[[NSXMLDocument alloc] initWithXMLString:sourceXML options:0 error:NULL] autorelease];
PASS(doc != nil, "created a document from an XML string");
NSError *anError = nil;
NSXMLNode *node = [[doc nodesForXPath:@"//chyld" error:&anError] lastObject];
PASS(node != nil, "access chyld node");
PASS(anError == nil, "no error accessing chyld node");
PASS_EQUAL([node stringValue], @"buzz", "retrieve chyld node");
node = [[doc nodesForXPath:@"//ln:loner" error:&anError] lastObject];
PASS(node == nil, "can't access ln:loner node if namespace not defined at top");
PASS(anError != nil, "should get error when fail to access node");
[arp release];
arp = nil;
return 0;
}