Skip to content

Commit

Permalink
fix (webapi): xml import namespace
Browse files Browse the repository at this point in the history
  • Loading branch information
subotic committed Apr 16, 2018
1 parent 613e9eb commit 7687651
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -619,8 +619,8 @@ class StringFormatter private(val knoraApiHostAndPort: Option[String]) {

// A regex for a project-specific XML import namespace.
private val ProjectSpecificXmlImportNamespaceRegex: Regex = (
"^" + OntologyConstants.KnoraXmlImportV1.ProjectSpecificXmlImportNamespace.XmlImportNamespaceStart + "(" +
ProjectIDPattern + ")/(" + NCNamePattern + ")" +
"^" + OntologyConstants.KnoraXmlImportV1.ProjectSpecificXmlImportNamespace.XmlImportNamespaceStart + "((" +
ProjectIDPattern + ")/)?(" + NCNamePattern + ")" +
OntologyConstants.KnoraXmlImportV1.ProjectSpecificXmlImportNamespace.XmlImportNamespaceEnd + "$"
).r

Expand Down Expand Up @@ -1823,7 +1823,7 @@ class StringFormatter private(val knoraApiHostAndPort: Option[String]) {
def toPropertyIriFromOtherOntologyInXmlImport(prefixLabelAndLocalName: String): Option[IRI] = {
prefixLabelAndLocalName match {
case PropertyFromOtherOntologyInXmlImportRegex(_, projectID, prefixLabel, localName) =>
Some(s"${OntologyConstants.KnoraInternal.InternalOntologyStart}$projectID/$prefixLabel#$localName")
Some(s"${OntologyConstants.KnoraInternal.InternalOntologyStart}/$projectID/$prefixLabel#$localName")

case _ => None
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -428,6 +428,16 @@ class StringFormatterSpec extends CoreSpec() {
xsdIri.getProjectCode.isEmpty)
}

"validate import namespace with project shortcode" in {

val defaultNamespace = "http://api.knora.org/ontology/0802/biblio/xml-import/v1#"

stringFormatter.xmlImportNamespaceToInternalOntologyIriV1(
defaultNamespace, throw AssertionException("Invalid XML import namespace")
).toString should be ("http://www.knora.org/ontology/0802/biblio")
}


"reject an empty IRI string" in {
assertThrows[AssertionException] {
"".toSmartIriWithErr(throw AssertionException(s"Invalid IRI"))
Expand Down

0 comments on commit 7687651

Please sign in to comment.