public void testRedirectPutFromStreamRelativeUrl()

in wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java [733:785]


    public void testRedirectPutFromStreamRelativeUrl() throws Exception {
        Server realServer = new Server();
        addConnector(realServer);
        File repositoryDirectory = getRepositoryDirectory();
        FileUtils.deleteDirectory(repositoryDirectory);
        repositoryDirectory.mkdirs();

        PutHandler putHandler = new PutHandler(repositoryDirectory);

        realServer.setHandler(putHandler);

        realServer.start();

        Server redirectServer = new Server();

        addConnector(redirectServer);

        RedirectHandler redirectHandler = new RedirectHandler(
                "See Other", HttpServletResponse.SC_SEE_OTHER, "/redirectRequest/foo", repositoryDirectory);

        redirectServer.setHandler(redirectHandler);

        redirectServer.start();

        try {
            StreamingWagon wagon = (StreamingWagon) getWagon();
            Repository repository = new Repository("foo", getRepositoryUrl(redirectServer));
            wagon.connect(repository);

            File sourceFile = new File(repositoryDirectory, "/redirectRequest/foo/test-secured-put-resource");
            sourceFile.delete();
            assertFalse(sourceFile.exists());

            File tempFile = File.createTempFile("wagon", "tmp");
            tempFile.deleteOnExit();
            String content = "put top secret";
            FileUtils.fileWrite(tempFile.getAbsolutePath(), content);

            try (FileInputStream fileInputStream = new FileInputStream(tempFile)) {
                wagon.putFromStream(fileInputStream, "test-secured-put-resource", content.length(), -1);
                assertEquals(content, FileUtils.fileRead(sourceFile.getAbsolutePath()));

                checkRequestResponseForRedirectPutWithRelativeUrl(redirectHandler, putHandler);
            } finally {
                wagon.disconnect();
                tempFile.delete();
            }

        } finally {
            realServer.stop();
            redirectServer.stop();
        }
    }