From 3003721302fdbceee2fad34962c64e797fdff884 Mon Sep 17 00:00:00 2001 From: Denis Date: Tue, 26 Oct 2021 11:10:32 +0300 Subject: [PATCH] fix: move client side frontend resources to META-INF/frontend (#12128) * fix: move client side frontend resources to META-INF/frontend fixes #11057 * chore: update script to put resources into /frontend and make an IT --- .../frontend/VaadinDevmodeGizmo.ts | 0 flow-client/tsconfig.json | 4 +- .../com/vaadin/flow/ClientResourceIT.java | 49 +++++++++++++++++++ 3 files changed, 51 insertions(+), 2 deletions(-) rename flow-client/src/main/resources/META-INF/{resources => }/frontend/VaadinDevmodeGizmo.ts (100%) create mode 100644 flow-tests/test-root-context/src/test/java/com/vaadin/flow/ClientResourceIT.java diff --git a/flow-client/src/main/resources/META-INF/resources/frontend/VaadinDevmodeGizmo.ts b/flow-client/src/main/resources/META-INF/frontend/VaadinDevmodeGizmo.ts similarity index 100% rename from flow-client/src/main/resources/META-INF/resources/frontend/VaadinDevmodeGizmo.ts rename to flow-client/src/main/resources/META-INF/frontend/VaadinDevmodeGizmo.ts diff --git a/flow-client/tsconfig.json b/flow-client/tsconfig.json index 6ab25133171..d7cb1bddc07 100644 --- a/flow-client/tsconfig.json +++ b/flow-client/tsconfig.json @@ -13,12 +13,12 @@ "noUnusedLocals": true, "noUnusedParameters": true, "experimentalDecorators": true, - "outDir": "target/classes/META-INF/resources/frontend", + "outDir": "target/classes/META-INF/frontend", "declaration": true, "skipLibCheck": true }, "include": [ - "src/main/resources/META-INF/resources/frontend/**/*.ts" + "src/main/resources/META-INF/frontend/**/*.ts" ], "exclude": [] } diff --git a/flow-tests/test-root-context/src/test/java/com/vaadin/flow/ClientResourceIT.java b/flow-tests/test-root-context/src/test/java/com/vaadin/flow/ClientResourceIT.java new file mode 100644 index 00000000000..a95c7111b4e --- /dev/null +++ b/flow-tests/test-root-context/src/test/java/com/vaadin/flow/ClientResourceIT.java @@ -0,0 +1,49 @@ +/* + * Copyright 2000-2021 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.flow; + +import java.io.IOException; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URL; + +import org.junit.Assert; +import org.junit.Test; + +import com.vaadin.flow.testutil.ChromeBrowserTest; + +public class ClientResourceIT extends ChromeBrowserTest { + + @Test + public void clientResourcesAreNotExposed() throws IOException { + assertResourceIsUnavailable("frontend/VaadinDevmodeGizmo.js.map"); + assertResourceIsUnavailable("frontend/VaadinDevmodeGizmo.d.ts"); + assertResourceIsUnavailable("frontend/VaadinDevmodeGizmo.js"); + assertResourceIsUnavailable("frontend/VaadinDevmodeGizmo.ts"); + } + + private void assertResourceIsUnavailable(String path) throws IOException { + URL url = getResourceURL(path); + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + int responseCode = connection.getResponseCode(); + Assert.assertEquals(HttpURLConnection.HTTP_NOT_FOUND, responseCode); + } + + private URL getResourceURL(String path) throws MalformedURLException { + String url = getRootURL() + "/" + path; + return new URL(url); + } +}