diff --git a/src/server/services/wfs/qgswfsdescribefeaturetype.cpp b/src/server/services/wfs/qgswfsdescribefeaturetype.cpp index 7d77905f5905..26cb878a0547 100644 --- a/src/server/services/wfs/qgswfsdescribefeaturetype.cpp +++ b/src/server/services/wfs/qgswfsdescribefeaturetype.cpp @@ -79,7 +79,7 @@ namespace QgsWfs // test oFormat if ( oFormat == QgsWfsParameters::Format::NONE ) throw QgsBadRequestException( QStringLiteral( "Invalid WFS Parameter" ), - "OUTPUTFORMAT " + wfsParameters.outputFormatAsString() + "is not supported" ); + QStringLiteral( "OUTPUTFORMAT %1 is not supported" ).arg( wfsParameters.outputFormatAsString() ) ); QgsAccessControl *accessControl = serverIface->accessControls(); @@ -346,6 +346,11 @@ namespace QgsWfs } } + if ( !( field.constraints().constraints() & QgsFieldConstraints::Constraint::ConstraintNotNull ) ) + { + attElem.setAttribute( QStringLiteral( "nillable" ), QStringLiteral( "true" ) ); + } + sequenceElem.appendChild( attElem ); QString alias = field.alias(); diff --git a/src/server/services/wfs/qgswfsgetfeature.cpp b/src/server/services/wfs/qgswfsgetfeature.cpp index cea76b7b9c8a..eb96f8ce5f88 100644 --- a/src/server/services/wfs/qgswfsgetfeature.cpp +++ b/src/server/services/wfs/qgswfsgetfeature.cpp @@ -1334,16 +1334,16 @@ namespace QgsWfs { continue; } - if ( featureAttributes[idx].isNull() ) - { - continue; - } const QgsField field = fields.at( idx ); const QgsEditorWidgetSetup setup = field.editorWidgetSetup(); QString attributeName = field.name(); QDomElement fieldElem = doc.createElement( "qgs:" + attributeName.replace( ' ', '_' ).replace( cleanTagNameRegExp, QString() ) ); QDomText fieldText = doc.createTextNode( encodeValueToText( featureAttributes[idx], setup ) ); + if ( featureAttributes[idx].isNull() ) + { + fieldElem.setAttribute( QStringLiteral( "xsi:nil" ), QStringLiteral( "true" ) ); + } fieldElem.appendChild( fieldText ); typeNameElement.appendChild( fieldElem ); } @@ -1435,16 +1435,18 @@ namespace QgsWfs { continue; } - if ( featureAttributes[idx].isNull() ) - { - continue; - } + const QgsField field = fields.at( idx ); const QgsEditorWidgetSetup setup = field.editorWidgetSetup(); + QString attributeName = field.name(); QDomElement fieldElem = doc.createElement( "qgs:" + attributeName.replace( ' ', '_' ).replace( cleanTagNameRegExp, QString() ) ); QDomText fieldText = doc.createTextNode( encodeValueToText( featureAttributes[idx], setup ) ); + if ( featureAttributes[idx].isNull() ) + { + fieldElem.setAttribute( QStringLiteral( "xsi:nil" ), QStringLiteral( "true" ) ); + } fieldElem.appendChild( fieldText ); typeNameElement.appendChild( fieldElem ); } diff --git a/src/server/services/wfs/qgswfstransaction.cpp b/src/server/services/wfs/qgswfstransaction.cpp index 450fd8d32eaa..19d5563cc664 100644 --- a/src/server/services/wfs/qgswfstransaction.cpp +++ b/src/server/services/wfs/qgswfstransaction.cpp @@ -411,6 +411,7 @@ namespace QgsWfs { if ( field.constraints().constraints() & QgsFieldConstraints::Constraint::ConstraintNotNull ) { + action.error = true; action.errorMsg = QStringLiteral( "NOT NULL constraint error error on layer '%1', field '%2'" ).arg( typeName, field.name() ); vlayer->rollBack(); break; diff --git a/src/server/services/wfs/qgswfstransaction_1_0_0.cpp b/src/server/services/wfs/qgswfstransaction_1_0_0.cpp index 1ae9f14f6547..eec54fad7235 100644 --- a/src/server/services/wfs/qgswfstransaction_1_0_0.cpp +++ b/src/server/services/wfs/qgswfstransaction_1_0_0.cpp @@ -388,26 +388,50 @@ namespace QgsWfs } QgsField field = fields.at( fieldMapIt.value() ); QVariant value = it.value(); - if ( field.type() == 2 ) + if ( value.isNull() ) { - value = it.value().toInt( &conversionSuccess ); - if ( !conversionSuccess ) + if ( field.constraints().constraints() & QgsFieldConstraints::Constraint::ConstraintNotNull ) { action.error = true; - action.errorMsg = QStringLiteral( "Property conversion error on layer '%1'" ).arg( typeName ); + action.errorMsg = QStringLiteral( "NOT NULL constraint error error on layer '%1', field '%2'" ).arg( typeName, field.name() ); vlayer->rollBack(); break; } } - else if ( field.type() == 6 ) + else // Not NULL { - value = it.value().toDouble( &conversionSuccess ); - if ( !conversionSuccess ) + if ( field.type() == QVariant::Type::Int ) { - action.error = true; - action.errorMsg = QStringLiteral( "Property conversion error on layer '%1'" ).arg( typeName ); - vlayer->rollBack(); - break; + value = it.value().toInt( &conversionSuccess ); + if ( !conversionSuccess ) + { + action.error = true; + action.errorMsg = QStringLiteral( "Property conversion error on layer '%1'" ).arg( typeName ); + vlayer->rollBack(); + break; + } + } + else if ( field.type() == QVariant::Type::Double ) + { + value = it.value().toDouble( &conversionSuccess ); + if ( !conversionSuccess ) + { + action.error = true; + action.errorMsg = QStringLiteral( "Property conversion error on layer '%1'" ).arg( typeName ); + vlayer->rollBack(); + break; + } + } + else if ( field.type() == QVariant::Type::LongLong ) + { + value = it.value().toLongLong( &conversionSuccess ); + if ( !conversionSuccess ) + { + action.error = true; + action.errorMsg = QStringLiteral( "Property conversion error on layer '%1'" ).arg( typeName ); + vlayer->rollBack(); + break; + } } } vlayer->changeAttributeValue( feature.id(), fieldMapIt.value(), value ); diff --git a/tests/src/python/test_qgsserver_wfs.py b/tests/src/python/test_qgsserver_wfs.py index 08719ab96d5f..e19ee68fdfbf 100644 --- a/tests/src/python/test_qgsserver_wfs.py +++ b/tests/src/python/test_qgsserver_wfs.py @@ -446,19 +446,19 @@ def test_describeFeatureType(self): 'wfs_describeFeatureType_1_1_0_typename_wrong', project_file=project_file) def test_getFeatureFeature_0_nulls(self): - """Test that 0 and null in integer columns are reported correctly: note that WFS does not support NULL but QGIS Server does""" + """Test that 0 and null in integer columns are reported correctly""" # Test transactions with 0 and nulls - post_data = b""" - + - id_long - %s + {field} + {value} @@ -467,37 +467,55 @@ def test_getFeatureFeature_0_nulls(self): """ - def _round_trip(value): - """Set a value on fid 22 and long_id field and check it back""" + def _round_trip(value, field, version='1.1.0'): + """Set a value on fid 22 and field and check it back""" - header, body = self._execute_request("?MAP=%s&SERVICE=WFS" % ( - self.testdata_path + 'test_project_wms_grouped_layers.qgs'), QgsServerRequest.PostMethod, post_data % value) - self.assertTrue(b'1' in body) + encoded_data = post_data.format(field=field, value=value, version=version).encode('utf8') + # Strip the field if NULL + if value is None: + encoded_data = encoded_data.replace(b'None', b'') + + header, body = self._execute_request("?MAP=%s&SERVICE=WFS&VERSION=%s" % ( + self.testdata_path + 'test_project_wms_grouped_layers.qgs', version), QgsServerRequest.PostMethod, encoded_data) + if version == '1.0.0': + self.assertTrue(b'' in body, body) + else: + self.assertTrue(b'1' in body, body) header, body = self._execute_request("?MAP=%s&SERVICE=WFS&REQUEST=GetFeature&TYPENAME=cdb_lines&FEATUREID=cdb_lines.22" % ( self.testdata_path + 'test_project_wms_grouped_layers.qgs')) - self.assertTrue(b'%s' % value in body) + if value is not None: + xml_value = '{1}'.format(field, value).encode('utf8') + self.assertTrue(xml_value in body, "%s not found in body" % xml_value) + else: + xml_value = ''.format(field).encode('utf8') + self.assertFalse(xml_value in body) # Check the backend vl = QgsVectorLayer( self.testdata_path + 'test_project_wms_grouped_layers.gpkg|layername=cdb_lines', 'vl', 'ogr') self.assertTrue(vl.isValid()) - self.assertEqual(str(vl.getFeature(22)['id_long']).encode( - 'utf8'), value if value != b'' else b'NULL') - - _round_trip(b'0') - _round_trip(b'12345') - - # Now check NULL - header, body = self._execute_request("?MAP=%s&SERVICE=WFS" % (self.testdata_path + 'test_project_wms_grouped_layers.qgs'), - QgsServerRequest.PostMethod, (post_data % b'').replace(b'', b'')) - self.assertTrue(b'1' in body) - vl = QgsVectorLayer( - self.testdata_path + 'test_project_wms_grouped_layers.gpkg|layername=cdb_lines', 'vl', 'ogr') - self.assertTrue(vl.isValid()) - self.assertTrue(vl.getFeature(22)['id_long'].isNull()) - del(vl) - header, body = self._execute_request("?MAP=%s&SERVICE=WFS&REQUEST=GetFeature&TYPENAME=cdb_lines&FEATUREID=cdb_lines.22" % ( - self.testdata_path + 'test_project_wms_grouped_layers.qgs')) - self.assertFalse(b'' in body) + self.assertEqual( + str(vl.getFeature(22)[field]), value if value is not None else 'NULL') + + for version in ('1.0.0', '1.1.0'): + _round_trip('0', 'id_long', version) + _round_trip('12345', 'id_long', version) + _round_trip('0', 'id', version) + _round_trip('12345', 'id', version) + _round_trip(None, 'id', version) + _round_trip(None, 'id_long', version) + + # "name" is NOT NULL: try to set it to empty string + _round_trip('', 'name', version) + # Then NULL + data = post_data.format(field='name', value='', version=version).encode('utf8') + encoded_data = data.replace(b'', b'') + header, body = self._execute_request("?MAP=%s&SERVICE=WFS" % ( + self.testdata_path + 'test_project_wms_grouped_layers.qgs'), QgsServerRequest.PostMethod, encoded_data) + if version == '1.0.0': + self.assertTrue(b'' in body, body) + else: + self.assertTrue(b'0' in body) + self.assertTrue(b'NOT NULL constraint error error on layer \'cdb_lines\', field \'name\'' in body) if __name__ == '__main__': diff --git a/tests/testdata/qgis_server/test_project_wms_grouped_layers.gpkg b/tests/testdata/qgis_server/test_project_wms_grouped_layers.gpkg index 228887819923..ca8521fe0ef2 100644 Binary files a/tests/testdata/qgis_server/test_project_wms_grouped_layers.gpkg and b/tests/testdata/qgis_server/test_project_wms_grouped_layers.gpkg differ diff --git a/tests/testdata/qgis_server/wfs_describeFeatureType_1_0_0_typename_as_areas_1_0_0.txt b/tests/testdata/qgis_server/wfs_describeFeatureType_1_0_0_typename_as_areas_1_0_0.txt index df7f64142e09..a12acb000cde 100644 --- a/tests/testdata/qgis_server/wfs_describeFeatureType_1_0_0_typename_as_areas_1_0_0.txt +++ b/tests/testdata/qgis_server/wfs_describeFeatureType_1_0_0_typename_as_areas_1_0_0.txt @@ -1,4 +1,4 @@ -Content-Length: 1840 +Content-Length: 2176 Content-Type: text/xml; charset=utf-8 @@ -10,27 +10,27 @@ Content-Type: text/xml; charset=utf-8 - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testdata/qgis_server/wfs_describeFeatureType_1_0_0_typename_empty_1_0_0.txt b/tests/testdata/qgis_server/wfs_describeFeatureType_1_0_0_typename_empty_1_0_0.txt index 3bec2baab7bf..127bbb2320ab 100644 --- a/tests/testdata/qgis_server/wfs_describeFeatureType_1_0_0_typename_empty_1_0_0.txt +++ b/tests/testdata/qgis_server/wfs_describeFeatureType_1_0_0_typename_empty_1_0_0.txt @@ -1,4 +1,4 @@ -Content-Length: 4894 +Content-Length: 5913 Content-Type: text/xml; charset=utf-8 @@ -10,27 +10,27 @@ Content-Type: text/xml; charset=utf-8 - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + @@ -42,19 +42,19 @@ Content-Type: text/xml; charset=utf-8 - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -66,30 +66,30 @@ Content-Type: text/xml; charset=utf-8 - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -102,10 +102,10 @@ Content-Type: text/xml; charset=utf-8 - + - - + + diff --git a/tests/testdata/qgis_server/wfs_describeFeatureType_1_1_0_typename_as_areas.txt b/tests/testdata/qgis_server/wfs_describeFeatureType_1_1_0_typename_as_areas.txt index 793462009252..de89a2b93af9 100644 --- a/tests/testdata/qgis_server/wfs_describeFeatureType_1_1_0_typename_as_areas.txt +++ b/tests/testdata/qgis_server/wfs_describeFeatureType_1_1_0_typename_as_areas.txt @@ -1,4 +1,4 @@ -Content-Length: 1841 +Content-Length: 2177 Content-Type: text/xml; charset=utf-8 @@ -10,27 +10,27 @@ Content-Type: text/xml; charset=utf-8 - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testdata/qgis_server/wfs_describeFeatureType_1_1_0_typename_empty.txt b/tests/testdata/qgis_server/wfs_describeFeatureType_1_1_0_typename_empty.txt index ca1226a2afe1..a4d01853ef5a 100644 --- a/tests/testdata/qgis_server/wfs_describeFeatureType_1_1_0_typename_empty.txt +++ b/tests/testdata/qgis_server/wfs_describeFeatureType_1_1_0_typename_empty.txt @@ -1,4 +1,4 @@ -Content-Length: 4895 +Content-Length: 5914 Content-Type: text/xml; charset=utf-8 @@ -10,27 +10,27 @@ Content-Type: text/xml; charset=utf-8 - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + @@ -42,19 +42,19 @@ Content-Type: text/xml; charset=utf-8 - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -66,30 +66,30 @@ Content-Type: text/xml; charset=utf-8 - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -102,10 +102,10 @@ Content-Type: text/xml; charset=utf-8 - + - - + + diff --git a/tests/testdata/qgis_server/wfs_describefeaturetype.txt b/tests/testdata/qgis_server/wfs_describefeaturetype.txt index aa23590aba07..676bd43a43bb 100644 --- a/tests/testdata/qgis_server/wfs_describefeaturetype.txt +++ b/tests/testdata/qgis_server/wfs_describefeaturetype.txt @@ -1,4 +1,4 @@ -Content-Length: 911 +Content-Length: 959 Content-Type: text/xml; charset=utf-8 @@ -9,9 +9,9 @@ Content-Type: text/xml; charset=utf-8 - - - + + + diff --git a/tests/testdata/qgis_server/wfs_describefeaturetype_1_0_0.txt b/tests/testdata/qgis_server/wfs_describefeaturetype_1_0_0.txt index 88b44989b4aa..5c0208a7bd3d 100644 --- a/tests/testdata/qgis_server/wfs_describefeaturetype_1_0_0.txt +++ b/tests/testdata/qgis_server/wfs_describefeaturetype_1_0_0.txt @@ -1,4 +1,4 @@ -Content-Length: 910 +Content-Length: 958 Content-Type: text/xml; charset=utf-8 @@ -9,9 +9,9 @@ Content-Type: text/xml; charset=utf-8 - - - + + + diff --git a/tests/testdata/qgis_server/wfs_getFeature_1_0_0_EXP_FILTER_FID_one_1_0_0.txt b/tests/testdata/qgis_server/wfs_getFeature_1_0_0_EXP_FILTER_FID_one_1_0_0.txt index 8ce42055ba53..57aba9b1040f 100644 --- a/tests/testdata/qgis_server/wfs_getFeature_1_0_0_EXP_FILTER_FID_one_1_0_0.txt +++ b/tests/testdata/qgis_server/wfs_getFeature_1_0_0_EXP_FILTER_FID_one_1_0_0.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 - + 8.20345931,44.90139484 8.20354699,44.90148253 diff --git a/tests/testdata/qgis_server/wfs_getFeature_1_0_0_EXP_FILTER_gml_bbox_one_1_0_0.txt b/tests/testdata/qgis_server/wfs_getFeature_1_0_0_EXP_FILTER_gml_bbox_one_1_0_0.txt index 8ce42055ba53..57aba9b1040f 100644 --- a/tests/testdata/qgis_server/wfs_getFeature_1_0_0_EXP_FILTER_gml_bbox_one_1_0_0.txt +++ b/tests/testdata/qgis_server/wfs_getFeature_1_0_0_EXP_FILTER_gml_bbox_one_1_0_0.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 - + 8.20345931,44.90139484 8.20354699,44.90148253 diff --git a/tests/testdata/qgis_server/wfs_getFeature_1_0_0_EXP_FILTER_gml_bbox_three_1_0_0.txt b/tests/testdata/qgis_server/wfs_getFeature_1_0_0_EXP_FILTER_gml_bbox_three_1_0_0.txt index cb174c88eefc..cf4781db3741 100644 --- a/tests/testdata/qgis_server/wfs_getFeature_1_0_0_EXP_FILTER_gml_bbox_three_1_0_0.txt +++ b/tests/testdata/qgis_server/wfs_getFeature_1_0_0_EXP_FILTER_gml_bbox_three_1_0_0.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 - + 8.20345931,44.90139484 8.20354699,44.90148253 diff --git a/tests/testdata/qgis_server/wfs_getFeature_1_0_0_EXP_FILTER_two_1_0_0.txt b/tests/testdata/qgis_server/wfs_getFeature_1_0_0_EXP_FILTER_two_1_0_0.txt index b3f3ff8c143c..38499b2f6200 100644 --- a/tests/testdata/qgis_server/wfs_getFeature_1_0_0_EXP_FILTER_two_1_0_0.txt +++ b/tests/testdata/qgis_server/wfs_getFeature_1_0_0_EXP_FILTER_two_1_0_0.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 - + 8.20345931,44.90139484 8.20354699,44.90148253 diff --git a/tests/testdata/qgis_server/wfs_getFeature_1_0_0_epsgbbox_1_feature_1_0_0.txt b/tests/testdata/qgis_server/wfs_getFeature_1_0_0_epsgbbox_1_feature_1_0_0.txt index 4f442c74a031..9571c80b3a90 100644 --- a/tests/testdata/qgis_server/wfs_getFeature_1_0_0_epsgbbox_1_feature_1_0_0.txt +++ b/tests/testdata/qgis_server/wfs_getFeature_1_0_0_epsgbbox_1_feature_1_0_0.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 \ No newline at end of file diff --git a/tests/testdata/qgis_server/wfs_getFeature_1_0_0_epsgbbox_1_feature_3857_1_0_0.txt b/tests/testdata/qgis_server/wfs_getFeature_1_0_0_epsgbbox_1_feature_3857_1_0_0.txt index 4f442c74a031..e7e1266cbc2c 100644 --- a/tests/testdata/qgis_server/wfs_getFeature_1_0_0_epsgbbox_1_feature_3857_1_0_0.txt +++ b/tests/testdata/qgis_server/wfs_getFeature_1_0_0_epsgbbox_1_feature_3857_1_0_0.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 - \ No newline at end of file diff --git a/tests/testdata/qgis_server/wfs_getFeature_1_0_0_epsgbbox_3_feature_1_0_0.txt b/tests/testdata/qgis_server/wfs_getFeature_1_0_0_epsgbbox_3_feature_1_0_0.txt index 5a3cb2e19cbc..23e74d3f4ea7 100644 --- a/tests/testdata/qgis_server/wfs_getFeature_1_0_0_epsgbbox_3_feature_1_0_0.txt +++ b/tests/testdata/qgis_server/wfs_getFeature_1_0_0_epsgbbox_3_feature_1_0_0.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 \ No newline at end of file diff --git a/tests/testdata/qgis_server/wfs_getFeature_1_0_0_epsgbbox_3_feature_3857_1_0_0.txt b/tests/testdata/qgis_server/wfs_getFeature_1_0_0_epsgbbox_3_feature_3857_1_0_0.txt index 5a3cb2e19cbc..a280ed9696dd 100644 --- a/tests/testdata/qgis_server/wfs_getFeature_1_0_0_epsgbbox_3_feature_3857_1_0_0.txt +++ b/tests/testdata/qgis_server/wfs_getFeature_1_0_0_epsgbbox_3_feature_3857_1_0_0.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 - \ No newline at end of file diff --git a/tests/testdata/qgis_server/wfs_getFeature_1_1_0_epsgbbox_1_feature.txt b/tests/testdata/qgis_server/wfs_getFeature_1_1_0_epsgbbox_1_feature.txt index abec008228df..7e47cbadc45c 100644 --- a/tests/testdata/qgis_server/wfs_getFeature_1_1_0_epsgbbox_1_feature.txt +++ b/tests/testdata/qgis_server/wfs_getFeature_1_1_0_epsgbbox_1_feature.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/3.1.1; charset=utf-8 \ No newline at end of file diff --git a/tests/testdata/qgis_server/wfs_getFeature_1_1_0_epsgbbox_1_feature_3857.txt b/tests/testdata/qgis_server/wfs_getFeature_1_1_0_epsgbbox_1_feature_3857.txt index abec008228df..2d3d71d8ff32 100644 --- a/tests/testdata/qgis_server/wfs_getFeature_1_1_0_epsgbbox_1_feature_3857.txt +++ b/tests/testdata/qgis_server/wfs_getFeature_1_1_0_epsgbbox_1_feature_3857.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/3.1.1; charset=utf-8 - \ No newline at end of file diff --git a/tests/testdata/qgis_server/wfs_getFeature_1_1_0_epsgbbox_3_feature.txt b/tests/testdata/qgis_server/wfs_getFeature_1_1_0_epsgbbox_3_feature.txt index c5a67e329d8e..eb7e2e21ea40 100644 --- a/tests/testdata/qgis_server/wfs_getFeature_1_1_0_epsgbbox_3_feature.txt +++ b/tests/testdata/qgis_server/wfs_getFeature_1_1_0_epsgbbox_3_feature.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/3.1.1; charset=utf-8 \ No newline at end of file diff --git a/tests/testdata/qgis_server/wfs_getFeature_1_1_0_epsgbbox_3_feature_3857.txt b/tests/testdata/qgis_server/wfs_getFeature_1_1_0_epsgbbox_3_feature_3857.txt index c5a67e329d8e..c1735f5f852e 100644 --- a/tests/testdata/qgis_server/wfs_getFeature_1_1_0_epsgbbox_3_feature_3857.txt +++ b/tests/testdata/qgis_server/wfs_getFeature_1_1_0_epsgbbox_3_feature_3857.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/3.1.1; charset=utf-8 - \ No newline at end of file diff --git a/tests/testdata/qgis_server/wfs_getcapabilities.txt b/tests/testdata/qgis_server/wfs_getcapabilities.txt index a9194a3d21f7..bb44c41daeb2 100644 --- a/tests/testdata/qgis_server/wfs_getcapabilities.txt +++ b/tests/testdata/qgis_server/wfs_getcapabilities.txt @@ -1,4 +1,4 @@ -Content-Length: 6031 +Content-Length: 5776 Content-Type: text/xml; charset=utf-8 @@ -21,8 +21,8 @@ Content-Type: text/xml; charset=utf-8 - - + + @@ -39,8 +39,8 @@ Content-Type: text/xml; charset=utf-8 - - + + @@ -52,8 +52,8 @@ Content-Type: text/xml; charset=utf-8 - - + + @@ -69,8 +69,8 @@ Content-Type: text/xml; charset=utf-8 - - + + diff --git a/tests/testdata/qgis_server/wfs_getcapabilities_1_0_0.txt b/tests/testdata/qgis_server/wfs_getcapabilities_1_0_0.txt index 7848d2a3d43e..c7411cd895fe 100644 --- a/tests/testdata/qgis_server/wfs_getcapabilities_1_0_0.txt +++ b/tests/testdata/qgis_server/wfs_getcapabilities_1_0_0.txt @@ -13,12 +13,12 @@ Content-Type: text/xml; charset=utf-8 - + - + @@ -28,12 +28,12 @@ Content-Type: text/xml; charset=utf-8 - + - + @@ -45,19 +45,19 @@ Content-Type: text/xml; charset=utf-8 - + - + - + diff --git a/tests/testdata/qgis_server/wfs_getfeature_bbox_inside_and_post.txt b/tests/testdata/qgis_server/wfs_getfeature_bbox_inside_and_post.txt index 66241dcfb622..af1488a11029 100644 --- a/tests/testdata/qgis_server/wfs_getfeature_bbox_inside_and_post.txt +++ b/tests/testdata/qgis_server/wfs_getfeature_bbox_inside_and_post.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 - + 8,44 9,45 diff --git a/tests/testdata/qgis_server/wfs_getfeature_hits.txt b/tests/testdata/qgis_server/wfs_getfeature_hits.txt index eea84f71890b..300f8e8be6f6 100644 --- a/tests/testdata/qgis_server/wfs_getfeature_hits.txt +++ b/tests/testdata/qgis_server/wfs_getfeature_hits.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 - \ No newline at end of file diff --git a/tests/testdata/qgis_server/wfs_getfeature_limit2.txt b/tests/testdata/qgis_server/wfs_getfeature_limit2.txt index a31243d5ca1b..6697890ec084 100644 --- a/tests/testdata/qgis_server/wfs_getfeature_limit2.txt +++ b/tests/testdata/qgis_server/wfs_getfeature_limit2.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 - + 8.20345931,44.90139484 8.20354699,44.90148253 diff --git a/tests/testdata/qgis_server/wfs_getfeature_limit2_post.txt b/tests/testdata/qgis_server/wfs_getfeature_limit2_post.txt index c43e663daf4b..70fdb0cbf915 100644 --- a/tests/testdata/qgis_server/wfs_getfeature_limit2_post.txt +++ b/tests/testdata/qgis_server/wfs_getfeature_limit2_post.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 - + 8,44 9,45 diff --git a/tests/testdata/qgis_server/wfs_getfeature_nobbox.txt b/tests/testdata/qgis_server/wfs_getfeature_nobbox.txt index 61b410ba5b2d..ff4868463b0b 100644 --- a/tests/testdata/qgis_server/wfs_getfeature_nobbox.txt +++ b/tests/testdata/qgis_server/wfs_getfeature_nobbox.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 - + 8.20345931,44.90139484 8.20354699,44.90148253 diff --git a/tests/testdata/qgis_server/wfs_getfeature_nobbox_post.txt b/tests/testdata/qgis_server/wfs_getfeature_nobbox_post.txt index 46713646cb02..4e6e233307bd 100644 --- a/tests/testdata/qgis_server/wfs_getfeature_nobbox_post.txt +++ b/tests/testdata/qgis_server/wfs_getfeature_nobbox_post.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 - + 8,44 9,45 diff --git a/tests/testdata/qgis_server/wfs_getfeature_sortby.txt b/tests/testdata/qgis_server/wfs_getfeature_sortby.txt index d3c3db0c37d3..e6ffe4f2f4c7 100644 --- a/tests/testdata/qgis_server/wfs_getfeature_sortby.txt +++ b/tests/testdata/qgis_server/wfs_getfeature_sortby.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 - + 8.20345931,44.90139484 8.20354699,44.90148253 diff --git a/tests/testdata/qgis_server/wfs_getfeature_sortby_post.txt b/tests/testdata/qgis_server/wfs_getfeature_sortby_post.txt index 6f7b71725bc7..c1207746780b 100644 --- a/tests/testdata/qgis_server/wfs_getfeature_sortby_post.txt +++ b/tests/testdata/qgis_server/wfs_getfeature_sortby_post.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 - + 8,44 9,45 diff --git a/tests/testdata/qgis_server/wfs_getfeature_srs_two_layers_post.txt b/tests/testdata/qgis_server/wfs_getfeature_srs_two_layers_post.txt index 5c0f85712046..c31d71fb0553 100644 --- a/tests/testdata/qgis_server/wfs_getfeature_srs_two_layers_post.txt +++ b/tests/testdata/qgis_server/wfs_getfeature_srs_two_layers_post.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 - + 8.203459,44.901395 8.203547,44.901483 diff --git a/tests/testdata/qgis_server/wfs_getfeature_srsname.txt b/tests/testdata/qgis_server/wfs_getfeature_srsname.txt index a3398003ce8d..d90816276423 100644 --- a/tests/testdata/qgis_server/wfs_getfeature_srsname.txt +++ b/tests/testdata/qgis_server/wfs_getfeature_srsname.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 - + 8.20345931,44.90139484 8.20354699,44.90148253 diff --git a/tests/testdata/qgis_server/wfs_getfeature_srsname_post.txt b/tests/testdata/qgis_server/wfs_getfeature_srsname_post.txt index c5c79ccd844c..4dc2557743a5 100644 --- a/tests/testdata/qgis_server/wfs_getfeature_srsname_post.txt +++ b/tests/testdata/qgis_server/wfs_getfeature_srsname_post.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 - + 8,44 9,45 diff --git a/tests/testdata/qgis_server/wfs_getfeature_start1_limit1.txt b/tests/testdata/qgis_server/wfs_getfeature_start1_limit1.txt index 9330d945a0f7..b3f3ff8c143c 100644 --- a/tests/testdata/qgis_server/wfs_getfeature_start1_limit1.txt +++ b/tests/testdata/qgis_server/wfs_getfeature_start1_limit1.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 - + 8.20345931,44.90139484 8.20354699,44.90148253 diff --git a/tests/testdata/qgis_server/wfs_getfeature_start1_limit1_post.txt b/tests/testdata/qgis_server/wfs_getfeature_start1_limit1_post.txt index bb79c95ad83c..27a0aa6ebca2 100644 --- a/tests/testdata/qgis_server/wfs_getfeature_start1_limit1_post.txt +++ b/tests/testdata/qgis_server/wfs_getfeature_start1_limit1_post.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 - + 8,44 9,45 diff --git a/tests/testdata/qgis_server/wfs_getfeature_startindex2.txt b/tests/testdata/qgis_server/wfs_getfeature_startindex2.txt index 83eee6a61b4d..cb174c88eefc 100644 --- a/tests/testdata/qgis_server/wfs_getfeature_startindex2.txt +++ b/tests/testdata/qgis_server/wfs_getfeature_startindex2.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 - + 8.20345931,44.90139484 8.20354699,44.90148253 diff --git a/tests/testdata/qgis_server/wfs_getfeature_startindex2_post.txt b/tests/testdata/qgis_server/wfs_getfeature_startindex2_post.txt index 24c13e2bdc97..b30ff5c10dc2 100644 --- a/tests/testdata/qgis_server/wfs_getfeature_startindex2_post.txt +++ b/tests/testdata/qgis_server/wfs_getfeature_startindex2_post.txt @@ -1,6 +1,6 @@ Content-Type: text/xml; subtype=gml/2.1.2; charset=utf-8 - + 8,44 9,45