@@ -160,22 +160,38 @@ class TestXMLParser : XCTestCase {
160
160
let name : String
161
161
init ( _ name: String ) { self . name = name }
162
162
func parser( _ parser: XMLParser ,
163
- didStartElement elementName: String ,
164
- namespaceURI: String ? ,
165
- qualifiedName qName: String ? ,
166
- attributes attributeDict: [ String : String ] = [ : ] ) {
167
- XCTAssertEqual ( self . name, elementName)
163
+ didStartElement elementName: String ,
164
+ namespaceURI: String ? ,
165
+ qualifiedName qName: String ? ,
166
+ attributes attributeDict: [ String : String ] = [ : ] )
167
+ {
168
+ if parser. shouldProcessNamespaces {
169
+ XCTAssertEqual ( self . name, qName)
170
+ } else {
171
+ XCTAssertEqual ( self . name, elementName)
172
+ }
168
173
}
169
174
func parser( _ parser: XMLParser ,
170
175
didEndElement elementName: String ,
171
176
namespaceURI: String ? ,
172
- qualifiedName qName: String ? ) {
173
- XCTAssertEqual ( self . name, elementName)
177
+ qualifiedName qName: String ? )
178
+ {
179
+ if parser. shouldProcessNamespaces {
180
+ XCTAssertEqual ( self . name, qName)
181
+ } else {
182
+ XCTAssertEqual ( self . name, elementName)
183
+ }
174
184
}
175
185
func check( ) {
176
186
let elementString = " < \( self . name) /> "
177
- let parser = XMLParser ( data: elementString. data ( using: . utf8) !)
187
+ var parser = XMLParser ( data: elementString. data ( using: . utf8) !)
188
+ parser. delegate = self
189
+ XCTAssertTrue ( parser. parse ( ) )
190
+
191
+ // Confirm that the parts of QName is also not swapped.
192
+ parser = XMLParser ( data: elementString. data ( using: . utf8) !)
178
193
parser. delegate = self
194
+ parser. shouldProcessNamespaces = true
179
195
XCTAssertTrue ( parser. parse ( ) )
180
196
}
181
197
}
0 commit comments