@@ -41,7 +41,13 @@ func testInputStream() {
4141 let remoteStream = InputStream ( data: remoteData)
4242 let parser = XMLParser ( stream: remoteStream) // $ hasXXE=39
4343 parser. shouldResolveExternalEntities = true
44+ }
4445
46+ func testUrl( ) {
47+ let remoteString = String ( contentsOf: URL ( string: " http://example.com/ " ) !)
48+ let remoteUrl = URL ( string: remoteString) !
49+ let parser = XMLParser ( contentsOf: remoteUrl) // $ hasXXE=47
50+ parser? . shouldResolveExternalEntities = true
4551}
4652
4753func testDataSafe( ) {
@@ -55,7 +61,6 @@ func testDataSafeExplicit() {
5561 let remoteData = Data ( remoteString)
5662 let parser = XMLParser ( data: remoteData) // NO XXE: parser disables external entities
5763 parser. shouldResolveExternalEntities = false
58-
5964}
6065
6166func testInputStreamSafe( ) {
@@ -71,4 +76,17 @@ func testInputStreamSafeExplicit() {
7176 let remoteStream = InputStream ( data: remoteData)
7277 let parser = XMLParser ( stream: remoteStream) // NO XXE: parser disables external entities
7378 parser. shouldResolveExternalEntities = false
79+ }
80+
81+ func testUrlSafe( ) {
82+ let remoteString = String ( contentsOf: URL ( string: " http://example.com/ " ) !)
83+ let remoteUrl = URL ( string: remoteString) !
84+ let _ = XMLParser ( contentsOf: remoteUrl) // NO XXE: parser doesn't enable external entities
85+ }
86+
87+ func testUrlSafeExplicit( ) {
88+ let remoteString = String ( contentsOf: URL ( string: " http://example.com/ " ) !)
89+ let remoteUrl = URL ( string: remoteString) !
90+ let parser = XMLParser ( contentsOf: remoteUrl) // NO XXE: parser disables external entities
91+ parser? . shouldResolveExternalEntities = false
7492}
0 commit comments