aboutsummaryrefslogtreecommitdiffstats
path: root/client-compiler/tests/src
diff options
context:
space:
mode:
authorelmot <elmot@vaadin.com>2016-03-18 17:29:27 +0200
committerelmot <elmot@vaadin.com>2016-03-22 11:27:53 +0200
commit521ec24c62a1ba476795369a42114fede7043f44 (patch)
tree0a8991b4c2a1bb8c2a6738701d74d6d43439bb59 /client-compiler/tests/src
parent646cbaecbb5ef0e1cbefc7570e0340d926b7c85a (diff)
downloadvaadin-framework-521ec24c62a1ba476795369a42114fede7043f44.tar.gz
vaadin-framework-521ec24c62a1ba476795369a42114fede7043f44.zip
Build client-compiler with maven
Change-Id: Ic86a95ce44cc37c8d34d607b39f2aec4cc922ce2
Diffstat (limited to 'client-compiler/tests/src')
-rw-r--r--client-compiler/tests/src/com/vaadin/tools/CvalAddonsCheckerTest.java184
-rw-r--r--client-compiler/tests/src/com/vaadin/tools/CvalAddonstCheckerUseCasesTest.java217
-rw-r--r--client-compiler/tests/src/com/vaadin/tools/CvalCheckerTest.java495
3 files changed, 0 insertions, 896 deletions
diff --git a/client-compiler/tests/src/com/vaadin/tools/CvalAddonsCheckerTest.java b/client-compiler/tests/src/com/vaadin/tools/CvalAddonsCheckerTest.java
deleted file mode 100644
index 1fb9413ee4..0000000000
--- a/client-compiler/tests/src/com/vaadin/tools/CvalAddonsCheckerTest.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Copyright 2000-2014 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.tools;
-
-import static com.vaadin.tools.CvalAddonsChecker.VAADIN_AGPL;
-import static com.vaadin.tools.CvalAddonsChecker.VAADIN_CVAL;
-import static com.vaadin.tools.CvalChecker.GRACE_DAYS_MSECS;
-import static com.vaadin.tools.CvalChecker.computeLicenseName;
-import static com.vaadin.tools.CvalChecker.deleteCache;
-import static com.vaadin.tools.CvalCheckerTest.VALID_KEY;
-import static com.vaadin.tools.CvalCheckerTest.addLicensedJarToClasspath;
-import static com.vaadin.tools.CvalCheckerTest.cacheExists;
-import static com.vaadin.tools.CvalCheckerTest.captureSystemOut;
-import static com.vaadin.tools.CvalCheckerTest.productNameAgpl;
-import static com.vaadin.tools.CvalCheckerTest.productNameApache;
-import static com.vaadin.tools.CvalCheckerTest.productNameCval;
-import static com.vaadin.tools.CvalCheckerTest.readSystemOut;
-import static com.vaadin.tools.CvalCheckerTest.saveCache;
-import static com.vaadin.tools.CvalCheckerTest.unreachableLicenseProvider;
-import static com.vaadin.tools.CvalCheckerTest.validLicenseProvider;
-
-import java.util.List;
-
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.vaadin.client.metadata.ConnectorBundleLoader.CValUiInfo;
-import com.vaadin.tools.CvalChecker.InvalidCvalException;
-
-/**
- * The CvalAddonsChecker test.
- */
-public class CvalAddonsCheckerTest {
-
- CvalAddonsChecker addonChecker;
- private String licenseName;
-
- @Before
- public void setup() {
- addonChecker = new CvalAddonsChecker().setLicenseProvider(
- validLicenseProvider).setFilter(".*test.*");
- licenseName = computeLicenseName(productNameCval);
-
- deleteCache(productNameCval);
- System.getProperties().remove(licenseName);
- }
-
- @Test
- public void testRunChecker() throws Exception {
- // Create a product .jar with a cval license non required and add to our
- // classpath
- addLicensedJarToClasspath(productNameCval, VAADIN_CVAL);
- // Remove other products in case other tests added them previously
- addLicensedJarToClasspath(productNameAgpl, null);
- addLicensedJarToClasspath(productNameApache, null);
-
- // No license
- // -> Break compilation
- System.getProperties().remove(licenseName);
- addonChecker.setLicenseProvider(validLicenseProvider);
- try {
- addonChecker.run();
- Assert.fail();
- } catch (InvalidCvalException expected) {
- }
- Assert.assertFalse(cacheExists(productNameCval));
-
- // We have a license that has never been validated from the server and
- // we are offline
- // -> Show a message on compile time (“Your license for TouchKit 4 has
- // not been validated.”)
- System.setProperty(licenseName, VALID_KEY);
- addonChecker.setLicenseProvider(unreachableLicenseProvider);
- captureSystemOut();
- addonChecker.run();
- Assert.assertTrue(readSystemOut().contains("has not been validated"));
- Assert.assertFalse(cacheExists(productNameCval));
-
- // Valid license has previously been validated from the server and we
- // are offline
- // -> Use the cached server response
- System.setProperty(licenseName, VALID_KEY);
- addonChecker.setLicenseProvider(validLicenseProvider);
- captureSystemOut();
- addonChecker.run();
- Assert.assertTrue(cacheExists(productNameCval));
- addonChecker.setLicenseProvider(unreachableLicenseProvider);
- addonChecker.run();
-
- // Expired license and we are offline
- // -> If it has expired less than 14 days ago, just work with no nag
- // messages
- System.setProperty(licenseName, VALID_KEY);
- addonChecker.setLicenseProvider(unreachableLicenseProvider);
- setCacheFileTs(System.currentTimeMillis() - (GRACE_DAYS_MSECS / 2),
- "normal");
- captureSystemOut();
- addonChecker.run();
-
- // Expired license and we are offline
- // -> After 14 days, interpret it as expired license
- setCacheFileTs(System.currentTimeMillis() - (GRACE_DAYS_MSECS * 2),
- "normal");
- try {
- addonChecker.run();
- Assert.fail();
- } catch (InvalidCvalException expected) {
- }
-
- // Invalid evaluation license
- // -> Fail compilation with a message
- // "Your evaluation license for TouchKit 4 is not valid"
- System.setProperty(licenseName, VALID_KEY);
- addonChecker.setLicenseProvider(unreachableLicenseProvider);
- setCacheFileTs(System.currentTimeMillis() - (GRACE_DAYS_MSECS / 2),
- "evaluation");
- try {
- addonChecker.run();
- Assert.fail();
- } catch (InvalidCvalException expected) {
- Assert.assertTrue(expected.getMessage().contains("expired"));
- }
-
- // Valid evaluation license
- // -> The choice on whether to show the message is generated in
- // widgetset
- // compilation phase. No license checks are done in application runtime.
- System.setProperty(licenseName, VALID_KEY);
- addonChecker.setLicenseProvider(unreachableLicenseProvider);
- setCacheFileTs(System.currentTimeMillis() + GRACE_DAYS_MSECS,
- "evaluation");
- List<CValUiInfo> uiInfo = addonChecker.run();
- Assert.assertEquals(1, uiInfo.size());
- Assert.assertEquals("Test " + productNameCval, uiInfo.get(0).product);
- Assert.assertEquals("evaluation", uiInfo.get(0).type);
-
- // Valid real license
- // -> Work as expected
- // -> Show info message “Using TouchKit 4 license
- // 312-312321-321312-3-12-312-312
- // licensed to <licensee> (1 developer license)”
- System.setProperty(licenseName, VALID_KEY);
- addonChecker.setLicenseProvider(validLicenseProvider);
- captureSystemOut();
- addonChecker.run();
- Assert.assertTrue(readSystemOut().contains("valid"));
- }
-
- @Test
- public void validateMultipleLicenses() throws Exception {
- addLicensedJarToClasspath(productNameCval, VAADIN_CVAL);
- addLicensedJarToClasspath(productNameAgpl, VAADIN_AGPL);
- addLicensedJarToClasspath(productNameApache, "apache");
-
- // We have a valid license for all products
- System.setProperty(licenseName, VALID_KEY);
- captureSystemOut();
- addonChecker.run();
- String out = readSystemOut();
- Assert.assertTrue(out.contains("valid"));
- Assert.assertTrue(out.contains("AGPL"));
- Assert.assertTrue(cacheExists(productNameCval));
- }
-
- private void setCacheFileTs(long expireTs, String type) {
- saveCache(productNameCval, null, false, expireTs, type);
- }
-
-}
diff --git a/client-compiler/tests/src/com/vaadin/tools/CvalAddonstCheckerUseCasesTest.java b/client-compiler/tests/src/com/vaadin/tools/CvalAddonstCheckerUseCasesTest.java
deleted file mode 100644
index 89c8fc1f81..0000000000
--- a/client-compiler/tests/src/com/vaadin/tools/CvalAddonstCheckerUseCasesTest.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- * Copyright 2000-2014 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.tools;
-
-import static com.vaadin.tools.CvalAddonsChecker.VAADIN_AGPL;
-import static com.vaadin.tools.CvalAddonsChecker.VAADIN_CVAL;
-import static com.vaadin.tools.CvalChecker.computeLicenseName;
-import static com.vaadin.tools.CvalChecker.deleteCache;
-import static com.vaadin.tools.CvalCheckerTest.INVALID_KEY;
-import static com.vaadin.tools.CvalCheckerTest.VALID_KEY;
-import static com.vaadin.tools.CvalCheckerTest.addLicensedJarToClasspath;
-import static com.vaadin.tools.CvalCheckerTest.cachedPreferences;
-import static com.vaadin.tools.CvalCheckerTest.captureSystemOut;
-import static com.vaadin.tools.CvalCheckerTest.expiredLicenseProvider;
-import static com.vaadin.tools.CvalCheckerTest.productNameAgpl;
-import static com.vaadin.tools.CvalCheckerTest.productNameCval;
-import static com.vaadin.tools.CvalCheckerTest.readSystemOut;
-import static com.vaadin.tools.CvalCheckerTest.restoreSystemOut;
-import static com.vaadin.tools.CvalCheckerTest.saveCache;
-import static com.vaadin.tools.CvalCheckerTest.unreachableLicenseProvider;
-import static com.vaadin.tools.CvalCheckerTest.validEvaluationLicenseProvider;
-import static com.vaadin.tools.CvalCheckerTest.validLicenseProvider;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-import com.vaadin.tools.CvalChecker.CvalServer;
-
-/**
- * Tests for Use Cases
- */
-public class CvalAddonstCheckerUseCasesTest {
-
- enum License {
- NONE, EVAL, INVALID, REAL, EVAL_EXPIRED, REAL_EXPIRED
- };
-
- enum Version {
- AGPL, CVAL
- };
-
- enum Validated {
- YES, NO, OLD_KEY
- };
-
- enum Network {
- ON, OFF
- };
-
- enum Compile {
- YES, NO
- };
-
- enum Cached {
- YES, NO
- };
-
- enum Message {
- AGPL("AGPL"), VALID(">.* valid"), INVALID("not valid"), NO_LICENSE(
- "not found"), NO_VALIDATED("has not been validated"), EXPIRED(
- "has expired"), EVALUATION("evaluation");
-
- String msg;
-
- Message(String s) {
- msg = s;
- }
- }
-
- @Test
- public void testUseCases() throws Exception {
- useCase(1, License.NONE, Version.AGPL, Validated.NO, Network.OFF,
- Compile.YES, Cached.NO, Message.AGPL);
-
- useCase(2, License.NONE, Version.CVAL, Validated.NO, Network.ON,
- Compile.NO, Cached.NO, Message.NO_LICENSE);
-
- useCase(3, License.NONE, Version.CVAL, Validated.NO, Network.OFF,
- Compile.NO, Cached.NO, Message.NO_LICENSE);
-
- useCase(4, License.EVAL, Version.CVAL, Validated.NO, Network.ON,
- Compile.YES, Cached.YES, Message.EVALUATION);
-
- useCase(5, License.INVALID, Version.CVAL, Validated.NO, Network.OFF,
- Compile.YES, Cached.NO, Message.NO_VALIDATED);
-
- useCase(6, License.INVALID, Version.CVAL, Validated.NO, Network.ON,
- Compile.NO, Cached.NO, Message.INVALID);
-
- useCase(7, License.REAL, Version.CVAL, Validated.NO, Network.ON,
- Compile.YES, Cached.YES, Message.VALID);
-
- useCase(8, License.REAL, Version.CVAL, Validated.NO, Network.OFF,
- Compile.YES, Cached.NO, Message.NO_VALIDATED);
-
- useCase(9, License.REAL, Version.CVAL, Validated.YES, Network.OFF,
- Compile.YES, Cached.YES, Message.VALID);
-
- useCase(10, License.EVAL_EXPIRED, Version.CVAL, Validated.NO,
- Network.ON, Compile.NO, Cached.YES, Message.EXPIRED);
-
- useCase(11, License.EVAL_EXPIRED, Version.CVAL, Validated.YES,
- Network.OFF, Compile.NO, Cached.YES, Message.EXPIRED);
-
- useCase(12, License.REAL_EXPIRED, Version.CVAL, Validated.YES,
- Network.OFF, Compile.NO, Cached.YES, Message.EXPIRED);
-
- useCase(13, License.REAL_EXPIRED, Version.CVAL, Validated.NO,
- Network.ON, Compile.NO, Cached.YES, Message.EXPIRED);
-
- useCase(14, License.INVALID, Version.CVAL, Validated.OLD_KEY,
- Network.OFF, Compile.YES, Cached.NO, Message.NO_VALIDATED);
- }
-
- @Test
- public void testMultipleLicenseUseCases() throws Exception {
- addLicensedJarToClasspath("test.foo", VAADIN_CVAL);
- System.setProperty(computeLicenseName("test.foo"), VALID_KEY);
-
- useCase(15, License.REAL, Version.CVAL, Validated.YES, Network.OFF,
- Compile.YES, Cached.YES, Message.NO_VALIDATED);
-
- useCase(16, License.REAL, Version.CVAL, Validated.YES, Network.ON,
- Compile.NO, Cached.YES, Message.INVALID);
- }
-
- private void useCase(int number, License lic, Version ver, Validated val,
- Network net, Compile res, Cached cached, Message msg)
- throws Exception {
-
- if (ver == Version.AGPL) {
- addLicensedJarToClasspath(productNameAgpl, VAADIN_AGPL);
- addLicensedJarToClasspath(productNameCval, null);
- } else {
- addLicensedJarToClasspath(productNameAgpl, null);
- addLicensedJarToClasspath(productNameCval, VAADIN_CVAL);
- }
-
- String licenseName = computeLicenseName(productNameCval);
-
- if (lic == License.NONE) {
- System.getProperties().remove(licenseName);
- } else if (lic == License.INVALID) {
- System.setProperty(licenseName, INVALID_KEY);
- } else {
- System.setProperty(licenseName, VALID_KEY);
- }
-
- if (val == Validated.NO) {
- deleteCache(productNameCval);
- } else {
- String type = lic == License.EVAL || lic == License.EVAL_EXPIRED ? "evaluation"
- : null;
- Boolean expired = lic == License.EVAL_EXPIRED
- || lic == License.REAL_EXPIRED ? true : null;
- String key = val == Validated.OLD_KEY ? "oldkey" : null;
- saveCache(productNameCval, key, expired, null, type);
- }
-
- CvalServer licenseProvider = validLicenseProvider;
- if (net == Network.OFF) {
- licenseProvider = unreachableLicenseProvider;
- } else if (lic == License.EVAL_EXPIRED || lic == License.REAL_EXPIRED) {
- licenseProvider = expiredLicenseProvider;
- } else if (lic == License.EVAL) {
- licenseProvider = validEvaluationLicenseProvider;
- }
-
- CvalAddonsChecker addonChecker = new CvalAddonsChecker();
- addonChecker.setLicenseProvider(licenseProvider).setFilter(".*test.*");
-
- captureSystemOut();
-
- String testNumber = "Test #" + number + " ";
- String message;
- try {
- addonChecker.run();
- message = readSystemOut();
- if (res == Compile.NO) {
- Assert.fail(testNumber + "Exception not thrown:" + message);
- }
- } catch (Exception e) {
- restoreSystemOut();
- message = e.getMessage();
- if (res == Compile.YES) {
- Assert.fail(testNumber + "Unexpected Exception: "
- + e.getMessage());
- }
- }
-
- // System.err.println("\n> " + testNumber + " " + lic + " " + ver + " "
- // + val + " " + net + " " + res + " " + cached + "\n" + message);
-
- Assert.assertTrue(testNumber + "Fail:\n" + message
- + "\nDoes not match:" + msg.msg,
- message.matches("(?s).*" + msg.msg + ".*"));
-
- String c = cachedPreferences(productNameCval);
- Assert.assertTrue(testNumber + "Fail: cacheExists != "
- + (cached == Cached.YES) + "\n " + c,
- (c != null) == (cached == Cached.YES));
- }
-}
diff --git a/client-compiler/tests/src/com/vaadin/tools/CvalCheckerTest.java b/client-compiler/tests/src/com/vaadin/tools/CvalCheckerTest.java
deleted file mode 100644
index 6da455b2f6..0000000000
--- a/client-compiler/tests/src/com/vaadin/tools/CvalCheckerTest.java
+++ /dev/null
@@ -1,495 +0,0 @@
-/*
- * Copyright 2000-2014 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.tools;
-
-import static com.vaadin.tools.CvalAddonsChecker.VAADIN_ADDON_LICENSE;
-import static com.vaadin.tools.CvalAddonsChecker.VAADIN_ADDON_NAME;
-import static com.vaadin.tools.CvalAddonsChecker.VAADIN_ADDON_TITLE;
-import static com.vaadin.tools.CvalAddonsChecker.VAADIN_ADDON_VERSION;
-import static com.vaadin.tools.CvalChecker.GRACE_DAYS_MSECS;
-import static com.vaadin.tools.CvalChecker.cacheLicenseInfo;
-import static com.vaadin.tools.CvalChecker.deleteCache;
-import static com.vaadin.tools.CvalChecker.parseJson;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileDescriptor;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.PrintStream;
-import java.io.PrintWriter;
-import java.lang.reflect.Method;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.jar.JarOutputStream;
-import java.util.jar.Manifest;
-import java.util.prefs.Preferences;
-
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.vaadin.tools.CvalChecker.CvalInfo;
-import com.vaadin.tools.CvalChecker.CvalServer;
-import com.vaadin.tools.CvalChecker.InvalidCvalException;
-import com.vaadin.tools.CvalChecker.UnreachableCvalServerException;
-
-/**
- * The CvalChecker test.
- */
-public class CvalCheckerTest {
-
- static final String productNameCval = "test.cval";
- static final String productTitleCval = "Vaadin Test";
- static final String productNameAgpl = "test.agpl";
- static final String productTitleAgpl = "Vaadin Test";
- static final String productNameApache = "test.apache";
- static final String VALID_KEY = "valid";
- static final String INVALID_KEY = "invalid";
-
- static final String responseJson = "{'licenseKey':'" + VALID_KEY + "',"
- + "'licensee':'Test User','type':'normal',"
- + "'expiredEpoch':1893511225000," + "'product':{'name':'"
- + productNameCval + "', 'version': 2}}";
-
- static final String responseJsonWithNullVersion = "{'licenseKey':'"
- + VALID_KEY + "'," + "'licensee':'Test User','type':'normal',"
- + "'expiredEpoch':1893511225000," + "'product':{'name':'"
- + productNameCval + "', 'version': null}}";
-
- private static ByteArrayOutputStream outContent;
-
- // A provider returning a valid license if productKey is valid or null if
- // invalid
- static final CvalServer validLicenseProvider = new CvalServer() {
- @Override
- String askServer(String productName, String productKey, int timeout) {
- return VALID_KEY.equals(productKey) ? responseJson : null;
- }
- };
- // A provider returning a valid evaluation license
- static final CvalServer validEvaluationLicenseProvider = new CvalServer() {
- @Override
- String askServer(String productName, String productKey, int timeout) {
- return responseJson.replace("normal", "evaluation");
- }
- };
- // A provider returning an expired license with a server message
- static final CvalServer expiredLicenseProviderWithMessage = new CvalServer() {
- @Override
- String askServer(String productName, String productKey, int timeout) {
- return responseJson
- .replace("'expired",
- "'message':'Custom\\\\nServer\\\\nMessage','expired':true,'expired");
- }
- };
- // A provider returning an expired license with a server message
- static final CvalServer expiredLicenseProvider = new CvalServer() {
- @Override
- String askServer(String productName, String productKey, int timeout) {
- return responseJson.replace("'expired", "'expired':true,'expired");
- }
- };
- // A provider returning an expired epoch license
- static final CvalServer expiredEpochLicenseProvider = new CvalServer() {
- @Override
- String askServer(String productName, String productKey, int timeout) {
- long ts = System.currentTimeMillis() - GRACE_DAYS_MSECS - 1000;
- return responseJson.replace("1893511225000", "" + ts);
- }
- };
- // A provider returning an unlimited license
- static final CvalServer unlimitedLicenseProvider = new CvalServer() {
- @Override
- String askServer(String productName, String productKey, int timeout) {
- return responseJson.replaceFirst("1893511225000", "null");
- }
- };
- // An unreachable provider
- static final CvalServer unreachableLicenseProvider = new CvalServer() {
- @Override
- String askServer(String productName, String productKey, int timeout)
- throws IOException {
- // Normally there is no route for this ip in public routers, so we
- // should get a timeout.
- licenseUrl = "http://localhost:9999/";
- return super.askServer(productName, productKey, 1000);
- }
- };
- // A provider with 'null' in the version field
- static final CvalServer nullVersionLicenseProvider = new CvalServer() {
- @Override
- String askServer(String productName, String productKey, int timeout)
- throws IOException {
- return responseJsonWithNullVersion;
- }
- };
-
- private CvalChecker licenseChecker;
- private String licenseName;
-
- @Before
- public void setup() {
- licenseChecker = new CvalChecker()
- .setLicenseProvider(validLicenseProvider);
- licenseName = CvalChecker.computeLicenseName(productNameCval);
- System.getProperties().remove(licenseName);
- deleteCache(productNameCval);
- }
-
- @Test
- public void testValidateProduct() throws Exception {
- deleteCache(productNameCval);
-
- // If the license key in our environment is null, throw an exception
- try {
- licenseChecker.validateProduct(productNameCval, "2.1",
- productTitleCval);
- Assert.fail();
- } catch (InvalidCvalException expected) {
- assertEquals(productNameCval, expected.name);
- }
- Assert.assertFalse(cacheExists(productNameCval));
-
- // If the license key is empty, throw an exception
- System.setProperty(licenseName, "");
- try {
- licenseChecker.validateProduct(productNameCval, "2.1",
- productTitleCval);
- Assert.fail();
- } catch (InvalidCvalException expected) {
- assertEquals(productNameCval, expected.name);
- }
- Assert.assertFalse(cacheExists(productNameCval));
-
- // If license key is invalid, throw an exception
- System.setProperty(licenseName, "invalid");
- try {
- licenseChecker.validateProduct(productNameCval, "2.1",
- productTitleCval);
- Assert.fail();
- } catch (InvalidCvalException expected) {
- assertEquals(productNameCval, expected.name);
- }
- Assert.assertFalse(cacheExists(productNameCval));
-
- // Fail if version is bigger
- System.setProperty(licenseName, VALID_KEY);
- try {
- licenseChecker.validateProduct(productNameCval, "3.0",
- productTitleCval);
- Assert.fail();
- } catch (InvalidCvalException expected) {
- assertEquals(productNameCval, expected.name);
- assertTrue(expected.getMessage().contains("is not valid"));
- }
- Assert.assertFalse(cacheExists(productNameCval));
-
- // Success if license key and version are valid
- System.setProperty(licenseName, VALID_KEY);
- licenseChecker
- .validateProduct(productNameCval, "2.1", productTitleCval);
- Assert.assertTrue(cacheExists(productNameCval));
-
- // Success if license and cache file are valid, although the license
- // server is offline
- licenseChecker.setLicenseProvider(unreachableLicenseProvider);
- licenseChecker
- .validateProduct(productNameCval, "2.1", productTitleCval);
- Assert.assertTrue(cacheExists(productNameCval));
-
- // Fail if license key changes although cache file were validated
- // previously and it is ok, we are offline
- try {
- System.setProperty(licenseName, INVALID_KEY);
- licenseChecker.validateProduct(productNameCval, "2.1",
- productTitleCval);
- Assert.fail();
- } catch (InvalidCvalException expected) {
- Assert.fail();
- } catch (UnreachableCvalServerException expected) {
- assertEquals(productNameCval, expected.name);
- }
- Assert.assertFalse(cacheExists(productNameCval));
-
- // Fail with unreachable exception if license has never verified and
- // server is offline
- try {
- System.setProperty(licenseName, VALID_KEY);
- licenseChecker.validateProduct(productNameCval, "2.1",
- productTitleCval);
- Assert.fail();
- } catch (InvalidCvalException expected) {
- Assert.fail();
- } catch (UnreachableCvalServerException expected) {
- assertEquals(productNameCval, expected.name);
- }
- Assert.assertFalse(cacheExists(productNameCval));
-
- // Fail when expired flag comes in the server response, although the
- // expired is valid.
- deleteCache(productNameCval);
- licenseChecker.setLicenseProvider(expiredLicenseProviderWithMessage);
- try {
- licenseChecker.validateProduct(productNameCval, "2.1",
- productTitleCval);
- Assert.fail();
- } catch (InvalidCvalException expected) {
- assertEquals(productNameCval, expected.name);
- // Check that we use server customized message if it comes
- Assert.assertTrue(expected.getMessage().contains("Custom"));
- }
- Assert.assertTrue(cacheExists(productNameCval));
-
- // Check an unlimited license
- deleteCache(productNameCval);
- licenseChecker.setLicenseProvider(unlimitedLicenseProvider);
- licenseChecker
- .validateProduct(productNameCval, "2.1", productTitleCval);
- Assert.assertTrue(cacheExists(productNameCval));
-
- // Fail if expired flag does not come, but expired epoch is in the past
- System.setProperty(licenseName, VALID_KEY);
- deleteCache(productNameCval);
- licenseChecker.setLicenseProvider(expiredEpochLicenseProvider);
- try {
- licenseChecker.validateProduct(productNameCval, "2.1",
- productTitleCval);
- Assert.fail();
- } catch (InvalidCvalException expected) {
- assertEquals(productNameCval, expected.name);
- }
- Assert.assertTrue(cacheExists(productNameCval));
-
- deleteCache(productNameCval);
- licenseChecker.setLicenseProvider(nullVersionLicenseProvider);
- licenseChecker
- .validateProduct(productNameCval, "2.1", productTitleCval);
- Assert.assertTrue(cacheExists(productNameCval));
- }
-
- /*
- * Creates a new .jar file with a MANIFEST.MF with all vaadin license info
- * attributes set, and add the .jar to the classpath
- */
- static void addLicensedJarToClasspath(String productName, String licenseType)
- throws Exception {
- // Create a manifest with Vaadin CVAL license
- Manifest testManifest = new Manifest();
- testManifest.getMainAttributes().putValue("Manifest-Version", "1.0");
- testManifest.getMainAttributes().putValue(VAADIN_ADDON_LICENSE,
- licenseType);
- testManifest.getMainAttributes().putValue(VAADIN_ADDON_NAME,
- productName);
- testManifest.getMainAttributes().putValue(VAADIN_ADDON_TITLE,
- "Test " + productName);
- testManifest.getMainAttributes().putValue(VAADIN_ADDON_VERSION, "2");
-
- // Create a temporary Jar
- File testJarFile = File.createTempFile("vaadin." + productName, "jar");
- testJarFile.deleteOnExit();
- JarOutputStream target = new JarOutputStream(new FileOutputStream(
- testJarFile), testManifest);
- target.close();
-
- // Add the new jar to our classpath (use reflection)
- URL url = new URL("file://" + testJarFile.getAbsolutePath());
- final Method addURL = URLClassLoader.class.getDeclaredMethod("addURL",
- new Class[] { URL.class });
- addURL.setAccessible(true);
- final URLClassLoader urlClassLoader = (URLClassLoader) Thread
- .currentThread().getContextClassLoader();
- addURL.invoke(urlClassLoader, new Object[] { url });
- }
-
- static boolean cacheExists(String productName) {
- return cachedPreferences(productName) != null;
- }
-
- static String cachedPreferences(String productName) {
- // ~/Library/Preferences/com.apple.java.util.prefs.plist
- // .java/.userPrefs/com/google/gwt/dev/shell/prefs.xml
- // HKEY_CURRENT_USER\SOFTWARE\JavaSoft\Prefs
- Preferences p = Preferences.userNodeForPackage(CvalInfo.class);
- return p.get(productName, null);
- }
-
- static void saveCache(String productName, String key, Boolean expired,
- Long expireTs, String type) {
- String json = responseJson.replace(productNameCval, productName);
- if (expired != null && expired) {
- expireTs = System.currentTimeMillis() - GRACE_DAYS_MSECS - 1000;
- }
- if (expireTs != null) {
- json = json.replace("1893511225000", "" + expireTs);
- }
- if (key != null) {
- json = json.replace(VALID_KEY, key);
- }
- if (type != null) {
- json = json.replace("normal", type);
-
- }
- cacheLicenseInfo(parseJson(json));
- }
-
- static void captureSystemOut() {
- outContent = new ByteArrayOutputStream();
- System.setOut(new PrintStream(outContent));
- }
-
- static String readSystemOut() {
- restoreSystemOut();
- return outContent.toString();
- }
-
- static void restoreSystemOut() {
- System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out)));
- }
-
- @Test(expected = FileNotFoundException.class)
- public void testReadKeyFromFile_NonexistingLicenseFile() throws Exception {
- licenseChecker.readKeyFromFile(new URL("file:///foobar.baz"), 4);
- }
-
- @Test
- public void testReadKeyFromFile_LicenseFileEmpty() throws Exception {
- File tmpLicenseFile = File.createTempFile("license", "lic");
-
- assertNull(licenseChecker.readKeyFromFile(tmpLicenseFile.toURI()
- .toURL(), 4));
-
- tmpLicenseFile.delete();
- }
-
- @Test
- public void testReadKeyFromFile_LicenseFileHasSingleUnidentifiedKey()
- throws Exception {
- File tmpLicenseFile = File.createTempFile("license", "lic");
- PrintWriter out = new PrintWriter(tmpLicenseFile);
- out.println("this-is-a-license");
- out.close();
-
- assertEquals("this-is-a-license", licenseChecker.readKeyFromFile(
- tmpLicenseFile.toURI().toURL(), 4));
-
- tmpLicenseFile.delete();
- }
-
- @Test
- public void testReadKeyFromFile_LicenseFileHasSingleIdentifiedKey()
- throws Exception {
- File tmpLicenseFile = File.createTempFile("license", "lic");
- PrintWriter out = new PrintWriter(tmpLicenseFile);
- out.println("4=this-is-a-license");
- out.close();
-
- assertEquals("this-is-a-license", licenseChecker.readKeyFromFile(
- tmpLicenseFile.toURI().toURL(), 4));
-
- tmpLicenseFile.delete();
- }
-
- @Test
- public void testReadKeyFromFile_LicenseFileHasMultipleKeys()
- throws Exception {
- File tmpLicenseFile = File.createTempFile("license", "lic");
- PrintWriter out = new PrintWriter(tmpLicenseFile);
- out.println("4=this-is-a-license");
- out.println("5=this-is-another-license");
- out.close();
-
- assertEquals("this-is-a-license", licenseChecker.readKeyFromFile(
- tmpLicenseFile.toURI().toURL(), 4));
- assertEquals("this-is-another-license", licenseChecker.readKeyFromFile(
- tmpLicenseFile.toURI().toURL(), 5));
-
- tmpLicenseFile.delete();
- }
-
- @Test
- public void testReadKeyFromFile_LicenseFileHasMultipleKeysWithWhitespace()
- throws Exception {
- File tmpLicenseFile = File.createTempFile("license", "lic");
- PrintWriter out = new PrintWriter(tmpLicenseFile);
- out.println("4 = this-is-a-license");
- out.println("5 = this-is-another-license");
- out.close();
-
- assertEquals("this-is-a-license", licenseChecker.readKeyFromFile(
- tmpLicenseFile.toURI().toURL(), 4));
- assertEquals("this-is-another-license", licenseChecker.readKeyFromFile(
- tmpLicenseFile.toURI().toURL(), 5));
-
- tmpLicenseFile.delete();
- }
-
- @Test
- public void testReadKeyFromFile_RequestedVersionMissing() throws Exception {
- File tmpLicenseFile = File.createTempFile("license", "lic");
- PrintWriter out = new PrintWriter(tmpLicenseFile);
- out.println("4 = this-is-a-license");
- out.println("5 = this-is-another-license");
- out.close();
-
- assertNull(licenseChecker.readKeyFromFile(tmpLicenseFile.toURI()
- .toURL(), 3));
-
- tmpLicenseFile.delete();
- }
-
- @Test
- public void testReadKeyFromFile_FallbackToDefaultKey() throws Exception {
- File tmpLicenseFile = File.createTempFile("license", "lic");
- PrintWriter out = new PrintWriter(tmpLicenseFile);
- out.println("this-is-a-license");
- out.println("5 = this-is-another-license");
- out.close();
-
- assertEquals("this-is-a-license", licenseChecker.readKeyFromFile(
- tmpLicenseFile.toURI().toURL(), 3));
- assertEquals("this-is-a-license", licenseChecker.readKeyFromFile(
- tmpLicenseFile.toURI().toURL(), 4));
- assertEquals("this-is-another-license", licenseChecker.readKeyFromFile(
- tmpLicenseFile.toURI().toURL(), 5));
-
- tmpLicenseFile.delete();
- }
-
- @Test
- public void testReadKeyFromFile_FallbackToDefaultKeyReversed()
- throws Exception {
- File tmpLicenseFile = File.createTempFile("license", "lic");
- PrintWriter out = new PrintWriter(tmpLicenseFile);
- out.println("5 = this-is-another-license");
- out.println("this-is-a-license");
- out.close();
-
- assertEquals("this-is-a-license", licenseChecker.readKeyFromFile(
- tmpLicenseFile.toURI().toURL(), 3));
- assertEquals("this-is-a-license", licenseChecker.readKeyFromFile(
- tmpLicenseFile.toURI().toURL(), 4));
- assertEquals("this-is-another-license", licenseChecker.readKeyFromFile(
- tmpLicenseFile.toURI().toURL(), 5));
-
- tmpLicenseFile.delete();
- }
-}