Compare commits

...

5 Commits

Author SHA1 Message Date
bvn13 fa8da81778 Merge branch 'release/1.10.3' 2023-03-26 18:47:06 +03:00
bvn13 6e91251fe3 Update versions for release 2023-03-26 18:46:43 +03:00
bvn13 7115d3b2d6 fixed issue with xml signature reading 2023-03-26 18:46:28 +03:00
bvn13 c1497dc29c Update for next development version 2023-03-02 18:05:16 +03:00
bvn13 000b6568cf Merge tag '1.10.2' into develop
Tag release
2023-03-02 18:05:13 +03:00
5 changed files with 28822 additions and 9 deletions

View File

@ -10,6 +10,10 @@ Official GPX format is on [topografix](https://www.topografix.com/GPX/1/1/) site
## Changelog
### 2023-03-26
1) Fixed signature reading
### 2023-02-13
1) Fixed missed extensions

View File

@ -6,7 +6,7 @@
<artifactId>GpxAndroidSdk</artifactId>
<groupId>me.bvn13.sdk.android.gpx</groupId>
<version>1.10.2</version>
<version>1.10.3</version>
<packaging>jar</packaging>

View File

@ -33,9 +33,7 @@ class GpxReader {
.trim()
.replace("'", "\"")
.replace(" ?", "?")
if (GpxConstant.HEADER != signaturePrepared
&& GpxConstant.HEADER_EXTENDED != signaturePrepared
) {
if (!signaturePrepared.startsWith("<?xml") || !signaturePrepared.endsWith("?>")) {
throw IllegalArgumentException("Wrong xml signature!")
}
return readBeginning(dis, Container.empty(container.position))

View File

@ -401,11 +401,11 @@ class GpxReaderTest {
</trk>
</gpx>
""".trim()
.lineSequence()
.map {
it.trim()
}
.joinToString("\n")
.lineSequence()
.map {
it.trim()
}
.joinToString("\n")
val gpx = GpxType.read(gpxString.byteInputStream())
assertEquals(gpxType, gpx)
@ -430,4 +430,84 @@ class GpxReaderTest {
Assertions.assertEquals(20, gpxType.trk?.get(0)?.trkseg?.get(0)?.trkpt?.size ?: 0)
Assertions.assertEquals(4, gpxType.trk?.get(0)?.trkseg?.get(0)?.trkpt?.get(0)?.extensions?.size ?: 0)
}
@DisplayName("Read track-2023-03-09--21-10-54.gpx")
@Test
fun readTestGpx_v_1_10_3() {
val gpxType = GpxType.read(javaClass.classLoader.getResource("track-2023-03-09--21-10-54.gpx").openStream())
Assertions.assertEquals(4, gpxType.trk?.get(0)?.trkseg?.get(0)?.trkpt?.get(0)?.extensions?.size ?: 0)
}
@DisplayName("test xml signature")
@Test
fun testXmlSignature() {
val gpx = """<gpx
xmlns="http://www.topografix.com/GPX/1/1"
version="1.1"
creator="me.bvn13.sdk.android.gpx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
<time>2022-09-24T15:04:00+03:00</time>
<metadata>
<name>test name</name>
<desc></desc>
<author>
<name></name>
</author>
</metadata>
<trk>
<name>track1</name>
<trkseg>
<trkpt lat="123.0" lon="321.0">
</trkpt>
</trkseg>
</trk>
</gpx>"""
GpxType.read("""
<?xml version="1.0" standalone="yes" encoding="UTF-8"?>
$gpx
""".trim()
.lineSequence()
.map {
it.trim()
}
.joinToString("\n")
.byteInputStream()
)
GpxType.read("""
<?xml version="1.0" encoding="UTF-8"?>
$gpx
""".trim()
.lineSequence()
.map {
it.trim()
}
.joinToString("\n")
.byteInputStream()
)
GpxType.read(
"""
<?xml version="1.0"?>
$gpx
""".trim()
.lineSequence()
.map {
it.trim()
}
.joinToString("\n")
.byteInputStream()
)
GpxType.read(
"""
<?xml?>
$gpx
""".trim()
.lineSequence()
.map {
it.trim()
}
.joinToString("\n")
.byteInputStream()
)
}
}

File diff suppressed because it is too large Load Diff