jaxp/test/javax/xml/jaxp/functional/catalog/SpecifyCatalogTest.java
author joehw
Wed, 11 Jan 2017 13:06:04 -0800
changeset 43121 e73af7b6ce47
parent 40582 1dddef49982c
permissions -rw-r--r--
8171243: CatalogManager.catalogResolver throws FileSystemNotFoundException with jar Reviewed-by: rriggs, dfuchs, lancea, alanb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33543
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
     1
/*
43121
e73af7b6ce47 8171243: CatalogManager.catalogResolver throws FileSystemNotFoundException with jar
joehw
parents: 40582
diff changeset
     2
 * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
33543
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
     4
 *
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
     7
 * published by the Free Software Foundation.
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
     8
 *
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    13
 * accompanied this code).
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    14
 *
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    18
 *
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    21
 * questions.
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    22
 */
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    23
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    24
package catalog;
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    25
40223
64662417aa2d 8067170: Enable security manager on JAXP unit tests and make some improvement
fyuan
parents: 33543
diff changeset
    26
import static jaxp.library.JAXPTestUtilities.setSystemProperty;
64662417aa2d 8067170: Enable security manager on JAXP unit tests and make some improvement
fyuan
parents: 33543
diff changeset
    27
33543
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    28
import static catalog.CatalogTestUtils.FEATURE_FILES;
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    29
import static catalog.CatalogTestUtils.catalogResolver;
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    30
import static catalog.CatalogTestUtils.catalogUriResolver;
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    31
import static catalog.CatalogTestUtils.getCatalogPath;
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    32
import static catalog.ResolutionChecker.checkSysIdResolution;
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    33
import static catalog.ResolutionChecker.checkUriResolution;
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    34
import static javax.xml.catalog.CatalogFeatures.builder;
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    35
import static javax.xml.catalog.CatalogFeatures.Feature.FILES;
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    36
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    37
import javax.xml.catalog.CatalogFeatures;
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    38
import javax.xml.catalog.CatalogResolver;
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    39
40223
64662417aa2d 8067170: Enable security manager on JAXP unit tests and make some improvement
fyuan
parents: 33543
diff changeset
    40
import org.testng.annotations.Listeners;
33543
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    41
import org.testng.annotations.Test;
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    42
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    43
/*
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    44
 * @test
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    45
 * @bug 8077931
40223
64662417aa2d 8067170: Enable security manager on JAXP unit tests and make some improvement
fyuan
parents: 33543
diff changeset
    46
 * @library /javax/xml/jaxp/libs
64662417aa2d 8067170: Enable security manager on JAXP unit tests and make some improvement
fyuan
parents: 33543
diff changeset
    47
 * @run testng/othervm -DrunSecMngr=true catalog.SpecifyCatalogTest
64662417aa2d 8067170: Enable security manager on JAXP unit tests and make some improvement
fyuan
parents: 33543
diff changeset
    48
 * @run testng/othervm catalog.SpecifyCatalogTest
33543
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    49
 * @summary This case tests how to specify the catalog files.
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    50
 */
40223
64662417aa2d 8067170: Enable security manager on JAXP unit tests and make some improvement
fyuan
parents: 33543
diff changeset
    51
@Listeners({jaxp.library.FilePolicy.class})
33543
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    52
public class SpecifyCatalogTest {
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    53
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    54
    private static final String ID_URI = "http://remote/dtd/uri/doc.dtd";
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    55
    private static final String ID_SYS = "http://remote/dtd/sys/doc.dtd";
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    56
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    57
    private static final CatalogFeatures FILES_FEATURE = createFeature(
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    58
            "specifyCatalog-feature.xml");
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    59
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    60
    /*
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    61
     * CatalogResolver specifies catalog via feature javax.xml.catalog.files.
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    62
     */
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    63
    @Test
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    64
    public void specifyCatalogOnEntityResolver() {
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    65
        checkSysIdResolution(catalogResolver(FILES_FEATURE, (String[]) null),
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    66
                ID_SYS, "http://local/base/dtd/docFeatureSys.dtd");
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    67
    }
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    68
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    69
    /*
40582
1dddef49982c 8163232: Catalog API: Consolidating CatalogResolver to support all XML Resolvers
joehw
parents: 40223
diff changeset
    70
     * CatalogResolver specifies catalog via feature javax.xml.catalog.files.
33543
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    71
     */
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    72
    @Test
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    73
    public void specifyCatalogOnUriResolver() {
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    74
        checkUriResolution(catalogUriResolver(FILES_FEATURE, (String[]) null),
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    75
                ID_URI, "http://local/base/dtd/docFeatureURI.dtd");
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    76
    }
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    77
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    78
    /*
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    79
     * Resolver specifies catalog via system property javax.xml.catalog.files.
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    80
     */
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    81
    @Test
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    82
    public void specifyCatalogViaSysProps() {
40223
64662417aa2d 8067170: Enable security manager on JAXP unit tests and make some improvement
fyuan
parents: 33543
diff changeset
    83
        setSystemProperty(FEATURE_FILES,
43121
e73af7b6ce47 8171243: CatalogManager.catalogResolver throws FileSystemNotFoundException with jar
joehw
parents: 40582
diff changeset
    84
                getCatalogPath("specifyCatalog-sysProps.xml").toASCIIString());
33543
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    85
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    86
        checkResolutionOnEntityResolver(catalogResolver((String[]) null),
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    87
                "http://local/base/dtd/docSysPropsSys.dtd");
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    88
        checkResolutionOnEntityResolver(
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    89
                catalogResolver(FILES_FEATURE, "specifyCatalog-api.xml"),
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    90
                "http://local/base/dtd/docAPISys.dtd");
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    91
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    92
        checkResolutionOnUriResolver(catalogUriResolver((String[]) null),
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    93
                "http://local/base/dtd/docSysPropsURI.dtd");
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    94
        checkResolutionOnUriResolver(
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    95
                catalogUriResolver(FILES_FEATURE, "specifyCatalog-api.xml"),
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    96
                "http://local/base/dtd/docAPIURI.dtd");
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    97
    }
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    98
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
    99
    private void checkResolutionOnEntityResolver(CatalogResolver resolver,
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
   100
            String matchedUri) {
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
   101
        checkSysIdResolution(resolver, ID_SYS, matchedUri);
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
   102
    }
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
   103
40582
1dddef49982c 8163232: Catalog API: Consolidating CatalogResolver to support all XML Resolvers
joehw
parents: 40223
diff changeset
   104
    private void checkResolutionOnUriResolver(CatalogResolver resolver,
33543
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
   105
            String matchedUri) {
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
   106
        checkUriResolution(resolver, ID_URI, matchedUri);
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
   107
    }
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
   108
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
   109
    private static CatalogFeatures createFeature(String catalogName) {
43121
e73af7b6ce47 8171243: CatalogManager.catalogResolver throws FileSystemNotFoundException with jar
joehw
parents: 40582
diff changeset
   110
        return builder().with(FILES, getCatalogPath(catalogName).toASCIIString()).build();
33543
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
   111
    }
cd228512f933 8077931: Develop tests for XML Catalog API
joehw
parents:
diff changeset
   112
}