diff --git a/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/api/memoization/BundleCachingIntegrationTest.java b/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/api/memoization/BundleCachingIntegrationTest.java index bbd8e2c36..801b22b39 100644 --- a/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/api/memoization/BundleCachingIntegrationTest.java +++ b/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/api/memoization/BundleCachingIntegrationTest.java @@ -51,12 +51,12 @@ public void stopServer() throws Exception { } @After - public void deleteCreatedBrjsAppsDirFromTemp() throws IOException { + public void deleteCreatedAppsDirFromTemp() throws IOException { if (secondaryTempFolder != null) FileUtils.deleteQuietly(secondaryTempFolder); } @Test @Ignore //TODO: this test is unreliable - fix it - public void fileWatcherDetectsChangesWhenBrjsAppsAtTheSameLevelAsSdk() throws Exception { + public void fileWatcherDetectsChangesWhenAppsAtTheSameLevelAsSdk() throws Exception { given(brjs).hasBeenAuthenticallyCreatedWithFileWatcherThread(); App app = brjs.app("app1"); Aspect aspect = app.defaultAspect(); @@ -72,7 +72,7 @@ public void fileWatcherDetectsChangesWhenBrjsAppsAtTheSameLevelAsSdk() throws Ex } @Test @Ignore //TODO: this test is unreliable - fix it - public void fileWatcherPollsFolderBrjsAppsAtTheSameLevelAsSdk() throws Throwable { + public void fileWatcherPollsFolderAppsAtTheSameLevelAsSdk() throws Throwable { given(brjs).hasBeenAuthenticallyCreatedWithFilePollingThread(); App app = brjs.app("app1"); Aspect aspect = app.defaultAspect(); @@ -148,10 +148,10 @@ public void exceptionIsThrownIfFileObserverValueIsInvalid() throws Throwable { } @Test @Ignore - public void fileWatcherDetectsChangesWhenBrjsAppsAtAnotherLevelThanTheSdk() throws Exception { + public void fileWatcherDetectsChangesWhenAppsAtAnotherLevelThanTheSdk() throws Exception { secondaryTempFolder = org.bladerunnerjs.utility.FileUtils.createTemporaryDirectory(BRJSTest.class); - given(secondaryTempFolder).containsFolder("brjs-apps") - .and(brjs).hasBeenAuthenticallyCreatedWithFileWatcherThreadAndWorkingDir(new File(secondaryTempFolder, "brjs-apps")); + given(secondaryTempFolder).containsFolder("apps") + .and(brjs).hasBeenAuthenticallyCreatedWithFileWatcherThreadAndWorkingDir(new File(secondaryTempFolder, "apps")); App app = brjs.app("app1"); Aspect aspect = app.defaultAspect(); given(app).hasBeenCreated() diff --git a/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/api/memoization/FileModificationRegistryThreadSafetyTest.java b/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/api/memoization/FileModificationRegistryThreadSafetyTest.java index aa117c9bc..3096c2b75 100644 --- a/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/api/memoization/FileModificationRegistryThreadSafetyTest.java +++ b/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/api/memoization/FileModificationRegistryThreadSafetyTest.java @@ -24,7 +24,7 @@ public class FileModificationRegistryThreadSafetyTest @Before public void setup() throws Exception { - testSdkDirectory = BRJSTestModelFactory.createTestSdkDirectory(); + testSdkDirectory = BRJSTestModelFactory.createRootTestDir(); fileInRoot = new File(testSdkDirectory, "some-file.txt"); dirInRoot = new File(testSdkDirectory, "some-dir"); fileInChildDir = new File(dirInRoot, "nested-file.txt"); diff --git a/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/api/memoization/FileObserverTest.java b/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/api/memoization/FileObserverTest.java index 74d984442..fb9259b47 100644 --- a/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/api/memoization/FileObserverTest.java +++ b/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/api/memoization/FileObserverTest.java @@ -181,25 +181,25 @@ public void fileVersionIsIncrementedForDeletedFilesInASubDirDir() throws Excepti public void fileVersionIsIncrementedForDirsInASeperateAppsDirectory() throws Exception { brjs.close(); secondaryTempFolder = org.bladerunnerjs.utility.FileUtils.createTemporaryDirectory(BRJSTest.class); - File brjsAppsDir = new File(secondaryTempFolder, "brjs-apps"); - brjsAppsDir.mkdir(); + File appsDir = new File(secondaryTempFolder, "apps"); + appsDir.mkdir(); given(brjs).hasBeenCreatedWithWorkingDir(secondaryTempFolder); modificationRegistry = brjs.getFileModificationRegistry(); fileObserver = fileObserverFactory.createObserver(brjs); brjsDir = brjs.dir().getUnderlyingFile(); - File dir1 = new File(brjsAppsDir, "dir1"); + File dir1 = new File(appsDir, "dir1"); File file = new File(dir1, "someFile.txt"); file.getParentFile().mkdirs(); fileObserver.start(); long oldFileVersion = modificationRegistry.getFileVersion(file); long oldDir1Version = modificationRegistry.getFileVersion(dir1); - long oldDir2Version = modificationRegistry.getFileVersion(brjsAppsDir); + long oldDir2Version = modificationRegistry.getFileVersion(appsDir); file.createNewFile(); assertVersionIncreased(oldFileVersion, file); assertVersionIncreased(oldDir1Version, dir1); - assertVersionIncreased(oldDir2Version, brjsAppsDir); + assertVersionIncreased(oldDir2Version, appsDir); } @Test diff --git a/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/spec/DashboardLoadingTest.java b/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/spec/DashboardLoadingTest.java index 0c294da82..0e3098047 100644 --- a/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/spec/DashboardLoadingTest.java +++ b/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/spec/DashboardLoadingTest.java @@ -32,7 +32,7 @@ public static void main(String[] args) throws Exception { @Before public void initTestObjects() throws Exception { - testSdkDirectory = new File("../brjs-sdk/sdk/").getAbsoluteFile(); + testRootDirectory = new File("../brjs-sdk/sdk/").getAbsoluteFile(); System.out.print("BRJS initialization: "); long startTime = new Date().getTime(); given(brjs).hasBeenAuthenticallyCreated(); diff --git a/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/spec/brjs/appserver/AppServerTest.java b/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/spec/brjs/appserver/AppServerTest.java index d2720f760..affd65740 100644 --- a/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/spec/brjs/appserver/AppServerTest.java +++ b/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/spec/brjs/appserver/AppServerTest.java @@ -55,7 +55,7 @@ public void initTestObjects() throws Exception { .and(brjs).hasContentPlugins(new MockContentPlugin()) .and(brjs).hasBeenCreated() .and(brjs).localeSwitcherHasContents("locale-forwarder.js") - .and(brjs).containsFolder("brjs-apps") + .and(brjs).containsFolder("apps") .and(brjs).containsFolder("sdk/system-applications"); brjs.bladerunnerConf().setJettyPort(appServerPort); brjs.bladerunnerConf().write(); @@ -104,6 +104,8 @@ public void appIsDeployedWhenAppServerStarts() throws Exception then(appServer).requestCanBeMadeFor("/app1") .and(appServer).requestIs302Redirected("/","/dashboard") .and(logging).infoMessageReceived(SERVER_STARTING_LOG_MSG, "BladeRunnerJS") + .and(logging).infoMessageReceived(BRJS.Messages.NO_APPS_DISCOVERED, "system") + .and(logging).infoMessageReceived(BRJS.Messages.APPS_DISCOVERED, "User", "app1") .and(logging).infoMessageReceived(SERVER_STARTED_LOG_MESSAGE, appServerPort) .and(logging).debugMessageReceived(DEPLOYING_APP_MSG, "app1"); } @@ -216,6 +218,9 @@ public void otherServletsCanBeAddedWithRootMapping() throws Exception .and(templates).templateGroupCreated() .and(templates.template("app")).containsFile("fileForApp.txt") .and(app1).hasBeenPopulated("default") + .and(app1).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: app1") .and(appServer).started() .and(appServer).appHasServlet(app1, helloWorldServlet, "/servlet/hello/*"); then(appServer).requestForUrlReturns("/app1/servlet/hello", "Hello World!"); @@ -228,6 +233,9 @@ public void otherServletsCanBeAddedWithExtensionMapping() throws Exception .and(templates).templateGroupCreated() .and(templates.template("app")).containsFile("fileForApp.txt") .and(app1).hasBeenPopulated("default") + .and(app1).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: app1") .and(appServer).started() .and(appServer).appHasServlet(app1, helloWorldServlet, "*.mock"); then(appServer).requestForUrlReturns("/app1/hello.mock", "Hello World!"); @@ -248,7 +256,7 @@ public void newAppsAreAutomaticallyHostedWhenRunningCreateAppCommandFromADiffere @Test public void newAppsAreAutomaticallyHostedWhenRunningCreateAppCommandFromADifferentModelInstanceAndOnlyAppsDirectoryExists() throws Exception { - given(brjs).doesNotContainFolder("brjs-apps") + given(brjs).doesNotContainFolder("apps") .and(brjs).containsFolder("apps") .and(brjs).hasBeenAuthenticallyCreated(); /*and*/ secondBrjsProcess.close(); secondBrjsProcess = createNonTestModel(); @@ -301,7 +309,7 @@ public void fileWatcherThreadDoesntThrowAnExceptionWhenAFileExistsInAppsDir() th { given(brjs).hasBeenAuthenticallyCreatedWithFileWatcherThread() .and(templates).templateGroupCreated() - .and(brjs).containsFile("brjs-apps/file.txt") + .and(brjs).containsFile("apps/file.txt") .and(brjs.applicationServer(appServerPort)).started(); when(secondBrjsProcess).runCommand("create-app", "app1", "blah") .and(app1Conf).localesUpdatedTo("en", "de"); @@ -311,6 +319,9 @@ public void fileWatcherThreadDoesntThrowAnExceptionWhenAFileExistsInAppsDir() th @Test public void errorCode500IsThrownIfBadFileIsRequired() throws Exception { given(app1.defaultAspect()).indexPageRequires("appns/App") + .and(app1).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: app1") .and(app1.defaultAspect()).classFileHasContent("appns/App", "require('badFile')") .and(appServer).started(); then(appServer).requestForUrlContains("/app1/v/dev/js/dev/combined/bundle.js", "Error 500"); @@ -319,6 +330,9 @@ public void errorCode500IsThrownIfBadFileIsRequired() throws Exception { @Test public void errorCode400IsThrownIfTheRequestIsMalformed() throws Exception { given(app1.defaultAspect()).indexPageHasContent("") + .and(app1).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: app1") .and(appServer).started(); then(appServer).requestForUrlContains("/app1/v/dev/js/malformed-request", "Error 400"); } diff --git a/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/spec/brjs/appserver/ServedAppBundleTest.java b/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/spec/brjs/appserver/ServedAppBundleTest.java index cb12536d2..0bf313f1a 100644 --- a/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/spec/brjs/appserver/ServedAppBundleTest.java +++ b/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/spec/brjs/appserver/ServedAppBundleTest.java @@ -33,6 +33,9 @@ public void initTestObjects() throws Exception { BladeWorkbench workbench = b1.workbench(); given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(aspect).hasClass("appns/Class1") .and(aspect).indexPageRefersTo("appns.Class1") .and(b1).hasClass("appns/bs/b1/Class") diff --git a/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/spec/brjs/appserver/ServedAppTest.java b/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/spec/brjs/appserver/ServedAppTest.java index acb9a58f6..3cb0cd6c7 100644 --- a/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/spec/brjs/appserver/ServedAppTest.java +++ b/brjs-core-tests/src/test-integration/java/org/bladerunnerjs/spec/brjs/appserver/ServedAppTest.java @@ -76,6 +76,9 @@ public void stopServer() throws Exception public void jspSupportIsEnabled() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(aspect).containsFileWithContents("index.jsp", "<%= 1 + 2 %>") .and(appServer).started(); then(appServer).requestForUrlReturns("/app/", "3"); @@ -85,6 +88,9 @@ public void jspSupportIsEnabled() throws Exception public void indexPageCanBeAccessed() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(aspect).containsFileWithContents("index.html", "aspect index.html") .and(appServer).started(); then(appServer).requestForUrlReturns("/app/", "aspect index.html"); @@ -94,6 +100,9 @@ public void indexPageCanBeAccessed() throws Exception public void localeForwarderPageCanBeAccessedWithoutEndingInForwardSlash() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(appServer).started(); then(appServer).requestIs302Redirected("/app", "/app/"); } @@ -102,6 +111,9 @@ public void localeForwarderPageCanBeAccessedWithoutEndingInForwardSlash() throws public void indexPageCanBeAccessedWithoutEndingInForwardSlash() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(aspect).containsFileWithContents("index.html", "aspect index.html") .and(appServer).started(); then(appServer).requestIs302Redirected("/app", "/app/"); @@ -111,6 +123,9 @@ public void indexPageCanBeAccessedWithoutEndingInForwardSlash() throws Exception public void localeForwarderPageOfANonDefaultAspectCanBeAccessedWithoutEndingInForwardSlash() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(anotherAspect).hasBeenPopulated() .and(appServer).started(); then(appServer).requestIs302Redirected("/app/another", "/app/another/"); @@ -120,6 +135,9 @@ public void localeForwarderPageOfANonDefaultAspectCanBeAccessedWithoutEndingInFo public void localeRequestsAreOnlyRedirectedIfTheyAreValidModelRequests() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(anotherAspect).containsFileWithContents("index.html", "aspect index.html") .and(appServer).started() .and(appServer).appHasServlet(app, new HelloWorldServlet(), "/my_servlet/*"); @@ -130,6 +148,9 @@ public void localeRequestsAreOnlyRedirectedIfTheyAreValidModelRequests() throws public void workbenchLocaleForwarderPageCanBeAccessedWithoutEndingInForwardSlash() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(bladeset).hasBeenCreated() .and(blade).hasBeenCreated() .and(workbench).hasBeenCreated() @@ -142,6 +163,9 @@ public void workbenchLocaleForwarderPageCanBeAccessedWithoutEndingInForwardSlash public void workbenchIndexPageCanBeAccessedWithoutEndingInForwardSlash() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(bladeset).hasBeenCreated() .and(blade).hasBeenCreated() .and(workbench).hasBeenCreated() @@ -154,6 +178,9 @@ public void workbenchIndexPageCanBeAccessedWithoutEndingInForwardSlash() throws public void requestsForInvalidModelPathsThatDoExistOnDiskReturn404() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(aspect).containsFileWithContents("index.html", "aspect index.html") .and(appServer).started(); then(appServer).requestCannotBeMadeFor("/app/default-aspect/index.html"); @@ -165,6 +192,9 @@ public void requestsForInvalidModelPathsThatDoExistOnDiskReturn404() throws Exce public void jspIndexPageCanBeAccessed() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(aspect).containsFileWithContents("index.jsp", "<%= \"aspect \" + \"index.jsp\" %>") .and(appServer).started(); then(appServer).requestForUrlReturns("/app/", "aspect index.jsp"); @@ -174,6 +204,9 @@ public void jspIndexPageCanBeAccessed() throws Exception public void contentPluginsCanHandleRequests() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(appServer).started(); then(appServer).requestForUrlReturns("/app/v/123/mock-content-plugin/", MockContentPlugin.class.getCanonicalName()); } @@ -181,6 +214,9 @@ public void contentPluginsCanHandleRequests() throws Exception @Test public void contentPluginsCanHandleRequestsWithinWorkbenches() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(appServer).started(); then(appServer).requestForUrlReturns("/app/bs/b1/workbench/v/123/mock-content-plugin/", MockContentPlugin.class.getCanonicalName()); } @@ -189,6 +225,9 @@ public void contentPluginsCanHandleRequestsWithinWorkbenches() throws Exception public void webInfFolderDoesntHaveToBePresentToEnableBrjsFeatures() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(aspect).containsFileWithContents("index.html", "<@tagToken @/>") .and(aspect).doesNotContainFile("WEB-INF"); when(appServer).started(); @@ -200,6 +239,9 @@ public void webInfFolderDoesntHaveToBePresentToEnableBrjsFeatures() throws Excep @Test public void indexPageCanBeAccessedWithAQueryString() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(appServer).started() .and(aspect).indexPageHasContent("index page") .and(brjs).localeSwitcherHasContents("locale-forwarder.js"); @@ -216,6 +258,9 @@ public void bladeRunnerJSDoesntBreakAuthentication() { public void longUrlsDontGetHandedToOtherServlets() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(appServer).started() .and(appServer).appHasServlet(app, new HelloWorldServlet(), "/servlet/hello"); then(appServer).requestForUrlReturns("/app/v/123/mock-content-plugin/some/other/path/", MockContentPlugin.class.getCanonicalName()) @@ -246,6 +291,9 @@ public void systemAppsTakePriorityOverUserApps() throws Exception public void jspsAreParsed() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(aspect).containsFileWithContents("unbundled-resources/file.jsp", "<%= 1 + 2 %>") .and(appServer).started(); then(appServer).requestForUrlReturns("/app/v/123/unbundled-resources/file.jsp", "3"); @@ -255,6 +303,9 @@ public void jspsAreParsed() throws Exception public void jspsCanHaveQueryStrings() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(aspect).containsFileWithContents("unbundled-resources/file.jsp", "<%= request.getParameter(\"query\") + \" \" + request.getParameter(\"debug\") %>") .and(appServer).started(); then(appServer).requestForUrlReturns("/app/v/123/unbundled-resources/file.jsp?query=1337&debug=true", "1337 true"); @@ -264,6 +315,9 @@ public void jspsCanHaveQueryStrings() throws Exception public void jspsCanSendRedirects() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(aspect).containsFileWithContents("unbundled-resources/file.jsp", "<% response.sendRedirect(\"/\"); %>") .and(appServer).started(); then(appServer).requestForUrlHasResponseCode("/app/v/123/unbundled-resources/file.jsp", 302) @@ -283,6 +337,9 @@ public void jspsCanSend404() throws Exception public void contentPluginsCanDefineNonVersionedUrls() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(appServer).started(); then(appServer).requestForUrlReturns("/app/mock-content-plugin/unversioned/url", MockContentPlugin.class.getCanonicalName()); } @@ -291,6 +348,9 @@ public void contentPluginsCanDefineNonVersionedUrls() throws Exception public void unbundledResourcesCanBeUnversioned() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(aspect).containsFileWithContents("unbundled-resources/file.txt", "unbundled resources file content") .and(appServer).started(); then(appServer).requestForUrlReturns("/app/unbundled-resources/file.txt", "unbundled resources file content"); @@ -311,6 +371,9 @@ public void optionalAspectCanBeUsedAsDefaultAspect() throws Exception public void correctContentLengthHeaderIsSetWhenTagsAreReplaced() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(aspect).containsFileWithContents("index.html", "<@tagToken @/>"); when(appServer).started(); then(appServer).requestForUrlReturns("/app/", "dev replacement") @@ -321,6 +384,9 @@ public void correctContentLengthHeaderIsSetWhenTagsAreReplaced() throws Exceptio public void jndiTokensAreReplaced() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(aspect).containsFileWithContents("index.html", "@SOME.TOKEN@") .and(app).containsFileWithContents("WEB-INF/jetty-env.xml", "" + "" @@ -341,6 +407,9 @@ public void jndiTokensAreReplaced() throws Exception public void correctContentLengthIsSetWhenJNDITokensAreReplaced() throws Exception { given(app).hasBeenPopulated("default") + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(aspect).containsFileWithContents("index.html", "@SOME.TOKEN@") .and(app).containsFileWithContents("WEB-INF/jetty-env.xml", "" + "" diff --git a/brjs-core-tests/src/test/java/org/bladerunnerjs/api/memoization/FileModificationRegistryTest.java b/brjs-core-tests/src/test/java/org/bladerunnerjs/api/memoization/FileModificationRegistryTest.java index 7541f4844..d7fc6ff2e 100644 --- a/brjs-core-tests/src/test/java/org/bladerunnerjs/api/memoization/FileModificationRegistryTest.java +++ b/brjs-core-tests/src/test/java/org/bladerunnerjs/api/memoization/FileModificationRegistryTest.java @@ -28,8 +28,8 @@ public class FileModificationRegistryTest @Before public void setup() throws Exception { - testRootDir = BRJSTestModelFactory.createTestSdkDirectory(); - secondRootDir = BRJSTestModelFactory.createTestSdkDirectory(); + testRootDir = BRJSTestModelFactory.createRootTestDir(); + secondRootDir = BRJSTestModelFactory.createRootTestDir(); dirInRoot = new File(testRootDir, "some-dir"); fileInChildDir = new File(dirInRoot, "nested-file.txt"); fileModificationRegistry = new FileModificationRegistry(new MatchFileFilter(testRootDir), FalseFileFilter.INSTANCE); diff --git a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/app/AppTest.java b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/app/AppTest.java index 427369c99..d7d5e48cd 100644 --- a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/app/AppTest.java +++ b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/app/AppTest.java @@ -6,6 +6,7 @@ import org.bladerunnerjs.api.Aspect; import org.bladerunnerjs.api.JsLib; import org.bladerunnerjs.api.model.events.AppDeployedEvent; +import org.bladerunnerjs.api.model.events.NodeDiscoveredEvent; import org.bladerunnerjs.api.model.events.NodeReadyEvent; import org.bladerunnerjs.api.model.exception.name.InvalidRootPackageNameException; import org.bladerunnerjs.api.spec.engine.SpecTest; @@ -75,6 +76,16 @@ public void populatingAnAppCausesRootObserversToBeNotified() throws Exception { .and(observer).notified(NodeReadyEvent.class, defaultAspect); } + @Test + public void nodeReadyEventIsFiredWhenExistingAppIsDiscovered() throws Exception { + given(templates).templateGroupCreated() + .and(app).hasBeenPopulated("default") + .and(brjs).hasBeenAuthenticallyReCreated(); + when(observer).observing(brjs) + .and(brjs).discoverUserApps(); + then(observer).notified(NodeDiscoveredEvent.class, brjs.app("app")); + } + @Test public void theAppConfIsWrittenOnPopulate() throws Exception { given(templates).templateGroupCreated(); @@ -200,7 +211,8 @@ public void appIsAvailableImmediatelyAfterCreationSinceFileModificationServiceLi .and(brjs).hasBeenAuthenticallyCreated() .and(brjs).appsHaveBeeniterated() .and(brjs).hasBeenInactiveForOneMillisecond(); - when(brjs.app("app1")).populate("default"); + when(brjs.app("app1")).populate("default") + .and(brjs.app("app1")).containsFileWithContents("app.conf", ""); then(brjs).hasApps("app1"); } diff --git a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/brjs/BRJSStartupTest.java b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/brjs/BRJSStartupTest.java index a0bbacfca..f2432f26a 100644 --- a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/brjs/BRJSStartupTest.java +++ b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/brjs/BRJSStartupTest.java @@ -51,9 +51,8 @@ public void informativeInitializationLogsAreEmittedAtStartup() { when(brjs).hasBeenCreated() .and(brjs).pluginsAreAccessed(); then(logging).infoMessageReceived(BRJS_LOCATION, brjs.dir().getAbsolutePath()) - .and(logging).infoMessageReceived(APPS_FOLDER_FOUND, brjs.dir().getAbsolutePath() + File.separator + "brjs-apps") + .and(logging).infoMessageReceived(APPS_FOLDER_FOUND, brjs.dir().getAbsolutePath() + File.separator + "apps") .and(logging).infoMessageReceived(PERFORMING_NODE_DISCOVERY_LOG_MSG) - .and(logging).infoMessageReceived(NO_APPS_DISCOVERED) .and(logging).infoMessageReceived(CREATING_PLUGINS_LOG_MSG) .and(logging).infoMessageReceived(MAKING_PLUGINS_AVAILABLE_VIA_MODEL_LOG_MSG); } @@ -66,10 +65,9 @@ public void pluginsThatHaveBeenFoundAreListed() { when(brjs).hasBeenCreated() .and(brjs).pluginsAreAccessed(); then(logging).infoMessageReceived(BRJS_LOCATION, brjs.dir().getAbsolutePath()) - .and(logging).infoMessageReceived(APPS_FOLDER_FOUND, brjs.dir().getAbsolutePath() + File.separator + "brjs-apps") + .and(logging).infoMessageReceived(APPS_FOLDER_FOUND, brjs.dir().getAbsolutePath() + File.separator + "apps") .and(logging).infoMessageReceived(PERFORMING_NODE_DISCOVERY_LOG_MSG) .and(logging).debugMessageReceived(PLUGIN_FOUND_MSG, passingModelObserverPlugin.getClass().getCanonicalName()) - .and(logging).infoMessageReceived(NO_APPS_DISCOVERED) .and(logging).infoMessageReceived(CREATING_PLUGINS_LOG_MSG) .and(logging).infoMessageReceived(MAKING_PLUGINS_AVAILABLE_VIA_MODEL_LOG_MSG) .and(logging).debugMessageReceived(PLUGIN_FOUND_MSG, passingCommandPlugin.getClass().getCanonicalName()); @@ -82,10 +80,9 @@ public void fatalErrorIsEmittedIfAnyOfTheModelObserverPluginsCantBeCreated() { when(brjs).hasBeenCreated() .and(brjs).pluginsAreAccessed(); then(logging).infoMessageReceived(BRJS_LOCATION, brjs.dir().getAbsolutePath()) - .and(logging).infoMessageReceived(APPS_FOLDER_FOUND, brjs.dir().getAbsolutePath() + File.separator + "brjs-apps") + .and(logging).infoMessageReceived(APPS_FOLDER_FOUND, brjs.dir().getAbsolutePath() + File.separator + "apps") .and(logging).infoMessageReceived(PERFORMING_NODE_DISCOVERY_LOG_MSG) .and(logging).errorMessageReceived(PluginLocatorUtils.Messages.INIT_PLUGIN_ERROR_MSG, failingModelObserverPlugin.getClass().getCanonicalName(), ExceptionUtils.getStackTrace(pluginException)) - .and(logging).infoMessageReceived(NO_APPS_DISCOVERED) .and(logging).infoMessageReceived(CREATING_PLUGINS_LOG_MSG) .and(logging).infoMessageReceived(MAKING_PLUGINS_AVAILABLE_VIA_MODEL_LOG_MSG); @@ -109,10 +106,9 @@ public void fatalErrorIsEmittedIfAnyOfTheCommandPluginsCantBeCreated() throws Ex when(brjs).hasBeenCreated() .and(brjs).runCommand("help", "failingCommand"); then(logging).infoMessageReceived(BRJS_LOCATION, brjs.dir().getAbsolutePath()) - .and(logging).infoMessageReceived(APPS_FOLDER_FOUND, brjs.dir().getAbsolutePath() + File.separator + "brjs-apps") + .and(logging).infoMessageReceived(APPS_FOLDER_FOUND, brjs.dir().getAbsolutePath() + File.separator + "apps") .and(logging).infoMessageReceived(PERFORMING_NODE_DISCOVERY_LOG_MSG) .and(logging).errorMessageReceived(PluginLocatorUtils.Messages.INIT_PLUGIN_ERROR_MSG, failingCommandPlugin.getClass().getCanonicalName(), ExceptionUtils.getStackTrace(pluginException)) - .and(logging).infoMessageReceived(NO_APPS_DISCOVERED) .and(logging).infoMessageReceived(CREATING_PLUGINS_LOG_MSG) .and(logging).infoMessageReceived(MAKING_PLUGINS_AVAILABLE_VIA_MODEL_LOG_MSG); } diff --git a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/brjs/BRJSTest.java b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/brjs/BRJSTest.java index 46c885134..dc2edea02 100644 --- a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/brjs/BRJSTest.java +++ b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/brjs/BRJSTest.java @@ -8,8 +8,8 @@ import org.bladerunnerjs.api.model.exception.command.NoSuchCommandException; import org.bladerunnerjs.api.spec.engine.SpecTest; -import static org.bladerunnerjs.api.BRJS.Messages.*; import static org.junit.Assert.*; +import static org.bladerunnerjs.api.BRJS.Messages.*; import java.io.File; import java.io.IOException; @@ -41,7 +41,7 @@ public void initTestObjects() throws Exception } @After - public void deleteCreatedBrjsAppsDirFromTemp() throws IOException { + public void deleteCreatedAppsDirFromTemp() throws IOException { if (secondaryTempFolder != null) FileUtils.deleteQuietly(secondaryTempFolder); } @@ -130,21 +130,23 @@ public void brjsFilesInTemplateDontOverwriteExistingFiles() throws Exception { @Test public void locateAncestorNodeWorksWhenTheModelHasntBeenPopulated() throws Exception { - given(brjs.file("brjs-apps/app1/blades/myBlade/src")).containsFile("Class.js"); + given(brjs.file("apps/app1/blades/myBlade/src")).containsFile("Class.js"); // we can't check the actual node or talk about any nodes since brjs.app('myApp') etc would cause the node to be discovered and we need to keep an empty node tree - then(brjs).ancestorNodeCanBeFound(brjs.file("brjs-apps/app1/blades/myBlade/src/Class.js"), App.class); + then(brjs).ancestorNodeCanBeFound(brjs.file("apps/app1/blades/myBlade/src/Class.js"), App.class); } @Test public void locateAncestorNodeWorksWhenTheModelHasntBeenPopulatedAndTheFileRepresentsTheNodeType() throws Exception { - given(brjs.file("brjs-apps/app1/blades/myBlade/src")).containsFile("Class.js"); - then(brjs).ancestorNodeCanBeFound(brjs.file("brjs-apps/app1/blades/myBlade"), Blade.class); + given(brjs.file("apps/app1/blades/myBlade/src")).containsFile("Class.js") + .and(brjs.file("apps/app1")).containsFile("app.conf"); + then(brjs).ancestorNodeCanBeFound(brjs.file("apps/app1/blades/myBlade"), Blade.class); } @Test // this is not a duplicate of the test above even though it may look like it, this test has been seen failing when the above was passing public void locateAncestorNodeWorksWhenTheModelHasntBeenPopulatedAndTheFileRepresentsATestPack() throws Exception { - given(brjs.file("brjs-apps/app1/blades/myBlade/test-unit")).containsFile("file.txt"); - then(brjs).ancestorNodeCanBeFound(brjs.file("brjs-apps/app1/blades/myBlade/test-unit/file.txt"), TestPack.class); + given(brjs.file("apps/app1/blades/myBlade/test-unit")).containsFile("file.txt") + .and(brjs.file("apps/app1/")).containsFileWithContents("app.conf", ""); + then(brjs).ancestorNodeCanBeFound(brjs.file("apps/app1/blades/myBlade/test-unit/file.txt"), TestPack.class); } @Test // this is not a duplicate of the test above even though it may look like it, this test has been seen failing when the above was passing @@ -161,36 +163,28 @@ public void locateAncestorNodeWorksReturnsNullIfTheNodeOfTheRequiredTypeCannotBe @Test public void appsFolderIsTheActiveAppsFolderItExists() throws Exception { - given(testSdkDirectory).containsFolder("apps") - .and(brjs).hasBeenCreatedWithWorkingDir(testSdkDirectory); + given(testRootDirectory).containsFolder("apps") + .and(brjs).hasBeenCreatedWithWorkingDir(testRootDirectory); when(brjs.app("app1")).create(); then(brjs).hasDir("apps/app1"); } @Test - public void appsFolderIsTheActiveAppsFolderItExistsAlongWithBrjsAppsFolder() throws Exception { - given(testSdkDirectory).containsFolder("apps") - .and(testSdkDirectory).containsFolder("brjs-apps") - .and(brjs).hasBeenCreatedWithWorkingDir(testSdkDirectory); - when(brjs.app("app1")).create(); - then(brjs).hasDir("apps/app1"); - } - - @Test - public void brjsAppsFolderInTheParentOfTheWorkingDirIsUsed() throws Exception { + public void appsFolderInTheParentOfTheWorkingDirIsUsedIfNextToSdk() throws Exception { secondaryTempFolder = org.bladerunnerjs.utility.FileUtils.createTemporaryDirectory(BRJSTest.class); - given(secondaryTempFolder).containsFolder("brjs-apps/dir1/dir2/dir3") - .and(brjs).hasBeenCreatedWithWorkingDir(new File(secondaryTempFolder, "brjs-apps/dir1/dir2/dir3")); + given(secondaryTempFolder).containsFolder("apps/dir1/dir2/dir3") + .and(secondaryTempFolder).containsFolder("sdk") + .and(brjs).hasBeenCreatedWithWorkingDir(new File(secondaryTempFolder, "apps/dir1/dir2/dir3")); when(brjs.app("app1")).create(); - then(secondaryTempFolder).containsDir("brjs-apps/app1"); + then(secondaryTempFolder).containsDir("apps/app1"); } @Test - public void brjsAppsDirNextToSdkIsUsedIfWorkingDirIsBrjsDir() throws Exception { + public void appsDirNextToSdkIsUsedIfWorkingDirIsBrjsDir() throws Exception { secondaryTempFolder = org.bladerunnerjs.utility.FileUtils.createTemporaryDirectory(BRJSTest.class); given(brjs).hasBeenCreated(); when(brjs.app("app1")).create(); - then(testSdkDirectory).containsDir("brjs-apps/app1"); + then(testRootDirectory).containsDir("apps/app1"); } @Test @@ -203,39 +197,27 @@ public void workingDirIsusedIfNoOtherDirectoryCanBeFoundToUseForApps() throws Ex @Test public void infoMessageIsLoggedWhenAppsDirectoryIsDiscovered() throws Exception { - given(testSdkDirectory).containsFolder("brjs-apps") + given(testRootDirectory).containsFolder("apps") .and(logging).enabled() .and(app1).hasBeenCreated() .and(app1).containsFiles(AppConf.FILE_NAME, "index.html"); - when(brjs).hasBeenCreated(); + when(brjs).hasBeenCreated() + .and(brjs).discoverUserApps(); then(logging).infoMessageReceived(BRJS_LOCATION, brjs.dir().getAbsolutePath()) - .and(logging).infoMessageReceived(APPS_FOLDER_FOUND, testSdkDirectory.getAbsolutePath() + File.separator + "brjs-apps") + .and(logging).infoMessageReceived(APPS_FOLDER_FOUND, testRootDirectory.getAbsolutePath() + File.separator + "apps") .and(logging).infoMessageReceived(PERFORMING_NODE_DISCOVERY_LOG_MSG) - .and(logging).infoMessageReceived(APPS_DISCOVERED, app1.getName()); - } - - @Test - public void warningMessageIsLoggedWhenBothAppsAndBrjsAppsFoldersExist() throws Exception { - given(testSdkDirectory).containsFolder("apps") - .and(testSdkDirectory).containsFolder("brjs-apps") - .and(logging).enabled(); - when(brjs).hasBeenCreated(); - then(logging).infoMessageReceived(BRJS_LOCATION, brjs.dir().getAbsolutePath()) - .and(logging).warnMessageReceived(BOTH_APPS_AND_BRJS_APPS_EXIST, - "brjs-apps", testSdkDirectory.getAbsolutePath(), "brjs-apps", "apps", testSdkDirectory.getAbsolutePath()+"/apps", testSdkDirectory.getAbsolutePath()+"/brjs-apps") - .and(logging).infoMessageReceived(APPS_FOLDER_FOUND, testSdkDirectory.getAbsolutePath() + File.separator + "apps") - .and(logging).infoMessageReceived(PERFORMING_NODE_DISCOVERY_LOG_MSG) - .and(logging).infoMessageReceived(NO_APPS_DISCOVERED); + .and(logging).infoMessageReceived(APPS_DISCOVERED, "User", app1.getName()); } @Test public void infoMessageIsLoggedContainingBRJSLocation() throws Exception { given(logging).enabled(); - when(brjs).hasBeenCreated(); + when(brjs).hasBeenCreated() + .and(brjs).discoverUserApps(); then(logging).infoMessageReceived(BRJS_LOCATION, brjs.dir().getAbsolutePath()) - .and(logging).infoMessageReceived(APPS_FOLDER_FOUND, brjs.dir().getAbsolutePath() + File.separator + "brjs-apps") + .and(logging).infoMessageReceived(APPS_FOLDER_FOUND, brjs.dir().getAbsolutePath() + File.separator + "apps") .and(logging).infoMessageReceived(PERFORMING_NODE_DISCOVERY_LOG_MSG) - .and(logging).infoMessageReceived(NO_APPS_DISCOVERED); + .and(logging).infoMessageReceived(NO_APPS_DISCOVERED, "user"); } @@ -248,39 +230,59 @@ public void debugMessageIsLoggedWhenImplicitRequirePrefixesAreUsed() throws Exce .and(aspect).indexPageRequires("appns/b1/pkg/Class") .and(logging).enabled(); when(aspect).bundleSetGenerated(); - then(logging).debugMessageReceived(BRJSConformantAssetPlugin.IMPLICIT_PACKAGE_USED, "brjs-apps/myApp/blades/b1/src", "appns/b1", "appns/b1") + then(logging).debugMessageReceived(BRJSConformantAssetPlugin.IMPLICIT_PACKAGE_USED, "apps/myApp/blades/b1/src", "appns/b1", "appns/b1") .and(logging).otherMessagesIgnored(); } @Test - public void brjsAppsIsntRequiredIfCommandIsRunFromInsideAnApp() throws Exception { - given(testSdkDirectory).containsFolder("myprojects") - .and(testSdkDirectory).containsFolder("myprojects/myapp") - .and(testSdkDirectory).containsFileWithContents("myprojects/myapp/app.conf", "requirePrefix: myapp") - .and(brjs).hasBeenCreatedWithWorkingDir( new File(testSdkDirectory, "myprojects/myapp") ); + public void appsIsntRequiredIfCommandIsRunFromInsideAnApp() throws Exception { + given(testRootDirectory).containsFolder("myprojects") + .and(testRootDirectory).containsFolder("myprojects/myapp") + .and(testRootDirectory).containsFileWithContents("myprojects/myapp/app.conf", "requirePrefix: myapp") + .and(brjs).hasBeenCreatedWithWorkingDir( new File(testRootDirectory, "myprojects/myapp") ); then(brjs).hasApps("myapp"); } @Test - public void appsCanBecreatedIfCommandIsRunFromInsideAnAppWithoutBrjsApps() throws Exception { - given(testSdkDirectory).containsFolder("myprojects") - .and(testSdkDirectory).containsFolder("myprojects/myapp") - .and(testSdkDirectory).containsFileWithContents("myprojects/myapp/app.conf", "requirePrefix: myapp") - .and(brjs).hasBeenCreatedWithWorkingDir( new File(testSdkDirectory, "myprojects/myapp") ) + public void appsCanBecreatedIfCommandIsRunFromInsideAnAppWithoutApps() throws Exception { + given(testRootDirectory).containsFolder("myprojects") + .and(testRootDirectory).containsFolder("myprojects/myapp") + .and(testRootDirectory).containsFileWithContents("myprojects/myapp/app.conf", "requirePrefix: myapp") + .and(brjs).hasBeenCreatedWithWorkingDir( new File(testRootDirectory, "myprojects/myapp") ) .and(brjs.sdkTemplateGroup("default").template("app")).containsEmptyFile("index.html"); - when(brjs.app("anotherapp")).populate("default"); + when(brjs.app("anotherapp")).populate("default") + .and((brjs.app("anotherapp"))).containsFileWithContents("app.conf", ""); then(brjs).hasApps("anotherapp", "myapp") - .and(testSdkDirectory).containsDir("myprojects/myapp") - .and(testSdkDirectory).containsDir("myprojects/anotherapp"); + .and(testRootDirectory).containsDir("myprojects/myapp") + .and(testRootDirectory).containsDir("myprojects/anotherapp"); + } + + @Test + public void appsDirectoryIsCreatedIfItDoesNotExistAndBrjsIsRunFromSdkDir() throws Exception { + given(brjs).doesNotContainFolder("apps") + .and(brjs).hasBeenAuthenticallyCreatedWithWorkingDir(new File(testRootDirectory, "sdk")); + when(brjs.app("app1")).create(); + then(testRootDirectory).containsDir("apps/app1"); + } + + @Test + public void appsDirectoryIsCreatedIfItDoesNotExistAndBrjsIsRunAndCreatedFromSdkDir() throws Exception { + File testDir = testRootDirectory; + testRootDirectory = new File(testRootDirectory, "sdk"); + testRootDirectory.mkdirs(); + given(brjs).doesNotContainFolder("apps") + .and(brjs).hasBeenAuthenticallyCreatedWithWorkingDir(testRootDirectory); + when(brjs.app("app1")).create(); + then(testDir).containsDir("apps/app1"); } @Test public void onlyDirsWithAppConfAreDetectedAsAppsWhenTheCommandsIsRunFromInsideAnApp() throws Exception { - given(testSdkDirectory).containsFolder("myprojects") - .and(testSdkDirectory).containsFolder("myprojects/nonapp") - .and(testSdkDirectory).containsFolder("myprojects/myapp") - .and(testSdkDirectory).containsFileWithContents("myprojects/myapp/app.conf", "requirePrefix: myapp") - .and(brjs).hasBeenCreatedWithWorkingDir( new File(testSdkDirectory, "myprojects/myapp") ); + given(testRootDirectory).containsFolder("myprojects") + .and(testRootDirectory).containsFolder("myprojects/nonapp") + .and(testRootDirectory).containsFolder("myprojects/myapp") + .and(testRootDirectory).containsFileWithContents("myprojects/myapp/app.conf", "requirePrefix: myapp") + .and(brjs).hasBeenCreatedWithWorkingDir( new File(testRootDirectory, "myprojects/myapp") ); then(brjs).hasApps("myapp"); } @@ -288,21 +290,22 @@ public void onlyDirsWithAppConfAreDetectedAsAppsWhenTheCommandsIsRunFromInsideAn public void warningIsLoggedIfNonAppDirsAreDiscovered() throws Exception { given(logging).enabled() .and(logging).echoEnabled(); - when(testSdkDirectory).containsFolder("myprojects") - .and(testSdkDirectory).containsFolder("myprojects/nonapp") - .and(testSdkDirectory).containsFolder("myprojects/myapp") - .and(testSdkDirectory).containsFileWithContents("myprojects/myapp/app.conf", "requirePrefix: myapp") - .and(brjs).hasBeenCreatedWithWorkingDir( new File(testSdkDirectory, "myprojects/myapp") ); - then(logging).warnMessageReceived(ValidAppDirFileFilter.NON_APP_DIR_FOUND_MSG, new File(testSdkDirectory, "myprojects/nonapp").getAbsolutePath(), new File(testSdkDirectory, "myprojects").getAbsolutePath()) + when(testRootDirectory).containsFolder("myprojects") + .and(testRootDirectory).containsFolder("myprojects/nonapp") + .and(testRootDirectory).containsFolder("myprojects/myapp") + .and(testRootDirectory).containsFileWithContents("myprojects/myapp/app.conf", "requirePrefix: myapp") + .and(brjs).hasBeenCreatedWithWorkingDir( new File(testRootDirectory, "myprojects/myapp") ) + .and(brjs).discoverUserApps(); + then(logging).warnMessageReceived(ValidAppDirFileFilter.NON_APP_DIR_FOUND_MSG, new File(testRootDirectory, "myprojects/nonapp").getAbsolutePath(), new File(testRootDirectory, "myprojects").getAbsolutePath()) .and(logging).otherMessagesIgnored(); } @Test public void newFilesInGeneratedDirDoesntIncrementSdkVersion() throws Exception { - long sdkFileVersion = brjs.getFileModificationRegistry().getFileVersion(testSdkDirectory); - when(testSdkDirectory).containsFile("generated/foo"); - assertEquals(sdkFileVersion, brjs.getFileModificationRegistry().getFileVersion(testSdkDirectory)); + long sdkFileVersion = brjs.getFileModificationRegistry().getFileVersion(testRootDirectory); + when(testRootDirectory).containsFile("generated/foo"); + assertEquals(sdkFileVersion, brjs.getFileModificationRegistry().getFileVersion(testRootDirectory)); } } diff --git a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/bundling/aspect/AspectBundlingOfBladeSource.java b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/bundling/aspect/AspectBundlingOfBladeSource.java index 656b65fb2..181439f66 100644 --- a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/bundling/aspect/AspectBundlingOfBladeSource.java +++ b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/bundling/aspect/AspectBundlingOfBladeSource.java @@ -276,7 +276,7 @@ public void exceptionIsThrownIfBladeClassRequestsAResourceFromDefaultAspect() th when(aspect).requestReceivedInDev("js/dev/combined/bundle.js", response); then(exceptions).verifyException(OutOfScopeRequirePathException.class, "appns/b1/Blade1Class", "appns/b2/Blade2Class", "blades/b2/src/Blade2Class.js", Blade.class.getSimpleName(), - "brjs-apps/app1/blades/b1, brjs-apps/app1") + "apps/app1/blades/b1, apps/app1") .whereTopLevelExceptionIs(ContentProcessingException.class); } @@ -353,7 +353,7 @@ public void warningIsLoggedWhenStrictCheckingIsDisabled() throws Exception { .and(logging).enabled(); when(aspect).requestReceivedInDev("js/dev/combined/bundle.js", response); then(logging).warnMessageReceived(BundleSetBuilder.INVALID_REQUIRE_MSG, "appns/b1/Blade1Class", "appns/b2/foo/Blade2Class") - .and(logging).warnMessageReceived(BundleSetBuilder.STRICT_CHECKING_DISABLED_MSG, "brjs-apps/app1/blades/b2/src/foo", "blades/b2/src/foo/Blade2Class.js", "brjs-apps/app1/blades/b2/src/foo/no-strict-checking") + .and(logging).warnMessageReceived(BundleSetBuilder.STRICT_CHECKING_DISABLED_MSG, "apps/app1/blades/b2/src/foo", "blades/b2/src/foo/Blade2Class.js", "apps/app1/blades/b2/src/foo/no-strict-checking") .and(logging).otherMessagesIgnored(); } diff --git a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/bundling/aspect/AspectBundlingOfMixedSources.java b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/bundling/aspect/AspectBundlingOfMixedSources.java index 812074126..15485021f 100644 --- a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/bundling/aspect/AspectBundlingOfMixedSources.java +++ b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/bundling/aspect/AspectBundlingOfMixedSources.java @@ -169,11 +169,11 @@ public void exceptionIsThrownIfClassIsInIncorrectLocationAndSrcPathStartsWithApp .and(blade).hasClass("appns/mypkg/Class"); when(aspect).requestReceivedInDev("js/dev/combined/bundle.js", response); then(exceptions).verifyException(InvalidRequirePathException.class, - "brjs-apps/app1/bladeset-bladeset/blades/blade/src", + "apps/app1/bladeset-bladeset/blades/blade/src", "appns", "appns/bladeset/blade", - "brjs-apps/app1/bladeset-bladeset/blades/blade/src/appns/bladeset/blade", - "brjs-apps/app1/bladeset-bladeset/blades/blade/src"); + "apps/app1/bladeset-bladeset/blades/blade/src/appns/bladeset/blade", + "apps/app1/bladeset-bladeset/blades/blade/src"); } @Test diff --git a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/bundling/cache/BundleCachingTest.java b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/bundling/cache/BundleCachingTest.java index 5f364dadf..deda85d44 100644 --- a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/bundling/cache/BundleCachingTest.java +++ b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/bundling/cache/BundleCachingTest.java @@ -61,12 +61,12 @@ public void weDoNotCacheAspectSourceDependencies() throws Exception { given(aspect).hasNamespacedJsPackageStyle() .and(aspect).hasClass("appns.Class1") .and(aspect).indexPageRefersTo("appns.Class1") - .and(app).hasReceivedRequest("v/dev/js/dev/combined/bundle.js"); + .and(app).hasReceivedRequest("v/dev/js/dev/combined/bundle.js"); when(thirdpartyLib).create() .and(thirdpartyLib).containsFileWithContents("thirdparty-lib.manifest", "js: file1.js\n"+"exports: lib") .and(thirdpartyLib).containsFileWithContents("file1.js", "thirdpartyLib content") .and(aspect).classDependsOnThirdpartyLib("appns.Class1", thirdpartyLib) - .and(aspect).requestReceivedInDev("js/dev/combined/bundle.js", response); + .and(aspect).requestReceivedInDev("js/dev/combined/bundle.js", response); then(response).containsOrderedTextFragments( "// thirdpartyLib", "thirdpartyLib content", diff --git a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/bundling/testpack/TestPackBundlingTest.java b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/bundling/testpack/TestPackBundlingTest.java index 87943d1f9..1987464d7 100644 --- a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/bundling/testpack/TestPackBundlingTest.java +++ b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/bundling/testpack/TestPackBundlingTest.java @@ -89,7 +89,7 @@ public void testCodeCanUseRequires() throws Exception { @Test public void aspectTestsDirectoryCanStillBeUsed() throws Exception { // we cant use the node instances before this point since the test nodes depend on the 'tests' directory being present when they are instantiated - given(brjs).containsFileWithContents("brjs-apps/app/default-aspect/tests/test-type/tech/tests/myTest.js", "require('appns/Class1');") + given(brjs).containsFileWithContents("apps/app/default-aspect/tests/test-type/tech/tests/myTest.js", "require('appns/Class1');") .and( brjs.app("app").aspect("default") ).hasClass("appns/Class1"); when( brjs.app("app").aspect("default").testType("type").testTech("tech") ).requestReceivedInDev("js/dev/combined/bundle.js", response); then(response).containsCommonJsClasses("Class1"); @@ -98,7 +98,7 @@ public void aspectTestsDirectoryCanStillBeUsed() throws Exception { @Test public void bladesetTestsDirectoryCanStillBeUsed() throws Exception { // we cant use the node instances before this point since the test nodes depend on the 'tests' directory being present when they are instantiated - given(brjs).containsFileWithContents("brjs-apps/app/bs-bladeset/tests/test-type/tech/tests/myTest.js", "require('appns/bs/Class1');") + given(brjs).containsFileWithContents("apps/app/bs-bladeset/tests/test-type/tech/tests/myTest.js", "require('appns/bs/Class1');") .and( brjs.app("app").bladeset("bs") ).hasClass("appns/bs/Class1"); when( brjs.app("app").bladeset("bs").testType("type").testTech("tech") ).requestReceivedInDev("js/dev/combined/bundle.js", response); then(response).containsCommonJsClasses("appns/bs/Class1"); @@ -107,7 +107,7 @@ public void bladesetTestsDirectoryCanStillBeUsed() throws Exception { @Test public void bladeTestsDirectoryCanStillBeUsed() throws Exception { // we cant use the node instances before this point since the test nodes depend on the 'tests' directory being present when they are instantiated - given(brjs).containsFileWithContents("brjs-apps/app/bs-bladeset/blades/b1/tests/test-type/tech/tests/myTest.js", "require('appns/bs/b1/Class1');") + given(brjs).containsFileWithContents("apps/app/bs-bladeset/blades/b1/tests/test-type/tech/tests/myTest.js", "require('appns/bs/b1/Class1');") .and( brjs.app("app").bladeset("bs").blade("b1") ).hasClass("appns/bs/b1/Class1"); when( brjs.app("app").bladeset("bs").blade("b1").testType("type").testTech("tech") ).requestReceivedInDev("js/dev/combined/bundle.js", response); then(response).containsCommonJsClasses("appns/bs/b1/Class1"); @@ -116,7 +116,7 @@ public void bladeTestsDirectoryCanStillBeUsed() throws Exception { @Test public void workbenchTestsDirectoryCanStillBeUsed() throws Exception { // we cant use the node instances before this point since the test nodes depend on the 'tests' directory being present when they are instantiated - given( brjs ).containsFileWithContents("brjs-apps/app/bs-bladeset/blades/b1/workbench/tests/test-type/tech/tests/myTest.js", "require('appns/Class1');") + given( brjs ).containsFileWithContents("apps/app/bs-bladeset/blades/b1/workbench/tests/test-type/tech/tests/myTest.js", "require('appns/Class1');") .and( brjs.app("app").bladeset("bs").blade("b1").workbench() ).hasClass("Class1"); when( brjs.app("app").bladeset("bs").blade("b1").workbench().testType("type").testTech("tech") ).requestReceivedInDev("js/dev/combined/bundle.js", response); then(response).containsCommonJsClasses("appns/Class1"); diff --git a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/bundling/workbench/BladeWorkbenchBundlingTest.java b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/bundling/workbench/BladeWorkbenchBundlingTest.java index 0a3bafb5e..995d9fa7d 100644 --- a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/bundling/workbench/BladeWorkbenchBundlingTest.java +++ b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/bundling/workbench/BladeWorkbenchBundlingTest.java @@ -130,7 +130,7 @@ public void outOfScopeExceptionIsThrownIfTheRequiredClassIsOutOfScope() throws E when(blade.workbench()).requestReceivedInDev("js/dev/combined/bundle.js", response); then(exceptions).verifyException(OutOfBundleScopeRequirePathException.class, "appns/App", "default-aspect/src/appns/App.js", BladeWorkbench.class.getSimpleName(), - "brjs-apps/app1/bs-bladeset, brjs-apps/app1/bs-bladeset/blades/b1, brjs-apps/app1/bs-bladeset/blades/b1/workbench") + "apps/app1/bs-bladeset, apps/app1/bs-bladeset/blades/b1, apps/app1/bs-bladeset/blades/b1/workbench") .whereTopLevelExceptionIs(ContentProcessingException.class); } diff --git a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/model/AspectTest.java b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/model/AspectTest.java index 1299243ab..4139ce0ed 100644 --- a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/model/AspectTest.java +++ b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/model/AspectTest.java @@ -98,7 +98,7 @@ public void exceptionIsThrownIfThereAreTwoDefaultAspects() throws Exception .and(app).containsFile("index.html") .and(app).containsFile("default-aspect/index.html"); when(app).aspectsListed(); - then(exceptions).verifyException(DuplicateAssetContainerException.class, "default Aspect", "brjs-apps/app1", "brjs-apps/app1/default-aspect"); + then(exceptions).verifyException(DuplicateAssetContainerException.class, "default Aspect", "apps/app1", "apps/app1/default-aspect"); } @Test diff --git a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/model/BladesetTest.java b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/model/BladesetTest.java index 5fa90ddb2..bc16f13cb 100644 --- a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/model/BladesetTest.java +++ b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/model/BladesetTest.java @@ -114,7 +114,7 @@ public void exceptionIsThrownIfThereAreTwoDefaultBladesets() throws Exception .and(app).hasDir("default-bladeset/blades/myBlade") .and(app).hasDir("blades/myBlade"); when(app).bladesetsListed(); - then(exceptions).verifyException(DuplicateAssetContainerException.class, "default Bladeset", "brjs-apps/app", "brjs-apps/app/default-bladeset"); + then(exceptions).verifyException(DuplicateAssetContainerException.class, "default Bladeset", "apps/app", "apps/app/default-bladeset"); } } \ No newline at end of file diff --git a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/model/JsStyleUtilityTest.java b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/model/JsStyleUtilityTest.java index 1043db9d5..cbd18e035 100644 --- a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/model/JsStyleUtilityTest.java +++ b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/model/JsStyleUtilityTest.java @@ -66,10 +66,10 @@ public void styleCanBeSetAtRoot() throws Exception { @Test public void jsStyleUtilityDoesntRecurseOutsideOfBrjsRoot() throws Exception { given(brjs).hasNotYetBeenCreated(); - FileUtils.cleanDirectory(testSdkDirectory); - File oldTestSdkDirectory = testSdkDirectory; - testSdkDirectory = new File(oldTestSdkDirectory, "subdir"); - new File(testSdkDirectory, "sdk").mkdirs(); + FileUtils.cleanDirectory(testRootDirectory); + File oldTestSdkDirectory = testRootDirectory; + testRootDirectory = new File(oldTestSdkDirectory, "subdir"); + new File(testRootDirectory, "sdk").mkdirs(); given(brjs).hasBeenCreated() .and(oldTestSdkDirectory).containsFileWithContents(".js-style", "namespaced-js"); diff --git a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/node/NamedNodeTest.java b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/node/NamedNodeTest.java index f11bb9c1a..39e26516e 100644 --- a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/node/NamedNodeTest.java +++ b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/node/NamedNodeTest.java @@ -230,7 +230,7 @@ public void observerIsNotifiedOnDelete() @Test public void nodesAreNotifiedWhenANodeIsDiscovered() throws Exception { - given(super.testSdkDirectory).containsFile("apps/myApp/appContent.txt") + given(super.testRootDirectory).containsFile("apps/myApp/appContent.txt") .and(observer).observing(brjs); when(brjs.userApp("myApp")); then(observer).notified(NodeDiscoveredEvent.class, brjs.userApp("myApp")); @@ -240,7 +240,7 @@ public void nodesAreNotifiedWhenANodeIsDiscovered() throws Exception public void nodesAreNotNotifiedOfCeatedWhenANodeIsDiscovered() throws Exception { given(observer).observing(brjs); - when(super.testSdkDirectory).containsFile("brjs-apps/myApp/appContent.txt") + when(super.testRootDirectory).containsFile("apps/myApp/appContent.txt") .and(brjs.userApp("myApp")); then(observer).notified(NodeDiscoveredEvent.class, brjs.userApp("myApp")) .and(observer).notified(NodeReadyEvent.class, brjs.userApp("myApp")) diff --git a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/node/NodeTest.java b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/node/NodeTest.java index 0662e7f83..aa7a3c7ee 100644 --- a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/node/NodeTest.java +++ b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/node/NodeTest.java @@ -21,8 +21,8 @@ public void initTestObjects() throws Exception public void observerisNotifiedWhenNodeIsFirstDiscoveredAfterManualCreation() { final String APP_NAME = "someApp"; given(observer).observing(brjs) - .and(brjs).hasDir("brjs-apps/"+APP_NAME); - when(brjs).discoverApps(); + .and(brjs).hasDir("apps/"+APP_NAME); + when(brjs).discoverUserApps(); then(observer).notified( NodeReadyEvent.class, brjs.app("someApp") ); } diff --git a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/observer/JsDocModelObserverTest.java b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/observer/JsDocModelObserverTest.java index 91f86a7f9..7ff6daae7 100644 --- a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/observer/JsDocModelObserverTest.java +++ b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/observer/JsDocModelObserverTest.java @@ -9,13 +9,13 @@ public class JsDocModelObserverTest extends SpecTest { @Test public void placeholdersAreCreatedWhenANewAppIsDiscovered() throws Exception { given(brjs).hasModelObserverPlugins(new JsDocObserver()) - .and(testSdkDirectory).containsFileWithContents("sdk/jsdoc-toolkit-resources/jsdoc-placeholders/index.html", "PLACEHOLDER"); + .and(testRootDirectory).containsFileWithContents("sdk/jsdoc-toolkit-resources/jsdoc-placeholders/index.html", "PLACEHOLDER"); when(brjs).hasBeenCreated() .and(brjs).pluginsAreAccessed() - .and(testSdkDirectory).containsFileWithContents("brjs-apps/app1/src/MyClass.js", "// my class") - .and(testSdkDirectory).containsFile("brjs-apps/app1/index.html"); + .and(testRootDirectory).containsFileWithContents("apps/app1/src/MyClass.js", "// my class") + .and(testRootDirectory).containsFiles("apps/app1/index.html", "apps/app1/app.conf"); brjs.getFileModificationRegistry().incrementAllFileVersions(); - when(brjs).discoverApps(); + when(brjs).discoverUserApps(); then(brjs).hasDir("generated/app/app1/jsdoc") .and(brjs.app("app1").storageDir("jsdoc")).containsFileWithContents("index.html", "PLACEHOLDER"); } @@ -25,7 +25,7 @@ public void placeholdersAreCreatedWhenANewAppIsCreatedViaTheModel() throws Excep given(brjs).hasModelObserverPlugins(new JsDocObserver()) .and(brjs).hasBeenCreated() .and(brjs.sdkTemplateGroup("default")).templateGroupCreated() - .and(testSdkDirectory).containsFileWithContents("sdk/jsdoc-toolkit-resources/jsdoc-placeholders/index.html", "PLACEHOLDER") + .and(testRootDirectory).containsFileWithContents("sdk/jsdoc-toolkit-resources/jsdoc-placeholders/index.html", "PLACEHOLDER") .and(brjs).pluginsAccessed(); when( brjs.app("app1" ) ).create(); then(brjs).hasDir("generated/app/app1/jsdoc") diff --git a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/template/TemplateTests.java b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/template/TemplateTests.java index e1b382ac6..9f240dd19 100644 --- a/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/template/TemplateTests.java +++ b/brjs-core-tests/src/test/java/org/bladerunnerjs/spec/template/TemplateTests.java @@ -58,7 +58,7 @@ public void brjsHasCorrectTemplate() throws Exception { when(brjs).populate(); then(brjs).hasFilesAndDirs( Arrays.asList("conf/test-runner.conf", "conf/users.properties"), - Arrays.asList("brjs-apps", "conf", "sdk") + Arrays.asList("apps", "conf", "sdk") ); } diff --git a/brjs-core/src/main/java/org/bladerunnerjs/api/BRJS.java b/brjs-core/src/main/java/org/bladerunnerjs/api/BRJS.java index e649be2bb..475850fcc 100644 --- a/brjs-core/src/main/java/org/bladerunnerjs/api/BRJS.java +++ b/brjs-core/src/main/java/org/bladerunnerjs/api/BRJS.java @@ -59,12 +59,10 @@ public class Messages { public static final String MAKING_PLUGINS_AVAILABLE_VIA_MODEL_LOG_MSG = "Making plugins available via model."; public static final String PLUGIN_FOUND_MSG = "Found plugin '%s'."; public static final String CLOSE_METHOD_NOT_INVOKED = "The BRJS.close() method was not manually invoked, which causes resource leaks that can lead to failure."; - public static final String BOTH_APPS_AND_BRJS_APPS_EXIST = "BRJS now uses a folder named '%s' for the location of your apps but the directory '%s' contains both '%s' and '%s' folders."+ - " '%s' will be used for the location of apps but this legacy behaviour may be removed so you should move all existing apps into the '%s' directory."; public static final String FILE_WATCHER_MESSAGE = "Using '%s' as the BRJS file observer"; public static final String APPS_FOLDER_FOUND = "Your apps folder has been identified as '%s'."; - public static final String APPS_DISCOVERED = "Apps found: %s."; - public static final String NO_APPS_DISCOVERED = "No apps have been found."; + public static final String APPS_DISCOVERED = "%s apps found: %s."; + public static final String NO_APPS_DISCOVERED = "No %s apps have been found."; public static final String BRJS_LOCATION = "Your BladerunnerJS installation has been found at '%s'."; } @@ -100,6 +98,9 @@ public class Messages { private TestRunnerConf testRunnerConf; private boolean closed = false; + private boolean loggedUserApps = false; + private boolean loggedSystemApps = false; + private MemoizedFile appsFolder; private MemoizedFile sdkFolder; private PluginLocator pluginLocator; @@ -107,15 +108,15 @@ public class Messages { public BRJS(File brjsDir, File workingDir, PluginLocator pluginLocator, LoggerFactory loggerFactory, AppVersionGenerator appVersionGenerator) throws InvalidSdkDirectoryException { super(brjsDir, loggerFactory); - logger.info(Messages.BRJS_LOCATION, brjsDir.getAbsolutePath()); + logger.info(Messages.BRJS_LOCATION, rootDir.getAbsolutePath()); this.appVersionGenerator = appVersionGenerator; memoizedFileAccessor = new MemoizedFileAccessor(this); - File appsFolderPath = findAppsFolder(brjsDir, workingDir); + File appsFolderPath = findAppsFolder(rootDir, workingDir); logger.info(Messages.APPS_FOLDER_FOUND, appsFolderPath.getAbsolutePath()); - FileModificationRegistryRootFileFilter fileModificationRegistryRootFileFilter = new FileModificationRegistryRootFileFilter(this, brjsDir, appsFolderPath); + FileModificationRegistryRootFileFilter fileModificationRegistryRootFileFilter = new FileModificationRegistryRootFileFilter(this, rootDir, appsFolderPath); fileModificationRegistry = new FileModificationRegistry(fileModificationRegistryRootFileFilter, globalFilesFilter); appsFolder = getMemoizedFile(appsFolderPath); @@ -134,21 +135,6 @@ public BRJS(File brjsDir, File workingDir, PluginLocator pluginLocator, LoggerFa { throw new RuntimeException(e); } - - logDiscoveredApps(); - } - - private void logDiscoveredApps() { - List appNames = new ArrayList<>(); - for (App app : apps()) { - appNames.add(app.getName()); - } - if ( !appNames.isEmpty() ) { - logger.info(Messages.APPS_DISCOVERED, StringUtils.join(appNames.toArray(), ", ")); - } - else { - logger.info(Messages.NO_APPS_DISCOVERED); - } } public MemoizedFile appsFolder() { @@ -165,18 +151,14 @@ private File findAppsFolder(File brjsDir, File workingDir) { if (new File(currentFolder, AppConf.FILE_NAME).exists()) { return currentFolder.getParentFile(); } else if (new File(currentFolder, "apps").exists() && new File(currentFolder, "sdk").exists()) { - if (new File(currentFolder, "brjs-apps").exists()) { - logger.warn(Messages.BOTH_APPS_AND_BRJS_APPS_EXIST, "brjs-apps", brjsDir.getAbsolutePath(), "brjs-apps", "apps", brjsDir.getAbsolutePath()+"/apps", brjsDir.getAbsolutePath()+"/brjs-apps"); - } return new File (currentFolder, "apps"); - } else if (new File(currentFolder, "brjs-apps").exists()) { - return new File (currentFolder, "brjs-apps"); } currentFolder = currentFolder.getParentFile(); } - if (brjsDir == workingDir) { - return new File (brjsDir, "brjs-apps"); + + if (brjsDir.equals(workingDir) || (workingDir.getName().equals("sdk") && workingDir.getParentFile().equals(brjsDir))) { + return new File (brjsDir, "apps"); } return workingDir; } @@ -286,7 +268,12 @@ public App app(String appName) public List userApps() { - return userApps.list(); + List discoveredUserApps = userApps.list(); + if (!loggedUserApps) { + logDiscoveredApps("user", discoveredUserApps); + loggedUserApps = true; + } + return discoveredUserApps; } public App userApp(String appName) @@ -296,7 +283,12 @@ public App userApp(String appName) public List systemApps() { - return systemApps.list(); + List discoveredSystemApps = systemApps.list(); + if (!loggedSystemApps) { + logDiscoveredApps("system", discoveredSystemApps); + loggedSystemApps = true; + } + return discoveredSystemApps; } public App systemApp(String appName) @@ -511,4 +503,17 @@ private CommandList getCommandList() { return commandList; } + private void logDiscoveredApps(String appType, List appps) { + List appNames = new ArrayList<>(); + for (App app : appps) { + appNames.add(app.getName()); + } + if ( !appNames.isEmpty() ) { + logger.info(Messages.APPS_DISCOVERED, StringUtils.capitalize(appType.toLowerCase()), StringUtils.join(appNames.toArray(), ", ")); + } + else { + logger.info(Messages.NO_APPS_DISCOVERED, appType.toLowerCase()); + } + } + } diff --git a/brjs-core/src/main/java/org/bladerunnerjs/api/spec/engine/CommanderChainer.java b/brjs-core/src/main/java/org/bladerunnerjs/api/spec/engine/CommanderChainer.java index 28adf750d..a38436047 100644 --- a/brjs-core/src/main/java/org/bladerunnerjs/api/spec/engine/CommanderChainer.java +++ b/brjs-core/src/main/java/org/bladerunnerjs/api/spec/engine/CommanderChainer.java @@ -12,6 +12,7 @@ import org.bladerunnerjs.api.DirNode; import org.bladerunnerjs.api.JsLib; import org.bladerunnerjs.api.appserver.ApplicationServer; +import org.bladerunnerjs.api.plugin.EventObserver; import org.bladerunnerjs.api.spec.utility.AppCommander; import org.bladerunnerjs.api.spec.utility.AppConfCommander; import org.bladerunnerjs.api.spec.utility.AspectCommander; @@ -48,10 +49,13 @@ public CommanderChainer(SpecTest modelTest) { public NamedDirNodeCommander and(NamedDirNode namedDirNode) { return new NamedDirNodeCommander(modelTest, namedDirNode); } public AppServerCommander and(ApplicationServer applicationServer) { return new AppServerCommander(modelTest, applicationServer); } public JettyServerCommander and(Server jettyServer) { return new JettyServerCommander(modelTest, jettyServer); } + public NodeObserverCommander and(EventObserver observer) { return new NodeObserverCommander(modelTest, observer); } + public C and(C commander) { return commander; } public FileTestCommander and(File file) { return new FileTestCommander(modelTest, file); } + } diff --git a/brjs-core/src/main/java/org/bladerunnerjs/api/spec/engine/FileTestCommander.java b/brjs-core/src/main/java/org/bladerunnerjs/api/spec/engine/FileTestCommander.java index 0e98e572e..9a99fff78 100644 --- a/brjs-core/src/main/java/org/bladerunnerjs/api/spec/engine/FileTestCommander.java +++ b/brjs-core/src/main/java/org/bladerunnerjs/api/spec/engine/FileTestCommander.java @@ -4,14 +4,10 @@ public class FileTestCommander { - private SpecTest specTest; - private File file; private FileTestBuilder fileTestBuilder; private CommanderChainer commanderChainer; public FileTestCommander(SpecTest specTest, File file) { - this.specTest = specTest; - this.file = file; fileTestBuilder = new FileTestBuilder(specTest, file); commanderChainer = new CommanderChainer(specTest); } @@ -21,6 +17,13 @@ public CommanderChainer containsFolder(String filePath) throws Exception { return commanderChainer; } + public CommanderChainer containsFiles(String... filePaths) throws Exception { + for (String filePath: filePaths) { + fileTestBuilder.containsFile(filePath); + } + return commanderChainer; + } + public CommanderChainer containsFile(String filePath) throws Exception { fileTestBuilder.containsFile(filePath); return commanderChainer; diff --git a/brjs-core/src/main/java/org/bladerunnerjs/api/spec/engine/NodeObserverCommander.java b/brjs-core/src/main/java/org/bladerunnerjs/api/spec/engine/NodeObserverCommander.java new file mode 100644 index 000000000..7aaa04ba9 --- /dev/null +++ b/brjs-core/src/main/java/org/bladerunnerjs/api/spec/engine/NodeObserverCommander.java @@ -0,0 +1,26 @@ +package org.bladerunnerjs.api.spec.engine; + +import org.bladerunnerjs.api.plugin.EventObserver; +import org.bladerunnerjs.model.engine.Node; + + +public class NodeObserverCommander +{ + + private EventObserver observer; + private CommanderChainer commanderChainer; + + public NodeObserverCommander(SpecTest specTest, EventObserver observer) + { + this.observer = observer; + commanderChainer = new CommanderChainer(specTest); + } + + public CommanderChainer observing(Node node) + { + node.addObserver(observer); + + return commanderChainer; + } + +} diff --git a/brjs-core/src/main/java/org/bladerunnerjs/api/spec/engine/SpecTest.java b/brjs-core/src/main/java/org/bladerunnerjs/api/spec/engine/SpecTest.java index 16bf59ff4..92d25c13c 100644 --- a/brjs-core/src/main/java/org/bladerunnerjs/api/spec/engine/SpecTest.java +++ b/brjs-core/src/main/java/org/bladerunnerjs/api/spec/engine/SpecTest.java @@ -58,7 +58,7 @@ public abstract class SpecTest public boolean catchAndVerifyExceptions = true; public boolean cleanupTestSdkDirectory = true; public EventObserver observer; - public File testSdkDirectory; + public File testRootDirectory; public MockPluginLocator pluginLocator; public BRJS brjs; public int appServerPort; @@ -95,10 +95,10 @@ public void resetTestObjects() logging = new LogMessageStore(); exceptions = new ArrayList<>(); observer = mock(EventObserver.class); - if (testSdkDirectory != null) FileUtils.deleteQuietly(testSdkDirectory); - testSdkDirectory = BRJSTestModelFactory.createTestSdkDirectory(); + if (testRootDirectory != null) FileUtils.deleteQuietly(testRootDirectory); + testRootDirectory = BRJSTestModelFactory.createRootTestDir(); pluginLocator = new MockPluginLocator(); - webappTester = new WebappTester(testSdkDirectory); + webappTester = new WebappTester(testRootDirectory); appVersionGenerator = new MockAppVersionGenerator(); } @@ -117,8 +117,8 @@ public void cleanUp() throws Exception { brjs.close(); } - if (testSdkDirectory.exists() && cleanupTestSdkDirectory) { - org.apache.commons.io.FileUtils.deleteQuietly(testSdkDirectory); + if (testRootDirectory.exists() && cleanupTestSdkDirectory) { + org.apache.commons.io.FileUtils.deleteQuietly(testRootDirectory); } try (ServerSocket socket = new ServerSocket(appServerPort)) @@ -134,28 +134,28 @@ public void cleanUp() throws Exception { public BRJS createModel() throws InvalidSdkDirectoryException { modelsCreated++; - return BRJSTestModelFactory.createModel(testSdkDirectory, testSdkDirectory, pluginLocator, new TestLoggerFactory(logging), appVersionGenerator); + return BRJSTestModelFactory.createModel(getSdkDir(), getSdkDir(), pluginLocator, new TestLoggerFactory(logging), appVersionGenerator); } public BRJS createModelWithWorkingDir(File workingDir) throws InvalidSdkDirectoryException { modelsCreated++; - return BRJSTestModelFactory.createModel(testSdkDirectory, workingDir, pluginLocator, new TestLoggerFactory(logging), appVersionGenerator); + return BRJSTestModelFactory.createModel(getSdkDir(), workingDir, pluginLocator, new TestLoggerFactory(logging), appVersionGenerator); } public BRJS createNonTestModel() throws InvalidSdkDirectoryException { modelsCreated++; - return BRJSTestModelFactory.createNonTestModel(testSdkDirectory, logging); + return BRJSTestModelFactory.createNonTestModel(getSdkDir(), logging); } public BRJS createNonTestModel(File workingDir) throws InvalidSdkDirectoryException { modelsCreated++; - return BRJSTestModelFactory.createNonTestModel(testSdkDirectory, workingDir, logging); + return BRJSTestModelFactory.createNonTestModel(getSdkDir(), workingDir, logging); } public BRJS createNonTestModelWithTestFileObserver() throws InvalidSdkDirectoryException { modelsCreated++; - return BRJSTestModelFactory.createNonTestModel(testSdkDirectory, logging, new TestLoggerFactory(logging)); + return BRJSTestModelFactory.createNonTestModel(getSdkDir(), logging, new TestLoggerFactory(logging)); } public String getActiveCharacterEncoding() { @@ -207,6 +207,7 @@ public void verifyExceptions() { // node observer public NodeObserverBuilder given(EventObserver observer) { return new NodeObserverBuilder(this, observer); } + public NodeObserverCommander when(EventObserver observer) { return new NodeObserverCommander(this, observer); } public NodeObserverVerifier then(EventObserver observer) { return new NodeObserverVerifier(this, observer); } // NamedDirNode @@ -311,4 +312,10 @@ public void verifyExceptions() { public B given(B builder) { return builder; } public C when(C commander) { return commander; } public V then(V verifier) { return verifier; } + + + private File getSdkDir() { + return new File(testRootDirectory, "sdk"); +// return testSdkDirectory; + } } diff --git a/brjs-core/src/main/java/org/bladerunnerjs/api/spec/utility/BRJSCommander.java b/brjs-core/src/main/java/org/bladerunnerjs/api/spec/utility/BRJSCommander.java index c268f8304..afcf808a2 100644 --- a/brjs-core/src/main/java/org/bladerunnerjs/api/spec/utility/BRJSCommander.java +++ b/brjs-core/src/main/java/org/bladerunnerjs/api/spec/utility/BRJSCommander.java @@ -65,7 +65,7 @@ public void call() throws Exception { return commanderChainer; } - public CommanderChainer discoverApps() + public CommanderChainer discoverUserApps() { call(new Command() { public void call() throws Exception { diff --git a/brjs-core/src/main/java/org/bladerunnerjs/model/BRJSTestModelFactory.java b/brjs-core/src/main/java/org/bladerunnerjs/model/BRJSTestModelFactory.java index 8c8aed10a..ba50ed0a4 100644 --- a/brjs-core/src/main/java/org/bladerunnerjs/model/BRJSTestModelFactory.java +++ b/brjs-core/src/main/java/org/bladerunnerjs/model/BRJSTestModelFactory.java @@ -75,18 +75,18 @@ public static BRJS createNonTestModel(File brjsDir, LogMessageStore logStore, Lo return brjs; } - public static File createTestSdkDirectory() { - File sdkDir; + public static File createRootTestDir() { + File testDir; try { - sdkDir = FileUtils.createTemporaryDirectory( BRJSTestModelFactory.class ); - new File(sdkDir, "sdk").mkdirs(); + testDir = FileUtils.createTemporaryDirectory( BRJSTestModelFactory.class ); + new File(testDir, "sdk").mkdirs(); } catch (IOException e) { throw new RuntimeException(e); } - return sdkDir; + return testDir; } } \ No newline at end of file diff --git a/brjs-core/src/main/java/org/bladerunnerjs/model/engine/AbstractRootNode.java b/brjs-core/src/main/java/org/bladerunnerjs/model/engine/AbstractRootNode.java index 84d37c7a0..a046f4b59 100644 --- a/brjs-core/src/main/java/org/bladerunnerjs/model/engine/AbstractRootNode.java +++ b/brjs-core/src/main/java/org/bladerunnerjs/model/engine/AbstractRootNode.java @@ -23,12 +23,14 @@ public abstract class AbstractRootNode extends AbstractNode implements RootNode private Map> nodeCache = new TreeMap<>(); protected LoggerFactory loggerFactory; + + protected File rootDir; public AbstractRootNode(File dir, LoggerFactory loggerFactory) throws InvalidSdkDirectoryException { super(); - File rootDir = locateRootDir(dir); + rootDir = locateRootDir(dir); if(rootDir == null) { if(!allowInvalidRootDirectories) { diff --git a/brjs-core/src/main/java/org/bladerunnerjs/model/engine/ValidAppDirFileFilter.java b/brjs-core/src/main/java/org/bladerunnerjs/model/engine/ValidAppDirFileFilter.java index c2437ab45..f3f5215ea 100644 --- a/brjs-core/src/main/java/org/bladerunnerjs/model/engine/ValidAppDirFileFilter.java +++ b/brjs-core/src/main/java/org/bladerunnerjs/model/engine/ValidAppDirFileFilter.java @@ -21,7 +21,7 @@ public class ValidAppDirFileFilter implements IOFileFilter public ValidAppDirFileFilter(BRJS brjs) { - this.validAppDirContentsFilter = new WildcardFileFilter(Arrays.asList(AppConf.FILE_NAME, "*.html", "*.jsp", "*-aspect", "*-bladeset", "blades", "WEB-INF")); + this.validAppDirContentsFilter = new WildcardFileFilter(Arrays.asList(AppConf.FILE_NAME)); logger = brjs.logger(this.getClass()); } diff --git a/brjs-core/src/main/java/org/bladerunnerjs/utility/FileUtils.java b/brjs-core/src/main/java/org/bladerunnerjs/utility/FileUtils.java index 73ab53692..cda421bd0 100644 --- a/brjs-core/src/main/java/org/bladerunnerjs/utility/FileUtils.java +++ b/brjs-core/src/main/java/org/bladerunnerjs/utility/FileUtils.java @@ -64,9 +64,11 @@ public static void deleteDirectoryFromBottomUp(File dir) throws IOException if (child.isDirectory()) { deleteDirectoryFromBottomUp(child); + } else { + child.delete(); } - dir.delete(); } + dir.delete(); } public static void moveDirectoryContents(BRJS brjs, File srcDir, File destDir) throws IOException { diff --git a/brjs-core/src/test/java/org/bladerunnerjs/utility/TagPluginUtilityTest.java b/brjs-core/src/test/java/org/bladerunnerjs/utility/TagPluginUtilityTest.java index 493861c03..c40c1f903 100644 --- a/brjs-core/src/test/java/org/bladerunnerjs/utility/TagPluginUtilityTest.java +++ b/brjs-core/src/test/java/org/bladerunnerjs/utility/TagPluginUtilityTest.java @@ -51,7 +51,7 @@ public void setup() throws Exception mockPluginLocator.tagHandlers.add( new VirtualProxyTagHandlerPlugin( new MockTagHandler("1tag", "replaced tag!", "") ) ); mockPluginLocator.tagHandlers.add( new VirtualProxyTagHandlerPlugin( new MockTagHandler("-tag", "replaced tag!", "") ) ); - testSdkDirectory = BRJSTestModelFactory.createTestSdkDirectory(); + testSdkDirectory = BRJSTestModelFactory.createRootTestDir(); brjs = BRJSTestModelFactory.createModel(testSdkDirectory, mockPluginLocator); app = brjs.app("app"); diff --git a/brjs-sdk/brjs-apps/it-app/test-integration-src/.keep b/brjs-core/src/test/resources/BRJSTest/apps/a1/app.conf similarity index 100% rename from brjs-sdk/brjs-apps/it-app/test-integration-src/.keep rename to brjs-core/src/test/resources/BRJSTest/apps/a1/app.conf diff --git a/brjs-sdk/sdk/templates/default/brjs/brjs-apps/.gitkeep b/brjs-core/src/test/resources/BRJSTest/apps/a2/app.conf similarity index 100% rename from brjs-sdk/sdk/templates/default/brjs/brjs-apps/.gitkeep rename to brjs-core/src/test/resources/BRJSTest/apps/a2/app.conf diff --git a/brjs-core/src/test/resources/BRJSTest/apps/a3/app.conf b/brjs-core/src/test/resources/BRJSTest/apps/a3/app.conf new file mode 100644 index 000000000..e69de29bb diff --git a/brjs-legacy/src/main/java/org/bladerunnerjs/legacy/command/test/testrunner/BundlerHandler.java b/brjs-legacy/src/main/java/org/bladerunnerjs/legacy/command/test/testrunner/BundlerHandler.java index 7f25d7134..f86d2e260 100644 --- a/brjs-legacy/src/main/java/org/bladerunnerjs/legacy/command/test/testrunner/BundlerHandler.java +++ b/brjs-legacy/src/main/java/org/bladerunnerjs/legacy/command/test/testrunner/BundlerHandler.java @@ -9,6 +9,7 @@ import org.apache.commons.lang3.StringUtils; import org.bladerunnerjs.api.App; +import org.bladerunnerjs.api.BRJS; import org.bladerunnerjs.api.model.exception.ModelOperationException; import org.bladerunnerjs.api.model.exception.request.ContentProcessingException; import org.bladerunnerjs.api.model.exception.request.MalformedRequestException; @@ -47,7 +48,7 @@ public BundlerHandler(BundlableNode bundlableNode) } - public void createBundleFile(File bundleFile, String bundlePath, String version) throws IOException, MalformedRequestException, ResourceNotFoundException, ContentProcessingException, ModelOperationException + public void createBundleFile(BRJS brjs, File bundleFile, String bundlePath, String version) throws IOException, MalformedRequestException, ResourceNotFoundException, ContentProcessingException, ModelOperationException { if (bundlePath.contains("\\")) { @@ -56,7 +57,7 @@ public void createBundleFile(File bundleFile, String bundlePath, String version) String modelRequestPath = getModelRequestPath(bundlePath); - repeatedlyAttemptToCreateBundleFile(bundleFile); + createBundleFile(brjs, bundleFile); try (OutputStream bundleFileOutputStream = new FileOutputStream(bundleFile, false); ResponseContent content = BundleSetRequestHandler.handle(new JsTestDriverBundleSet(bundlableNode.getBundleSet()), modelRequestPath, new StaticContentAccessor(app), version); ) @@ -69,21 +70,17 @@ public void createBundleFile(File bundleFile, String bundlePath, String version) // this is a workaround for the scenario where Windows indexing service or virus scanners etc can lock the file when we try to create it // see http://stackoverflow.com/a/10516563/2634854 for more info - private void repeatedlyAttemptToCreateBundleFile(File bundleFile) throws IOException + private void createBundleFile(BRJS brjs, File bundleFile) throws IOException { + if (bundleFile.exists()) { + throw new IOException( String.format("The bundle file '%s' already exists and should not. It should have previously been deleted so new content can be written to it", bundleFile.getAbsolutePath()) ); + } bundleFile.getParentFile().mkdirs(); - for (int i = 0; i < 100; i++) { - try { - boolean fileCreated = bundleFile.createNewFile(); - if (fileCreated) { - return; - } - Thread.sleep(10); - } catch (IOException | InterruptedException ex) { - // ignore the exception from creating the file or thread interupted - } + bundleFile.createNewFile(); + + if (!bundleFile.isFile()) { + throw new IOException("Unable to create an empty bundle file at " + bundleFile.getAbsolutePath()); } - throw new IOException("Unable to create an empty bundle file at " + bundleFile.getAbsolutePath()); } diff --git a/brjs-legacy/src/main/java/org/bladerunnerjs/legacy/command/test/testrunner/JsTestDriverBundleCreator.java b/brjs-legacy/src/main/java/org/bladerunnerjs/legacy/command/test/testrunner/JsTestDriverBundleCreator.java index 4113a6d1a..46bd06ab3 100644 --- a/brjs-legacy/src/main/java/org/bladerunnerjs/legacy/command/test/testrunner/JsTestDriverBundleCreator.java +++ b/brjs-legacy/src/main/java/org/bladerunnerjs/legacy/command/test/testrunner/JsTestDriverBundleCreator.java @@ -38,14 +38,13 @@ public static void createRequiredBundles(BRJS brjs, MemoizedFile jsTestDriverCon { logger = brjs.logger(JsTestDriverBundleCreator.class); File bundlesDir = new File(jsTestDriverConf.getParentFile(), BUNDLES_DIR_NAME); - FileUtils.deleteDirectoryFromBottomUp(bundlesDir); - FileUtils.deleteQuietly(brjs, bundlesDir); - bundlesDir.mkdir(); + recreateBundlesDir(brjs, bundlesDir); Map configMap = getMapFromYamlConfig(jsTestDriverConf); File baseDirectory = getBaseDirectory(jsTestDriverConf, configMap); + brjs.getFileModificationRegistry().incrementAllFileVersions(); TestPack testPack = brjs.locateAncestorNodeOfClass(jsTestDriverConf, TestPack.class); if(testPack == null){ throw new RuntimeException("Unable to find test pack which represents the path " + jsTestDriverConf.getParentFile()); @@ -61,13 +60,27 @@ public static void createRequiredBundles(BRJS brjs, MemoizedFile jsTestDriverCon { String bundlePath = StringUtils.substringAfterLast( requestedFile.getAbsolutePath(), BUNDLES_DIR_NAME+File.separator); bundlePath = StringUtils.replace(bundlePath, "\\", "/"); - bundlerHandler.createBundleFile(requestedFile, bundlePath, brjs.getAppVersionGenerator().getVersion()); + bundlerHandler.createBundleFile(brjs, requestedFile, bundlePath, brjs.getAppVersionGenerator().getVersion()); } } MemoizedFile testsDir = jsTestDriverConf.getParentFile().file("tests"); checkTestsForIife(brjs, testsDir, testsDir); } + private static void recreateBundlesDir(BRJS brjs, File bundlesDir) throws IOException + { + FileUtils.deleteDirectoryFromBottomUp(bundlesDir); + if (bundlesDir.exists()) { + throw new IOException( String.format("Unable to delete the temporary '%s' directory at %s", bundlesDir.getName(), bundlesDir.getParentFile().getAbsolutePath()) ); + } + + bundlesDir.mkdir(); + if (!bundlesDir.isDirectory()) { + throw new IOException( String.format("The '%s' directory does not exist at %s as BRJS was unable to create it", bundlesDir.getName(), bundlesDir.getParentFile().getAbsolutePath()) ); + } + brjs.getFileModificationRegistry().incrementAllFileVersions(); + } + private static void checkTestsForIife(BRJS brjs, MemoizedFile rootTestDir, MemoizedFile testsDir) throws IOException { if (!brjs.jsStyleAccessor().getJsStyle(testsDir).equals(DefaultCommonJsSourceModule.JS_STYLE)) { diff --git a/brjs-legacy/src/test/java/org/bladerunnerjs/legacy/command/test/testrunner/JsTestDriverBundleCreatorTest.java b/brjs-legacy/src/test/java/org/bladerunnerjs/legacy/command/test/testrunner/JsTestDriverBundleCreatorTest.java index fdb9e2e88..81904c9ca 100644 --- a/brjs-legacy/src/test/java/org/bladerunnerjs/legacy/command/test/testrunner/JsTestDriverBundleCreatorTest.java +++ b/brjs-legacy/src/test/java/org/bladerunnerjs/legacy/command/test/testrunner/JsTestDriverBundleCreatorTest.java @@ -37,7 +37,8 @@ public class JsTestDriverBundleCreatorTest { @Before public void setup() throws InvalidSdkDirectoryException, IOException, InvalidNameException, ModelUpdateException { - brjs = BRJSTestModelFactory.createModel(BRJSTestModelFactory.createTestSdkDirectory(), new TestLoggerFactory(logMessageStore)); + brjs = BRJSTestModelFactory.createModel(BRJSTestModelFactory.createRootTestDir(), new TestLoggerFactory(logMessageStore)); + FileUtils.write(brjs.app("app1").file("app.conf"), ""); aspectTestPack = brjs.app("app1").aspect("default").testType("unit"); aspectTestConfig = new File(aspectTestPack.dir(), "jsTestDriver.conf"); aspectTest = new File(aspectTestPack.dir(), "tests/AppTest.js"); diff --git a/brjs-legacy/src/test/java/org/bladerunnerjs/legacy/command/test/testrunner/specutility/BundlerHandlerSpecTest.java b/brjs-legacy/src/test/java/org/bladerunnerjs/legacy/command/test/testrunner/specutility/BundlerHandlerSpecTest.java index e302c6854..27af092f9 100644 --- a/brjs-legacy/src/test/java/org/bladerunnerjs/legacy/command/test/testrunner/specutility/BundlerHandlerSpecTest.java +++ b/brjs-legacy/src/test/java/org/bladerunnerjs/legacy/command/test/testrunner/specutility/BundlerHandlerSpecTest.java @@ -42,7 +42,7 @@ public void runWithPaths(String... requestPaths) throws Exception File bundleFile = testPack.file(requestPath); String bundlePath = StringUtils.substringAfterLast(bundleFile.getAbsolutePath(), JsTestDriverBundleCreator.BUNDLES_DIR_NAME + File.separator); bundlePath = StringUtils.replace(bundlePath, "\\", "/"); - new BundlerHandler(testPack).createBundleFile(bundleFile, bundlePath, brjs.getAppVersionGenerator().getVersion()); + new BundlerHandler(testPack).createBundleFile(brjs, bundleFile, bundlePath, brjs.getAppVersionGenerator().getVersion()); } } } diff --git a/brjs-runner/src/test/java/org/bladerunnerjs/runner/CommandRunnerTest.java b/brjs-runner/src/test/java/org/bladerunnerjs/runner/CommandRunnerTest.java index b64954691..a2d768049 100644 --- a/brjs-runner/src/test/java/org/bladerunnerjs/runner/CommandRunnerTest.java +++ b/brjs-runner/src/test/java/org/bladerunnerjs/runner/CommandRunnerTest.java @@ -204,9 +204,9 @@ public void warningIsPrintedIfTheServletJarIsOutdated() throws Exception dirFile("valid-sdk-directory/sdk").mkdirs(); dirFile("valid-sdk-directory/sdk/libs/java").mkdirs(); org.apache.commons.io.FileUtils.write( dirFile("valid-sdk-directory/sdk/libs/java/application/brjs-servlet-1.2.3.jar"), "some jar contents" ); - dirFile("valid-sdk-directory/brjs-apps/myApp/WEB-INF/lib").mkdirs(); - org.apache.commons.io.FileUtils.write( dirFile("valid-sdk-directory/brjs-apps/myApp/WEB-INF/lib/brjs-servlet-1.2.2.jar"), "old jar contents" ); - + dirFile("valid-sdk-directory/apps/myApp/WEB-INF/lib").mkdirs(); + org.apache.commons.io.FileUtils.write( dirFile("valid-sdk-directory/apps/myApp/WEB-INF/lib/brjs-servlet-1.2.2.jar"), "old jar contents" ); + org.apache.commons.io.FileUtils.write( dirFile("valid-sdk-directory/apps/myApp/app.conf"), "" ); commandRunner.run(dirFile("valid-sdk-directory"), new String[] {dir("valid-sdk-directory"), "log-test"}); String output = outputStream.toString("UTF-8"); String warnMessage = String.format(UserCommandRunner.Messages.OUTDATED_JAR_MESSAGE, "myApp", "brjs-", "sdk/libs/java/application"); diff --git a/brjs-sdk/.gitignore b/brjs-sdk/.gitignore index 893155fc9..baf7304df 100644 --- a/brjs-sdk/.gitignore +++ b/brjs-sdk/.gitignore @@ -5,9 +5,8 @@ # see http://git-scm.com/docs/gitignore for info apps/* -brjs-apps/* -!brjs-apps/apps.txt -!brjs-apps/it-app/ +!apps/apps.txt +!apps/it-app/ generated js-patches test-results diff --git a/brjs-sdk/brjs-apps/apps.txt b/brjs-sdk/apps/apps.txt similarity index 100% rename from brjs-sdk/brjs-apps/apps.txt rename to brjs-sdk/apps/apps.txt diff --git a/brjs-sdk/brjs-apps/it-app/WEB-INF/classes/log4j.properties b/brjs-sdk/brjs-apps/it-app/WEB-INF/classes/log4j.properties deleted file mode 100644 index 6dc9ba2d7..000000000 --- a/brjs-sdk/brjs-apps/it-app/WEB-INF/classes/log4j.properties +++ /dev/null @@ -1,4 +0,0 @@ -log4j.rootLogger=WARN, consoleAppender -log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender -log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout -log4j.appender.consoleAppender.layout.ConversionPattern=%d [%t] %-5p %c - %m%n diff --git a/brjs-sdk/brjs-apps/it-app/WEB-INF/jetty-env.xml b/brjs-sdk/brjs-apps/it-app/WEB-INF/jetty-env.xml deleted file mode 100644 index ae50bd736..000000000 --- a/brjs-sdk/brjs-apps/it-app/WEB-INF/jetty-env.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - TEST.JNDI.TOKEN - Hello from JNDI - true - - - diff --git a/brjs-sdk/brjs-apps/it-app/WEB-INF/lib/log4j-1.2.17.jar b/brjs-sdk/brjs-apps/it-app/WEB-INF/lib/log4j-1.2.17.jar deleted file mode 100644 index 068867ebf..000000000 Binary files a/brjs-sdk/brjs-apps/it-app/WEB-INF/lib/log4j-1.2.17.jar and /dev/null differ diff --git a/brjs-sdk/brjs-apps/it-app/WEB-INF/lib/slf4j-log4j12-1.6.6.jar b/brjs-sdk/brjs-apps/it-app/WEB-INF/lib/slf4j-log4j12-1.6.6.jar deleted file mode 100644 index 56dc7a915..000000000 Binary files a/brjs-sdk/brjs-apps/it-app/WEB-INF/lib/slf4j-log4j12-1.6.6.jar and /dev/null differ diff --git a/brjs-sdk/brjs-apps/it-app/WEB-INF/web.xml b/brjs-sdk/brjs-apps/it-app/WEB-INF/web.xml deleted file mode 100644 index 0146ebe36..000000000 --- a/brjs-sdk/brjs-apps/it-app/WEB-INF/web.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - BRJSServletFilter - org.bladerunnerjs.appserver.BRJSServletFilter - - - BRJSServletFilter - /* - REQUEST - FORWARD - - - - BRJSDevServlet - org.bladerunnerjs.appserver.BRJSDevServlet - 1 - - - BRJSDevServlet - /brjs/* - - - BRJSDevServletFilter - org.bladerunnerjs.appserver.BRJSDevServletFilter - - - BRJSDevServletFilter - /* - REQUEST - FORWARD - - - - - 10000 - - - - user - - - - - Application - /* - - - user - - - - - - Login Section - /login/* - - - - - - FORM - BladeRunnerLoginRealm - - /login/ - /login/ - - - * - - - - - - diff --git a/brjs-sdk/brjs-apps/it-app/app.conf b/brjs-sdk/brjs-apps/it-app/app.conf deleted file mode 100644 index 2ab0d72aa..000000000 --- a/brjs-sdk/brjs-apps/it-app/app.conf +++ /dev/null @@ -1,3 +0,0 @@ -localeCookieName: BRJS.LOCALE -locales: en -requirePrefix: itapp \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/default-aspect/index.jsp b/brjs-sdk/brjs-apps/it-app/default-aspect/index.jsp deleted file mode 100644 index cd4616579..000000000 --- a/brjs-sdk/brjs-apps/it-app/default-aspect/index.jsp +++ /dev/null @@ -1,36 +0,0 @@ - - - - - IT Application - <% String theme = request.getParameter("theme") == null ? "common" : request.getParameter("theme"); %> - <@css.bundle theme="<%=theme%>" alternateTheme="alternate" @/> - <@i18n.bundle @/> - - <@js.bundle dev-minifier="none" prod-minifier="combined"@/> - <@html.bundle@/> - - -
-

-

BRJS Integration Tests will be run against this application

- -
-
-
- - - -
Test nameTest Output
- - - - diff --git a/brjs-sdk/brjs-apps/it-app/default-aspect/resources/aliases.xml b/brjs-sdk/brjs-apps/it-app/default-aspect/resources/aliases.xml deleted file mode 100644 index 1ae35dcef..000000000 --- a/brjs-sdk/brjs-apps/it-app/default-aspect/resources/aliases.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/brjs-sdk/brjs-apps/it-app/default-aspect/resources/i18n/en.properties b/brjs-sdk/brjs-apps/it-app/default-aspect/resources/i18n/en.properties deleted file mode 100644 index fe51d98a6..000000000 --- a/brjs-sdk/brjs-apps/it-app/default-aspect/resources/i18n/en.properties +++ /dev/null @@ -1 +0,0 @@ -itapp.hello.world=Hello from i18n diff --git a/brjs-sdk/brjs-apps/it-app/default-aspect/resources/xml/TestXml.xml b/brjs-sdk/brjs-apps/it-app/default-aspect/resources/xml/TestXml.xml deleted file mode 100644 index c304b955b..000000000 --- a/brjs-sdk/brjs-apps/it-app/default-aspect/resources/xml/TestXml.xml +++ /dev/null @@ -1,3 +0,0 @@ - - Hello from bundled XML - \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/default-aspect/src/App.js b/brjs-sdk/brjs-apps/it-app/default-aspect/src/App.js deleted file mode 100644 index 24531c9f9..000000000 --- a/brjs-sdk/brjs-apps/it-app/default-aspect/src/App.js +++ /dev/null @@ -1,75 +0,0 @@ -'use strict'; - -var ItbladeViewModel = require('itapp/itbladeset/itblade/ItbladeViewModel'); -var KnockoutComponent = require( 'br/knockout/KnockoutComponent' ); -var CommonJsLib = require('commonjslib/CommonJsLib'); -var Testlib3p = require('testlib3p'); -var i18n = require( 'br/I18n' ); -require('namedspacedjslib/NamedspacedJsLib'); - -var App = function() { - var element = document.getElementById("hello-world"); - element.innerHTML="Successfully loaded the application"; - this.outputTable = document.getElementById("outputTable"); - - this.addItBladeToView(); - this.functionalityTest("i18n", this.testI18n); - this.functionalityTest("aliasing", this.playWithAliases); - this.functionalityTest("aliasing-implement-fail", this.aliasFail); - this.functionalityTest("namespaced-js", namedspacedjslib.NamedspacedJsLib.hello); - this.functionalityTest("common-js", CommonJsLib.hello); - this.functionalityTest("third-party-lib", Testlib3p.hello); - this.functionalityTest("jndi", this.testJNDI); - this.functionalityTest("xml-bundle", this.testBundledXml); -}; - -App.prototype.functionalityTest = function(testMessage, fun, context) { - context = context || this; - var newRow = this.outputTable.insertRow(-1); - var testMessageCell = newRow.insertCell(0); - var testOutputCell = newRow.insertCell(1); - testMessageCell.innerHTML = "" + testMessage + ""; - testOutputCell.innerHTML = fun.call(context); -}; - -App.prototype.testI18n = function() { - return i18n('itapp.hello.world'); -}; - -App.prototype.testJNDI = function() { - return window.jndiToken; -}; - -App.prototype.addItBladeToView = function() { - var itBladeViewModel = new ItbladeViewModel(); - var koComponent = new KnockoutComponent('itapp.itbladeset.itblade.view-template', itBladeViewModel); - document.getElementById("Itblade").appendChild(koComponent.getElement()); -}; - -App.prototype.playWithAliases = function() { - var AliasedClass = require('alias!itapp.itbladeset.itblade.NewName'); - var obj = new AliasedClass(); - return obj.implementMe(); -}; - -App.prototype.aliasFail = function() { - try { - require('alias!itapp.itbladeset.itblade.ImplementFail'); - } - catch (err) { - if(err.name === "AliasInterfaceError") { - return "Aliasing successfully prevented"; - } - } - return "Aliasing did not throw an AliasInterfaceError"; -}; - -App.prototype.testBundledXml = function () { - var childNode = require('service!br.xml-service').getXmlDocument("bundledXml")[0].childNodes[0]; - if (childNode.text) { - return childNode.text; - } - return childNode.innerHTML; -}; - -module.exports = App; diff --git a/brjs-sdk/brjs-apps/it-app/default-aspect/test-acceptance/.gitignore b/brjs-sdk/brjs-apps/it-app/default-aspect/test-acceptance/.gitignore deleted file mode 100644 index 286d4fa39..000000000 --- a/brjs-sdk/brjs-apps/it-app/default-aspect/test-acceptance/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bundles \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/default-aspect/test-acceptance/jsTestDriver.conf b/brjs-sdk/brjs-apps/it-app/default-aspect/test-acceptance/jsTestDriver.conf deleted file mode 100644 index 993e9abcc..000000000 --- a/brjs-sdk/brjs-apps/it-app/default-aspect/test-acceptance/jsTestDriver.conf +++ /dev/null @@ -1,13 +0,0 @@ -server: http://localhost:4224 -basepath: . - -load: - - bundles/i18n/en_i18n.bundle - - bundles/js/js.bundle - -serve: - - bundles/html.bundle - - bundles/xml.bundle - -test: - - tests/**.js diff --git a/brjs-sdk/brjs-apps/it-app/default-aspect/test-acceptance/resources/aliases.xml b/brjs-sdk/brjs-apps/it-app/default-aspect/test-acceptance/resources/aliases.xml deleted file mode 100644 index 38c8464c7..000000000 --- a/brjs-sdk/brjs-apps/it-app/default-aspect/test-acceptance/resources/aliases.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/brjs-sdk/brjs-apps/it-app/default-aspect/test-acceptance/tests/AppTest.js b/brjs-sdk/brjs-apps/it-app/default-aspect/test-acceptance/tests/AppTest.js deleted file mode 100644 index c1ac365a8..000000000 --- a/brjs-sdk/brjs-apps/it-app/default-aspect/test-acceptance/tests/AppTest.js +++ /dev/null @@ -1,24 +0,0 @@ -(function() { - 'use strict'; - - require( 'jasmine' ); - - var originalConsoleLog = console.log; - - var App = require("itapp/App"); - - describe('App Tests', function() { - - beforeEach(function() { - console.log = jasmine.createSpy("console.log"); - }); - - afterEach(function() { - console.log = originalConsoleLog; - }); - - it( 'Should say hello', function() { - }); - - }); -}()); \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/default-aspect/test-integration/webdriver/AlternateThemeTest.java b/brjs-sdk/brjs-apps/it-app/default-aspect/test-integration/webdriver/AlternateThemeTest.java deleted file mode 100644 index fd2112421..000000000 --- a/brjs-sdk/brjs-apps/it-app/default-aspect/test-integration/webdriver/AlternateThemeTest.java +++ /dev/null @@ -1,36 +0,0 @@ -import org.bladerunnerjs.legacy.testIntegration.WebDriverProvider; -import org.junit.AfterClass; -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.firefox.FirefoxDriver; -import testlib.ItApp; - -public class AlternateThemeTest { - private static WebDriver driver; - private static String baseUrl = WebDriverProvider.getBaseUrl("/it-app"); - private static ItApp itapp; - - @BeforeClass - public static void before() throws Exception { - driver = new FirefoxDriver(); - driver.get(baseUrl + "/login/j_security_check?isLoginPage=login-page&j_username=user&j_password=password"); - String themedURL = baseUrl + "/?theme=alternate"; - driver.get(themedURL); - itapp = new ItApp(driver); - } - - @AfterClass - public static void after() { - WebDriverProvider.closeDriver(driver); - } - - @Test - public void themingIsAppliedSuccessfully() { - String colour = itapp.extractColourForItblade(); - boolean isColourRed = colour.equals("rgba(255, 0, 0, 1)") || colour.equals("red") || - colour.equals("#F00") || colour.equals("#FF0000"); - Assert.assertTrue(isColourRed); - } -} diff --git a/brjs-sdk/brjs-apps/it-app/default-aspect/test-integration/webdriver/ApplicationTest.java b/brjs-sdk/brjs-apps/it-app/default-aspect/test-integration/webdriver/ApplicationTest.java deleted file mode 100644 index ad901d39a..000000000 --- a/brjs-sdk/brjs-apps/it-app/default-aspect/test-integration/webdriver/ApplicationTest.java +++ /dev/null @@ -1,84 +0,0 @@ -import org.openqa.selenium.WebDriver; -import org.bladerunnerjs.legacy.testIntegration.WebDriverProvider; -import org.junit.*; -import testlib.ItApp; -import org.openqa.selenium.firefox.FirefoxDriver; - -public class ApplicationTest { - - private static WebDriver driver; - private static String baseUrl = WebDriverProvider.getBaseUrl("/it-app"); - private static ItApp itapp; - - @BeforeClass - public static void before() throws Exception { - driver = new FirefoxDriver(); - driver.get(baseUrl + "/login/j_security_check?isLoginPage=login-page&j_username=user&j_password=password"); - driver.get(baseUrl); - itapp = new ItApp(driver); - itapp.parseOutputTable(); - } - - @AfterClass - public static void after() { - WebDriverProvider.closeDriver(driver); - } - - @Test - public void i18n() throws Exception { - Assert.assertEquals("Hello from i18n", itapp.getTableValue("i18n")); - } - - @Test - public void aliasing() throws Exception { - Assert.assertEquals("Hello from an aliased class", itapp.getTableValue("aliasing")); - } - - @Test - public void aliasingImplementsConstraint() throws Exception { - Assert.assertEquals("Aliasing successfully prevented", itapp.getTableValue("aliasing-implement-fail")); - } - - @Test - public void namedspacedJS() throws Exception { - Assert.assertEquals("Hello from a namespaced-js lib", itapp.getTableValue("namespaced-js")); - } - - @Test - public void commonJS() throws Exception { - Assert.assertEquals("Hello from a common-js lib", itapp.getTableValue("common-js")); - } - - @Test - public void thirdParty() throws Exception { - Assert.assertEquals("Hello from a third-party lib", itapp.getTableValue("third-party-lib")); - } - - @Test - public void jndi() throws Exception { - Assert.assertEquals("Hello from JNDI", itapp.getTableValue("jndi")); - } - - @Test - public void xmlBundling() throws Exception { - Assert.assertEquals("Hello from bundled XML", itapp.getTableValue("xml-bundle")); - } - - @Test - public void unbundledImageIsDisplayedCorrectly() throws Exception { - Assert.assertEquals(40000L, itapp.computeSizeUnbundledImage()); - } - - @Test - public void cssBackgroundImageIsDisplayedCorrectly() throws Exception { - Assert.assertEquals(46265L, itapp.computeSizeCSSBackgroundImage()); - } - - @Test - public void themeIsCommonOnly() throws Exception { - String colour = itapp.extractColourForItblade(); - boolean isColourBlack = colour.equals("rgba(0, 0, 0, 1)") || colour.equals("black") || - colour.equals("#000") || colour.equals("#000000"); - Assert.assertTrue(isColourBlack); - } -} diff --git a/brjs-sdk/brjs-apps/it-app/default-aspect/test-integration/webdriver/LoginAspectTest.java b/brjs-sdk/brjs-apps/it-app/default-aspect/test-integration/webdriver/LoginAspectTest.java deleted file mode 100644 index 2ed767de0..000000000 --- a/brjs-sdk/brjs-apps/it-app/default-aspect/test-integration/webdriver/LoginAspectTest.java +++ /dev/null @@ -1,43 +0,0 @@ -import org.bladerunnerjs.legacy.testIntegration.WebDriverProvider; -import org.junit.*; -import org.openqa.selenium.*; -import org.openqa.selenium.firefox.FirefoxDriver; - -public class LoginAspectTest { - - private static WebDriver driver; - private static String baseUrl = WebDriverProvider.getBaseUrl("/it-app"); - - public LoginAspectTest() throws Exception { - driver = new FirefoxDriver(); - driver.get(baseUrl + "/login"); - } - - @AfterClass - public static void testsFinish() { - WebDriverProvider.closeDriver(driver); - } - - private static boolean isLoginPage() { - try { - WebElement loginForm = driver.findElement(By.id("formLogin")); - String submitButtonText = loginForm.findElement(By.tagName("button")).getText(); - int numberOfInputElements = loginForm.findElements(By.tagName("input")).size(); - if (numberOfInputElements != 3 || - !submitButtonText.equals("Login")) { - return false; - } - } catch (NoSuchElementException ex) { - return false; - } - return true; - } - - @Test - public void theLoginAspectPageIsServedCorrectly() throws Exception { - Assert.assertTrue(isLoginPage()); - } - -} - - diff --git a/brjs-sdk/brjs-apps/it-app/default-aspect/test-unit/.gitignore b/brjs-sdk/brjs-apps/it-app/default-aspect/test-unit/.gitignore deleted file mode 100644 index 286d4fa39..000000000 --- a/brjs-sdk/brjs-apps/it-app/default-aspect/test-unit/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bundles \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/default-aspect/test-unit/jsTestDriver.conf b/brjs-sdk/brjs-apps/it-app/default-aspect/test-unit/jsTestDriver.conf deleted file mode 100644 index 993e9abcc..000000000 --- a/brjs-sdk/brjs-apps/it-app/default-aspect/test-unit/jsTestDriver.conf +++ /dev/null @@ -1,13 +0,0 @@ -server: http://localhost:4224 -basepath: . - -load: - - bundles/i18n/en_i18n.bundle - - bundles/js/js.bundle - -serve: - - bundles/html.bundle - - bundles/xml.bundle - -test: - - tests/**.js diff --git a/brjs-sdk/brjs-apps/it-app/default-aspect/test-unit/resources/aliases.xml b/brjs-sdk/brjs-apps/it-app/default-aspect/test-unit/resources/aliases.xml deleted file mode 100644 index 817aa9607..000000000 --- a/brjs-sdk/brjs-apps/it-app/default-aspect/test-unit/resources/aliases.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/brjs-sdk/brjs-apps/it-app/default-aspect/test-unit/tests/AppTest.js b/brjs-sdk/brjs-apps/it-app/default-aspect/test-unit/tests/AppTest.js deleted file mode 100644 index 746ebe6a8..000000000 --- a/brjs-sdk/brjs-apps/it-app/default-aspect/test-unit/tests/AppTest.js +++ /dev/null @@ -1,11 +0,0 @@ -(function() { - 'use strict'; - - var AppTest = TestCase("AppTest"); - - var App = require("itapp/App"); - - AppTest.prototype.testSomething = function() { - - }; -}()); \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/default-aspect/themes/alternate/style.css b/brjs-sdk/brjs-apps/it-app/default-aspect/themes/alternate/style.css deleted file mode 100644 index ab12e5787..000000000 --- a/brjs-sdk/brjs-apps/it-app/default-aspect/themes/alternate/style.css +++ /dev/null @@ -1,3 +0,0 @@ -.app { - border: 1px solid red; -} diff --git a/brjs-sdk/brjs-apps/it-app/default-aspect/themes/common/images/backgroundImage.png b/brjs-sdk/brjs-apps/it-app/default-aspect/themes/common/images/backgroundImage.png deleted file mode 100644 index 671895e73..000000000 Binary files a/brjs-sdk/brjs-apps/it-app/default-aspect/themes/common/images/backgroundImage.png and /dev/null differ diff --git a/brjs-sdk/brjs-apps/it-app/default-aspect/themes/common/style.css b/brjs-sdk/brjs-apps/it-app/default-aspect/themes/common/style.css deleted file mode 100644 index 1cc401b44..000000000 --- a/brjs-sdk/brjs-apps/it-app/default-aspect/themes/common/style.css +++ /dev/null @@ -1,27 +0,0 @@ -body { - background-color: #eee; -} - -.app { - background-color:white; - max-width:500px; - margin:20px auto; - padding: 5px 20px; -} - -.br-logo { - text-align: center; -} -.br-logo img { - width:50px; -} - -.centre { - margin-left:auto; - margin-right:auto; -} - -.image-background { - background-image: url('images/backgroundImage.png'); - height: 90px; -} \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/default-aspect/themes/standard/style.css b/brjs-sdk/brjs-apps/it-app/default-aspect/themes/standard/style.css deleted file mode 100644 index e54aee2a5..000000000 --- a/brjs-sdk/brjs-apps/it-app/default-aspect/themes/standard/style.css +++ /dev/null @@ -1,3 +0,0 @@ -.app { - border: 1px solid black; -} diff --git a/brjs-sdk/brjs-apps/it-app/default-aspect/unbundled-resources/br-logo.png b/brjs-sdk/brjs-apps/it-app/default-aspect/unbundled-resources/br-logo.png deleted file mode 100644 index 66dcabe97..000000000 Binary files a/brjs-sdk/brjs-apps/it-app/default-aspect/unbundled-resources/br-logo.png and /dev/null differ diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/resources/aliasDefinitions.xml b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/resources/aliasDefinitions.xml deleted file mode 100644 index d30c58dd1..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/resources/aliasDefinitions.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/resources/aliases.xml b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/resources/aliases.xml deleted file mode 100644 index 38c8464c7..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/resources/aliases.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/resources/en.properties b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/resources/en.properties deleted file mode 100644 index ff4290d93..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/resources/en.properties +++ /dev/null @@ -1 +0,0 @@ -itapp.itbladeset.itblade.welcome-message=Hello from the Itblade View Model i18n properties diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/resources/html/view.html b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/resources/html/view.html deleted file mode 100644 index dafd92959..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/resources/html/view.html +++ /dev/null @@ -1,11 +0,0 @@ -
-
-

-

@{itapp.itbladeset.itblade.welcome-message}

-
-
-
- -
diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/resources/i18n/en.properties b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/resources/i18n/en.properties deleted file mode 100644 index 7b9c05a1a..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/resources/i18n/en.properties +++ /dev/null @@ -1,2 +0,0 @@ -itapp.itbladeset.itblade.hello.world=This is the itblade view template -itapp.itbladeset.itblade.messagei18n=This message is produced using i18n diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/src/ImplementFailClass.js b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/src/ImplementFailClass.js deleted file mode 100644 index bb414ae30..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/src/ImplementFailClass.js +++ /dev/null @@ -1,10 +0,0 @@ -"use strict"; - -var ImplementFailClass = function() { -}; - -ImplementFailClass.prototype.hello = function() { - return "Hello from ImplementFailClass"; -}; - -module.exports = ImplementFailClass; \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/src/ItbladeViewModel.js b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/src/ItbladeViewModel.js deleted file mode 100644 index b39cd19d8..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/src/ItbladeViewModel.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ko = require( 'ko' ); - -function ItbladeViewModel() { - this.eventHub = require('service!br.event-hub'); - this.bladeMessage = ko.observable('Hello from the Itblade View Model'); -} - -module.exports = ItbladeViewModel; diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/src/TestingClass.js b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/src/TestingClass.js deleted file mode 100644 index c19a8696e..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/src/TestingClass.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; -var br = require( 'br/Core' ); -var TestingInterface = require('./TestingInterface'); - -var TestingClass = function() { -}; - -br.implement(TestingClass, TestingInterface); - - -TestingClass.prototype.implementMe = function(message) { - return "Hello from an aliased class"; -}; - -module.exports = TestingClass; \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/src/TestingInterface.js b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/src/TestingInterface.js deleted file mode 100644 index 95de3cd36..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/src/TestingInterface.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; - -var TestingInterface = function() { -}; - -TestingInterface.prototype.implementMe = function() { -}; - -module.exports = TestingInterface; \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-acceptance/.gitignore b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-acceptance/.gitignore deleted file mode 100644 index 286d4fa39..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-acceptance/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bundles \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-acceptance/jsTestDriver.conf b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-acceptance/jsTestDriver.conf deleted file mode 100644 index 993e9abcc..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-acceptance/jsTestDriver.conf +++ /dev/null @@ -1,13 +0,0 @@ -server: http://localhost:4224 -basepath: . - -load: - - bundles/i18n/en_i18n.bundle - - bundles/js/js.bundle - -serve: - - bundles/html.bundle - - bundles/xml.bundle - -test: - - tests/**.js diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-acceptance/resources/aliases.xml b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-acceptance/resources/aliases.xml deleted file mode 100644 index 817aa9607..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-acceptance/resources/aliases.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-acceptance/tests/ItbladeViewModelTest.js b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-acceptance/tests/ItbladeViewModelTest.js deleted file mode 100644 index 8160b82a2..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-acceptance/tests/ItbladeViewModelTest.js +++ /dev/null @@ -1,25 +0,0 @@ -(function(){ - 'use strict'; - - require( 'jasmine' ); - - var originalConsoleLog = console.log; - - var ItbladeViewModel = require( 'itapp/itbladeset/itblade/ItbladeViewModel' ); - - describe('Itblade Tests', function() { - - beforeEach(function() { - console.log = jasmine.createSpy("console.log"); - }); - - afterEach(function() { - console.log = originalConsoleLog; - }); - - it( 'Should log hello on load', function() { - new ItbladeViewModel(); - }); - - }); -}()); \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-unit/.gitignore b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-unit/.gitignore deleted file mode 100644 index 286d4fa39..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-unit/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bundles \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-unit/jsTestDriver.conf b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-unit/jsTestDriver.conf deleted file mode 100644 index 993e9abcc..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-unit/jsTestDriver.conf +++ /dev/null @@ -1,13 +0,0 @@ -server: http://localhost:4224 -basepath: . - -load: - - bundles/i18n/en_i18n.bundle - - bundles/js/js.bundle - -serve: - - bundles/html.bundle - - bundles/xml.bundle - -test: - - tests/**.js diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-unit/resources/aliases.xml b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-unit/resources/aliases.xml deleted file mode 100644 index 817aa9607..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-unit/resources/aliases.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-unit/tests/ItbladeViewModelTest.js b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-unit/tests/ItbladeViewModelTest.js deleted file mode 100644 index 74b1bba4e..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/test-unit/tests/ItbladeViewModelTest.js +++ /dev/null @@ -1,12 +0,0 @@ -(function(){ - 'use strict'; - - var ItbladeViewModelTest = TestCase( 'ItbladeViewModelTest' ); - - var ItbladeViewModel = require( 'itapp/itbladeset/itblade/ItbladeViewModel' ); - - ItbladeViewModelTest.prototype.testSomething = function() { - var model = new ItbladeViewModel(); - - }; -}()); \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/themes/alternate/style.css b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/themes/alternate/style.css deleted file mode 100644 index abc8c4148..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/themes/alternate/style.css +++ /dev/null @@ -1,4 +0,0 @@ -.itbladeset-itblade-blade { - background-color: #D3D3D3; - color: red; -} diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/themes/common/style.css b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/themes/common/style.css deleted file mode 100644 index ed874b373..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/themes/common/style.css +++ /dev/null @@ -1,6 +0,0 @@ -.itbladeset-itblade-blade { - background-color: white; - color: black; - border: 1px solid; - text-align: center; -} diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/themes/standard/style.css b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/themes/standard/style.css deleted file mode 100644 index e7cf875ba..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/themes/standard/style.css +++ /dev/null @@ -1,4 +0,0 @@ -.itbladeset-itblade-blade { - background-color: white; - color: black; -} diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/workbench/index.html b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/workbench/index.html deleted file mode 100644 index d3ab687f7..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/workbench/index.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - Workbench - - <@css.bundle theme="standard" alternateTheme="alternate" @/> - - - - - <@i18n.bundle @/> - <@js.bundle @/> - - - - diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/workbench/resources/aliases.xml b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/workbench/resources/aliases.xml deleted file mode 100644 index 671746317..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/workbench/resources/aliases.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/workbench/resources/i18n/en.properties b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/workbench/resources/i18n/en.properties deleted file mode 100644 index 14e320204..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/workbench/resources/i18n/en.properties +++ /dev/null @@ -1 +0,0 @@ -hello.world="Hello from the Workbench" diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/workbench/resources/style/workbench.css b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/workbench/resources/style/workbench.css deleted file mode 100644 index 49ef4e567..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/blades/itblade/workbench/resources/style/workbench.css +++ /dev/null @@ -1 +0,0 @@ -/* workbench styling goes here */ \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/resources/i18n/en.properties b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/resources/i18n/en.properties deleted file mode 100644 index 5510ca461..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/resources/i18n/en.properties +++ /dev/null @@ -1 +0,0 @@ -itapp.itbladeset.hello.world="Hello from the Itbladeset BladeSet" diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/src/ItbladesetClass.js b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/src/ItbladesetClass.js deleted file mode 100644 index 009286ffc..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/src/ItbladesetClass.js +++ /dev/null @@ -1,11 +0,0 @@ -"use strict"; - -var ItbladesetClass = function() -{ -}; - -ItbladesetClass.prototype.sayHello = function() { - return "hello"; -}; - -module.exports = ItbladesetClass; diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/test-unit/.gitignore b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/test-unit/.gitignore deleted file mode 100644 index 286d4fa39..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/test-unit/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bundles \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/test-unit/jsTestDriver.conf b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/test-unit/jsTestDriver.conf deleted file mode 100644 index 993e9abcc..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/test-unit/jsTestDriver.conf +++ /dev/null @@ -1,13 +0,0 @@ -server: http://localhost:4224 -basepath: . - -load: - - bundles/i18n/en_i18n.bundle - - bundles/js/js.bundle - -serve: - - bundles/html.bundle - - bundles/xml.bundle - -test: - - tests/**.js diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/test-unit/resources/aliases.xml b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/test-unit/resources/aliases.xml deleted file mode 100644 index 817aa9607..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/test-unit/resources/aliases.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/test-unit/tests/ItbladesetClassTest.js b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/test-unit/tests/ItbladesetClassTest.js deleted file mode 100644 index 8f0f52743..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/test-unit/tests/ItbladesetClassTest.js +++ /dev/null @@ -1,12 +0,0 @@ -(function(){ - 'use strict'; - - var ExampleClassTest = TestCase("ExampleClassTest"); - - var ItbladesetClass = require("itapp/itbladeset/ItbladesetClass"); - - ExampleClassTest.prototype.testSomething = function() - { - assertEquals("hello", new ItbladesetClass().sayHello()); - }; -}()); \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/themes/alternate/style.css b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/themes/alternate/style.css deleted file mode 100644 index 50ae05505..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/themes/alternate/style.css +++ /dev/null @@ -1 +0,0 @@ -/* bladeset level styling for the alternate theme */ diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/themes/common/style.css b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/themes/common/style.css deleted file mode 100644 index dbad2177a..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/themes/common/style.css +++ /dev/null @@ -1 +0,0 @@ -/* common bladeset level styling */ diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/themes/standard/style.css b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/themes/standard/style.css deleted file mode 100644 index 08be314b3..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/themes/standard/style.css +++ /dev/null @@ -1 +0,0 @@ -/* bladeset level styling for the standard theme */ diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/workbench/index.html b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/workbench/index.html deleted file mode 100644 index 862e13595..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/workbench/index.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - Workbench - - <@css.bundle theme="standard" alternateTheme="alternate" @/> - - - - - <@i18n.bundle @/> - <@js.bundle @/> - -
-

This is your bladeset workbench. You can use this workbench for performing integration tests involving multiple blades.

- -
- - - - - - diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/workbench/resources/aliases.xml b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/workbench/resources/aliases.xml deleted file mode 100644 index 671746317..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/workbench/resources/aliases.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/workbench/resources/i18n/en.properties b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/workbench/resources/i18n/en.properties deleted file mode 100644 index 14e320204..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/workbench/resources/i18n/en.properties +++ /dev/null @@ -1 +0,0 @@ -hello.world="Hello from the Workbench" diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/workbench/resources/style/br-logo.png b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/workbench/resources/style/br-logo.png deleted file mode 100644 index 66dcabe97..000000000 Binary files a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/workbench/resources/style/br-logo.png and /dev/null differ diff --git a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/workbench/resources/style/workbench.css b/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/workbench/resources/style/workbench.css deleted file mode 100644 index 2d775a7d8..000000000 --- a/brjs-sdk/brjs-apps/it-app/itbladeset-bladeset/workbench/resources/style/workbench.css +++ /dev/null @@ -1,20 +0,0 @@ -body { - background-color:#eee; -} - -.app { - background-color:white; - max-width:500px; - margin:20px auto; - padding:5px 20px; -} - -.br-logo { - margin-left: auto; - margin-right: auto; - width: 70%; - background-image:url('br-logo.png'); - width:50px; - height:50px; - background-size: 50px 50px; -} \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/libs/commonJsLib/.js-style b/brjs-sdk/brjs-apps/it-app/libs/commonJsLib/.js-style deleted file mode 100644 index ef19d648b..000000000 --- a/brjs-sdk/brjs-apps/it-app/libs/commonJsLib/.js-style +++ /dev/null @@ -1 +0,0 @@ -common-js \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/libs/commonJsLib/br-lib.conf b/brjs-sdk/brjs-apps/it-app/libs/commonJsLib/br-lib.conf deleted file mode 100644 index ecdb26308..000000000 --- a/brjs-sdk/brjs-apps/it-app/libs/commonJsLib/br-lib.conf +++ /dev/null @@ -1 +0,0 @@ -requirePrefix: commonjslib \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/libs/commonJsLib/src/CommonJsLib.js b/brjs-sdk/brjs-apps/it-app/libs/commonJsLib/src/CommonJsLib.js deleted file mode 100644 index d7d7dde42..000000000 --- a/brjs-sdk/brjs-apps/it-app/libs/commonJsLib/src/CommonJsLib.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; - -var CommonJsLib = {} - -CommonJsLib.hello = function() { - return "Hello from a common-js lib"; -}; - -module.exports = CommonJsLib; diff --git a/brjs-sdk/brjs-apps/it-app/libs/commonJsLib/test-unit/.gitignore b/brjs-sdk/brjs-apps/it-app/libs/commonJsLib/test-unit/.gitignore deleted file mode 100644 index 286d4fa39..000000000 --- a/brjs-sdk/brjs-apps/it-app/libs/commonJsLib/test-unit/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bundles \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/libs/commonJsLib/test-unit/jsTestDriver.conf b/brjs-sdk/brjs-apps/it-app/libs/commonJsLib/test-unit/jsTestDriver.conf deleted file mode 100644 index 2d250ab55..000000000 --- a/brjs-sdk/brjs-apps/it-app/libs/commonJsLib/test-unit/jsTestDriver.conf +++ /dev/null @@ -1,8 +0,0 @@ -server: http://localhost:4224 -basepath: . - -load: - - bundles/js/js.bundle - -test: - - tests/**.js diff --git a/brjs-sdk/brjs-apps/it-app/libs/commonJsLib/test-unit/resources/aliases.xml b/brjs-sdk/brjs-apps/it-app/libs/commonJsLib/test-unit/resources/aliases.xml deleted file mode 100644 index 817aa9607..000000000 --- a/brjs-sdk/brjs-apps/it-app/libs/commonJsLib/test-unit/resources/aliases.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/brjs-sdk/brjs-apps/it-app/libs/commonJsLib/test-unit/tests/CommonJsLibTest.js b/brjs-sdk/brjs-apps/it-app/libs/commonJsLib/test-unit/tests/CommonJsLibTest.js deleted file mode 100644 index db8198e31..000000000 --- a/brjs-sdk/brjs-apps/it-app/libs/commonJsLib/test-unit/tests/CommonJsLibTest.js +++ /dev/null @@ -1,11 +0,0 @@ -(function(){ - 'use strict'; - - var ExampleClassTest = TestCase("ExampleClassTest"); - - var CommonJsLib = require("commonjslib/CommonJsLib"); - - ExampleClassTest.prototype.testHelloWorldUtil = function() - { - }; -}()); \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/libs/namedspacedJsLib/.js-style b/brjs-sdk/brjs-apps/it-app/libs/namedspacedJsLib/.js-style deleted file mode 100644 index 8d9cea883..000000000 --- a/brjs-sdk/brjs-apps/it-app/libs/namedspacedJsLib/.js-style +++ /dev/null @@ -1 +0,0 @@ -namespaced-js \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/libs/namedspacedJsLib/br-lib.conf b/brjs-sdk/brjs-apps/it-app/libs/namedspacedJsLib/br-lib.conf deleted file mode 100644 index b63c2e8c3..000000000 --- a/brjs-sdk/brjs-apps/it-app/libs/namedspacedJsLib/br-lib.conf +++ /dev/null @@ -1 +0,0 @@ -requirePrefix: namedspacedjslib \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/libs/namedspacedJsLib/src/NamedspacedJsLib.js b/brjs-sdk/brjs-apps/it-app/libs/namedspacedJsLib/src/NamedspacedJsLib.js deleted file mode 100644 index 88967e7bb..000000000 --- a/brjs-sdk/brjs-apps/it-app/libs/namedspacedJsLib/src/NamedspacedJsLib.js +++ /dev/null @@ -1,10 +0,0 @@ -"use strict"; - -namedspacedjslib.NamedspacedJsLib = {}; - -namedspacedjslib.NamedspacedJsLib.hello = function() { - return "Hello from a namespaced-js lib"; -}; - - - diff --git a/brjs-sdk/brjs-apps/it-app/libs/namedspacedJsLib/test-unit/.gitignore b/brjs-sdk/brjs-apps/it-app/libs/namedspacedJsLib/test-unit/.gitignore deleted file mode 100644 index 286d4fa39..000000000 --- a/brjs-sdk/brjs-apps/it-app/libs/namedspacedJsLib/test-unit/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bundles \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/libs/namedspacedJsLib/test-unit/jsTestDriver.conf b/brjs-sdk/brjs-apps/it-app/libs/namedspacedJsLib/test-unit/jsTestDriver.conf deleted file mode 100644 index 2d250ab55..000000000 --- a/brjs-sdk/brjs-apps/it-app/libs/namedspacedJsLib/test-unit/jsTestDriver.conf +++ /dev/null @@ -1,8 +0,0 @@ -server: http://localhost:4224 -basepath: . - -load: - - bundles/js/js.bundle - -test: - - tests/**.js diff --git a/brjs-sdk/brjs-apps/it-app/libs/namedspacedJsLib/test-unit/resources/aliases.xml b/brjs-sdk/brjs-apps/it-app/libs/namedspacedJsLib/test-unit/resources/aliases.xml deleted file mode 100644 index 817aa9607..000000000 --- a/brjs-sdk/brjs-apps/it-app/libs/namedspacedJsLib/test-unit/resources/aliases.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/brjs-sdk/brjs-apps/it-app/libs/namedspacedJsLib/test-unit/tests/NamedspacedJsLibTest.js b/brjs-sdk/brjs-apps/it-app/libs/namedspacedJsLib/test-unit/tests/NamedspacedJsLibTest.js deleted file mode 100644 index bbfabad3d..000000000 --- a/brjs-sdk/brjs-apps/it-app/libs/namedspacedJsLib/test-unit/tests/NamedspacedJsLibTest.js +++ /dev/null @@ -1,11 +0,0 @@ -(function(){ - 'use strict'; - - var ExampleClassTest = TestCase("ExampleClassTest"); - - var NamedspacedJsLib = require("namedspacedjslib/NamedspacedJsLib"); - - ExampleClassTest.prototype.testHelloWorldUtil = function() - { - }; -}()); \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/libs/testlib3p/src/Testlib3p.js b/brjs-sdk/brjs-apps/it-app/libs/testlib3p/src/Testlib3p.js deleted file mode 100644 index e2bbf35e5..000000000 --- a/brjs-sdk/brjs-apps/it-app/libs/testlib3p/src/Testlib3p.js +++ /dev/null @@ -1,8 +0,0 @@ -"use strict"; - -var Testlib3p = {}; - -Testlib3p.hello = function() { - return "Hello from a third-party lib"; -}; - diff --git a/brjs-sdk/brjs-apps/it-app/libs/testlib3p/test-unit/.gitignore b/brjs-sdk/brjs-apps/it-app/libs/testlib3p/test-unit/.gitignore deleted file mode 100644 index 286d4fa39..000000000 --- a/brjs-sdk/brjs-apps/it-app/libs/testlib3p/test-unit/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bundles \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/libs/testlib3p/test-unit/jsTestDriver.conf b/brjs-sdk/brjs-apps/it-app/libs/testlib3p/test-unit/jsTestDriver.conf deleted file mode 100644 index 2d250ab55..000000000 --- a/brjs-sdk/brjs-apps/it-app/libs/testlib3p/test-unit/jsTestDriver.conf +++ /dev/null @@ -1,8 +0,0 @@ -server: http://localhost:4224 -basepath: . - -load: - - bundles/js/js.bundle - -test: - - tests/**.js diff --git a/brjs-sdk/brjs-apps/it-app/libs/testlib3p/test-unit/resources/aliases.xml b/brjs-sdk/brjs-apps/it-app/libs/testlib3p/test-unit/resources/aliases.xml deleted file mode 100644 index 817aa9607..000000000 --- a/brjs-sdk/brjs-apps/it-app/libs/testlib3p/test-unit/resources/aliases.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/brjs-sdk/brjs-apps/it-app/libs/testlib3p/test-unit/tests/Testlib3pTest.js b/brjs-sdk/brjs-apps/it-app/libs/testlib3p/test-unit/tests/Testlib3pTest.js deleted file mode 100644 index ad70953b1..000000000 --- a/brjs-sdk/brjs-apps/it-app/libs/testlib3p/test-unit/tests/Testlib3pTest.js +++ /dev/null @@ -1,12 +0,0 @@ -(function(){ - 'use strict'; - - var ExampleClassTest = TestCase("ExampleClassTest"); - - var Testlib3p = require("testlib3p"); - - ExampleClassTest.prototype.testHelloWorldUtil = function() - { - - }; -}()); \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/libs/testlib3p/thirdparty-lib.manifest b/brjs-sdk/brjs-apps/it-app/libs/testlib3p/thirdparty-lib.manifest deleted file mode 100644 index ef23e8b63..000000000 --- a/brjs-sdk/brjs-apps/it-app/libs/testlib3p/thirdparty-lib.manifest +++ /dev/null @@ -1,4 +0,0 @@ -css: -depends: -exports: Testlib3p -js: src/Testlib3p.js \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/login-aspect/index.html b/brjs-sdk/brjs-apps/it-app/login-aspect/index.html deleted file mode 100644 index 91d81672a..000000000 --- a/brjs-sdk/brjs-apps/it-app/login-aspect/index.html +++ /dev/null @@ -1,9 +0,0 @@ - -
- - - - -
\ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/login-aspect/resources/aliases.xml b/brjs-sdk/brjs-apps/it-app/login-aspect/resources/aliases.xml deleted file mode 100644 index 38c8464c7..000000000 --- a/brjs-sdk/brjs-apps/it-app/login-aspect/resources/aliases.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/brjs-sdk/brjs-apps/it-app/login-aspect/resources/i18n/en.properties b/brjs-sdk/brjs-apps/it-app/login-aspect/resources/i18n/en.properties deleted file mode 100644 index 4bddf7623..000000000 --- a/brjs-sdk/brjs-apps/it-app/login-aspect/resources/i18n/en.properties +++ /dev/null @@ -1 +0,0 @@ -itapp.hello.world="Hello from the Login Aspect" diff --git a/brjs-sdk/brjs-apps/it-app/login-aspect/src/App.js b/brjs-sdk/brjs-apps/it-app/login-aspect/src/App.js deleted file mode 100644 index c2e54975d..000000000 --- a/brjs-sdk/brjs-apps/it-app/login-aspect/src/App.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var App = function() { - -}; - -module.exports = App; diff --git a/brjs-sdk/brjs-apps/it-app/login-aspect/test-acceptance/.gitignore b/brjs-sdk/brjs-apps/it-app/login-aspect/test-acceptance/.gitignore deleted file mode 100644 index 286d4fa39..000000000 --- a/brjs-sdk/brjs-apps/it-app/login-aspect/test-acceptance/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bundles \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/login-aspect/test-acceptance/jsTestDriver.conf b/brjs-sdk/brjs-apps/it-app/login-aspect/test-acceptance/jsTestDriver.conf deleted file mode 100644 index 993e9abcc..000000000 --- a/brjs-sdk/brjs-apps/it-app/login-aspect/test-acceptance/jsTestDriver.conf +++ /dev/null @@ -1,13 +0,0 @@ -server: http://localhost:4224 -basepath: . - -load: - - bundles/i18n/en_i18n.bundle - - bundles/js/js.bundle - -serve: - - bundles/html.bundle - - bundles/xml.bundle - -test: - - tests/**.js diff --git a/brjs-sdk/brjs-apps/it-app/login-aspect/test-acceptance/resources/aliases.xml b/brjs-sdk/brjs-apps/it-app/login-aspect/test-acceptance/resources/aliases.xml deleted file mode 100644 index 38c8464c7..000000000 --- a/brjs-sdk/brjs-apps/it-app/login-aspect/test-acceptance/resources/aliases.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/brjs-sdk/brjs-apps/it-app/login-aspect/test-acceptance/tests/AppTest.js b/brjs-sdk/brjs-apps/it-app/login-aspect/test-acceptance/tests/AppTest.js deleted file mode 100644 index ece0e36e3..000000000 --- a/brjs-sdk/brjs-apps/it-app/login-aspect/test-acceptance/tests/AppTest.js +++ /dev/null @@ -1,23 +0,0 @@ -(function() { - 'use strict'; - - require( 'jasmine' ); - - var App = require("itapp/App"); - - describe('App Tests', function() { - - beforeEach(function() { - - }); - - afterEach(function() { - - }); - - it( 'Should say hello', function() { - - }); - - }); -}()); \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/login-aspect/test-unit/.gitignore b/brjs-sdk/brjs-apps/it-app/login-aspect/test-unit/.gitignore deleted file mode 100644 index 286d4fa39..000000000 --- a/brjs-sdk/brjs-apps/it-app/login-aspect/test-unit/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bundles \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/login-aspect/test-unit/jsTestDriver.conf b/brjs-sdk/brjs-apps/it-app/login-aspect/test-unit/jsTestDriver.conf deleted file mode 100644 index 993e9abcc..000000000 --- a/brjs-sdk/brjs-apps/it-app/login-aspect/test-unit/jsTestDriver.conf +++ /dev/null @@ -1,13 +0,0 @@ -server: http://localhost:4224 -basepath: . - -load: - - bundles/i18n/en_i18n.bundle - - bundles/js/js.bundle - -serve: - - bundles/html.bundle - - bundles/xml.bundle - -test: - - tests/**.js diff --git a/brjs-sdk/brjs-apps/it-app/login-aspect/test-unit/resources/aliases.xml b/brjs-sdk/brjs-apps/it-app/login-aspect/test-unit/resources/aliases.xml deleted file mode 100644 index 817aa9607..000000000 --- a/brjs-sdk/brjs-apps/it-app/login-aspect/test-unit/resources/aliases.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/brjs-sdk/brjs-apps/it-app/login-aspect/test-unit/tests/AppTest.js b/brjs-sdk/brjs-apps/it-app/login-aspect/test-unit/tests/AppTest.js deleted file mode 100644 index 746ebe6a8..000000000 --- a/brjs-sdk/brjs-apps/it-app/login-aspect/test-unit/tests/AppTest.js +++ /dev/null @@ -1,11 +0,0 @@ -(function() { - 'use strict'; - - var AppTest = TestCase("AppTest"); - - var App = require("itapp/App"); - - AppTest.prototype.testSomething = function() { - - }; -}()); \ No newline at end of file diff --git a/brjs-sdk/brjs-apps/it-app/test-integration-src/testlib/ItApp.java b/brjs-sdk/brjs-apps/it-app/test-integration-src/testlib/ItApp.java deleted file mode 100644 index c14704bf1..000000000 --- a/brjs-sdk/brjs-apps/it-app/test-integration-src/testlib/ItApp.java +++ /dev/null @@ -1,73 +0,0 @@ -package testlib; - -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.*; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; - -public class ItApp { - private HashMap outputTable; - private WebDriver driver; - - public ItApp(WebDriver wd) throws Exception { - this.outputTable = new HashMap<>(); - this.driver = wd; - } - - public void parseOutputTable() { - WebElement uiTable = this.driver.findElement(By.id("outputTable")); - - List tableEntries = uiTable.findElements(By.tagName("td")); - Iterator it = tableEntries.iterator(); - - while (it.hasNext()) { - String key = it.next().getText(); - String value; - if (it.hasNext()) { - value = it.next().getText(); - this.outputTable.put(key, value); - } - } - } - - public long computeSizeCSSBackgroundImage() { - WebElement imageBackgroundDiv = this.driver.findElement(By.className("image-background")); - String backgroundImageStyle = imageBackgroundDiv.getCssValue("background-image"); - String backgroundImageURL = ""; - if (backgroundImageStyle.matches("url\\(\".*v/dev/cssresource/aspect_default/theme_common/images/backgroundImage.png\"\\)")) { - backgroundImageURL = backgroundImageStyle.substring(5, backgroundImageStyle.length() - 2); - } - return computeSizeOfImageUsingJS(backgroundImageURL); - } - - public long computeSizeUnbundledImage() { - String unbundledImageURL = ""; - List imgs = this.driver.findElements(By.tagName("img")); - for (WebElement we : imgs) { - String srcAttribute = we.getAttribute("src"); - if (srcAttribute.matches(".*v/dev/unbundled-resources/br-logo\\.png")) { - unbundledImageURL = srcAttribute; - } - } - return computeSizeOfImageUsingJS(unbundledImageURL); - } - - private long computeSizeOfImageUsingJS(String imagesrc) { - String javaScript = "var img = new Image();" + - "img.src = \"" + imagesrc + "\";" + - "return img.naturalWidth * img.naturalHeight;"; - Object scriptResult = ((JavascriptExecutor) this.driver).executeScript(javaScript); - return (long) scriptResult; - } - - public String extractColourForItblade() { - WebElement itBladeDiv = this.driver.findElement(By.className("itbladeset-itblade-blade")); - return itBladeDiv.getCssValue("color"); - } - - public String getTableValue(String key) { - return outputTable.get(key); - } -} \ No newline at end of file diff --git a/brjs-sdk/build.gradle b/brjs-sdk/build.gradle index 8efe6c431..1fe7ce984 100644 --- a/brjs-sdk/build.gradle +++ b/brjs-sdk/build.gradle @@ -141,7 +141,7 @@ def createTestTask = { taskName, taskTestDir, taskTestType, browser -> task taskName, type: org.bladerunnerjs.gradle.tasks.RunJstdTests, dependsOn: assemble, { description = "Run ${taskTestType} for ${taskTestDir} using ${browser}" dependsOn = [assemble, copyBrowsers] - inputs.dir file("brjs-apps/") + inputs.dir file("apps/") inputs.dir file("sdk/") inputs.dir file("conf/") workingDir = "sdk" @@ -160,7 +160,7 @@ def createTestTask = { taskName, taskTestDir, taskTestType, browser -> task runIntegrationTests(type: Exec) { workingDir './sdk' - commandLine OSCalculator.getOSSpecificCommand('brjs test-integration ../brjs-apps/it-app') + commandLine OSCalculator.getOSSpecificCommand('brjs test-integration ../apps/it-app') } gradle.addListener(new StartBRJSExecutionListener( runIntegrationTests, @@ -176,7 +176,7 @@ task jsdoc, dependsOn: assembleSdk, { outputs.dir "sdk/docs/js" def jsDocTmpAppName = "jsdoc-tmp-app" doFirst { - delete file("brjs-apps/${jsDocTmpAppName}") + delete file("apps/${jsDocTmpAppName}") delete file("apps/${jsDocTmpAppName}") exec { commandLine org.bladerunnerjs.OSCalculator.getOSSpecificCommand("brjs") + ["create-app", jsDocTmpAppName, "--no-stats"] @@ -192,7 +192,7 @@ task jsdoc, dependsOn: assembleSdk, { } } doLast { - delete file("brjs-apps/${jsDocTmpAppName}") + delete file("apps/${jsDocTmpAppName}") delete file("apps/${jsDocTmpAppName}") file("sdk/docs/js/hosted-docs/hosted-docs.css").text += "\n.regeneratedDocsBtn, .subnav, .dashboard-link, .releases-link { display: none !important; }" file("sdk/docs/js/hosted-docs/hosted-docs.js").text += "\nfunction addVersion() {\n"+ @@ -224,7 +224,7 @@ task downloadExampleApps, { task extractExampleApps, type:Copy, dependsOn:downloadExampleApps, { from zipTree( tasks.downloadExampleApps.outputs.files.singleFile ) - into "brjs-apps/example-app-brjs-todo" // Temporarily changing to explicit folder + into "apps/example-app-brjs-todo" // Temporarily changing to explicit folder includeEmptyDirs = false eachFile { it.path = it.path.replaceFirst("[A-Za-z0-9-_]+/","") @@ -232,9 +232,9 @@ task extractExampleApps, type:Copy, dependsOn:downloadExampleApps, { } } -createTestTask "exampleAppsTestJsChrome", "../brjs-apps/", "ALL", "chrome" +createTestTask "exampleAppsTestJsChrome", "../apps/", "ALL", "chrome" exampleAppsTestJsChrome.dependsOn extractExampleApps -createTestTask "exampleAppsTestJsFirefox", "../brjs-apps/", "ALL", "firefox" +createTestTask "exampleAppsTestJsFirefox", "../apps/", "ALL", "firefox" exampleAppsTestJsFirefox.dependsOn extractExampleApps task exampleAppsTestJs, dependsOn: [exampleAppsTestJsChrome, exampleAppsTestJsFirefox], {} @@ -271,7 +271,7 @@ task distZip, type:Zip, dependsOn: [assemble], { baseName = "BladeRunnerJS" from projectDir into "BladeRunnerJS/" - include "sdk/**", "sdk/**", "brjs-apps/apps.txt", "LICENSE", "README.txt" + include "sdk/**", "apps/apps.txt", "LICENSE", "README.txt" exclude "**/.gitignore", "**/.p4ignore" exclude "**/libs/**/tests/*", "**/libs/javascript/*/test-*/*", "**/libs/**/src-test/*" exclude "**/system-applications/**/tests/*", "**/system-applications/*/test-*/*", "**/system-applications/**/src-test/*" @@ -331,7 +331,7 @@ task checkSdkStructure, type:org.bladerunnerjs.gradle.tasks.CheckDirectoryStruct "sdk/jsdoc-toolkit-resources/jsdoc-toolkit/node_modules/**", "README.txt", "LICENSE", - "brjs-apps/apps.txt" + "apps/apps.txt" ] bannedPaths = [ "**/build/**", @@ -355,7 +355,7 @@ task checkSdkStructure, type:org.bladerunnerjs.gradle.tasks.CheckDirectoryStruct "*/sdk/libs/javascript/br-libs/**", "*/sdk/run*", "*/sdk/libs/**/node_modules/**", - "*/brjs-apps/*/*", + "*/apps/*/*", "*/apps/**", "**/*_NODIST/**" ] diff --git a/brjs-sdk/sdk/templates/default/brjs/apps/.gitkeep b/brjs-sdk/sdk/templates/default/brjs/apps/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/plugins/brjs-plugins/src/test-integration/java/org/bladerunnerjs/plugin/commands/standard/IntegrationServeCommandTest.java b/plugins/brjs-plugins/src/test-integration/java/org/bladerunnerjs/plugin/commands/standard/IntegrationServeCommandTest.java index 37939e3d9..df14fbb6d 100644 --- a/plugins/brjs-plugins/src/test-integration/java/org/bladerunnerjs/plugin/commands/standard/IntegrationServeCommandTest.java +++ b/plugins/brjs-plugins/src/test-integration/java/org/bladerunnerjs/plugin/commands/standard/IntegrationServeCommandTest.java @@ -57,6 +57,8 @@ public void serveCommandStartsAppServer() throws Exception .and(brjs).pluginsAccessed(); when(brjs).runThreadedCommand("serve"); then(logging).infoMessageReceived(SERVER_STARTING_LOG_MSG, "BladeRunnerJS") + .and(logging).infoMessageReceived(BRJS.Messages.NO_APPS_DISCOVERED, "system") + .and(logging).infoMessageReceived(BRJS.Messages.NO_APPS_DISCOVERED, "user") .and(logging).infoMessageReceived(SERVER_STARTED_LOG_MESSAGE, appServerPort) .and(logging).containsFormattedConsoleMessage(SERVER_STARTUP_MESSAGE + appServerPort +"/") .and(logging).containsFormattedConsoleMessage(SERVER_STOP_INSTRUCTION_MESSAGE + "\n") @@ -75,8 +77,8 @@ public void newAppCreatedFromADifferentModelIsHostedIfAppsLiveSeperateFromTheSdk when(brjs).runThreadedCommand("serve") .and(secondBrjsProcess).runCommand("create-app", "app1", "blah"); then(brjs.applicationServer(appServerPort)).requestCanEventuallyBeMadeFor("/app1/") - .and(testSdkDirectory).doesNotContainDir("brjs-apps") - .and(testSdkDirectory).doesNotContainDir("app1") + .and(testRootDirectory).doesNotContainDir("apps") + .and(testRootDirectory).doesNotContainDir("app1") .and(secondaryTempFolder).containsDir("app1"); } @@ -99,6 +101,8 @@ public void canOverridePortValueWithArgument() throws Exception .and(brjs).pluginsAccessed(); when(brjs).runThreadedCommand("serve", "-p", "7777"); then(logging).infoMessageReceived(SERVER_STARTING_LOG_MSG, "BladeRunnerJS") + .and(logging).infoMessageReceived(BRJS.Messages.NO_APPS_DISCOVERED, "system") + .and(logging).infoMessageReceived(BRJS.Messages.NO_APPS_DISCOVERED, "user") .and(logging).infoMessageReceived(SERVER_STARTED_LOG_MESSAGE, "7777") .and(logging).containsFormattedConsoleMessage(SERVER_STARTUP_MESSAGE + "7777/") .and(logging).containsFormattedConsoleMessage(SERVER_STOP_INSTRUCTION_MESSAGE + "\n") @@ -132,6 +136,9 @@ public void serveCommandStartsTheFileWatcher() throws Exception given(aspect).hasClass("appns/Class1") .and(aspect).hasClass("appns/Class2") + .and(aspect).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(aspect).indexPageRefersTo("appns.Class1") .and(app).hasReceivedRequest("v/dev/js/dev/combined/bundle.js"); when(brjs).runThreadedCommand("serve") @@ -158,6 +165,9 @@ public void versionIsConfigurable() throws Exception appServer = brjs.applicationServer(); given(aspect).hasClass("appns/Class1") .and(aspect).hasClass("appns/Class2") + .and(aspect).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(aspect).indexPageRefersTo("appns.Class1"); when(brjs).runThreadedCommand("serve", "-v", "myversion"); then(appServer).requestCanEventuallyBeMadeWhereResponseMatches("/app1/v/myversion/js/dev/combined/bundle.js", new Predicate() @@ -181,6 +191,9 @@ public void customVersionHasTimestampAppended() throws Exception Aspect aspect = app.defaultAspect(); appServer = brjs.applicationServer(); given(aspect).hasClass("appns/Class1") + .and(aspect).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(aspect).hasClass("appns/Class2") .and(aspect).indexPageRefersTo("appns.Class1"); when(brjs).runThreadedCommand("serve", "-v", "myversion"); diff --git a/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/aliasing/AliasAndServiceBundlingTest.java b/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/aliasing/AliasAndServiceBundlingTest.java index db8bc1b7d..58a6f7df9 100644 --- a/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/aliasing/AliasAndServiceBundlingTest.java +++ b/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/aliasing/AliasAndServiceBundlingTest.java @@ -1096,8 +1096,8 @@ public void aWarningIsLoggedWhenLegacyNamespacesAreUsed() throws Exception .and(logging).enabled(); when(aspect).requestReceivedInDev("js/dev/combined/bundle.js", response); then(response).containsNamespacedJsClasses("appns.Class1", "appns.Class2") - .and(logging).warnMessageReceived(AliasesReader.LEGACY_XMLNS_WARN_MSG, "brjs-apps/app1/default-aspect/resources/aliases.xml") - .and(logging).warnMessageReceived(AliasDefinitionsReader.LEGACY_XMLNS_WARN_MSG, "brjs-apps/app1/default-aspect/resources/aliasDefinitions.xml"); + .and(logging).warnMessageReceived(AliasesReader.LEGACY_XMLNS_WARN_MSG, "apps/app1/default-aspect/resources/aliases.xml") + .and(logging).warnMessageReceived(AliasDefinitionsReader.LEGACY_XMLNS_WARN_MSG, "apps/app1/default-aspect/resources/aliasDefinitions.xml"); } } diff --git a/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/command/BundleDepsCommandTest.java b/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/command/BundleDepsCommandTest.java index 1dbe0a8a3..6f5361dbe 100644 --- a/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/command/BundleDepsCommandTest.java +++ b/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/command/BundleDepsCommandTest.java @@ -63,17 +63,20 @@ public void exceptionIsThrownIfTheDirectoryDoesntExist() throws Exception { @Test public void exceptionIsThrownIfABundlableNodeCantBeLocated() throws Exception { given(app).hasBeenCreated(); - when(brjs).runCommand("bundle-deps", "../brjs-apps"); - then(exceptions).verifyException(InvalidBundlableNodeException.class, "brjs-apps") + when(brjs).runCommand("bundle-deps", "../apps"); + then(exceptions).verifyException(InvalidBundlableNodeException.class, "apps") .whereTopLevelExceptionIs(CommandArgumentsException.class); } @Test public void commandIsAutomaticallyLoaded() throws Exception { - given(aspect).hasBeenCreated() + given(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") + .and(aspect).hasBeenCreated() .and(brjs).hasBeenAuthenticallyCreated(); - when(brjs).runCommand("bundle-deps", "../brjs-apps/app/default-aspect"); + when(brjs).runCommand("bundle-deps", "../apps/app/default-aspect"); then(exceptions).verifyNoOutstandingExceptions(); } @@ -82,9 +85,9 @@ public void dependenciesAreShownWhenAllArgumentsAreValid() throws Exception { given(aspect).indexPageRequires("appns/Class1") .and(aspect).hasClasses("appns/Class1", "appns/Class2") .and(aspect).classRequires("appns/Class1", "./Class2"); - when(brjs).runCommand("bundle-deps", "../brjs-apps/app/default-aspect"); + when(brjs).runCommand("bundle-deps", "../apps/app/default-aspect"); then(logging).containsConsoleText( - "Bundle 'brjs-apps/app/default-aspect' dependencies found:", + "Bundle 'apps/app/default-aspect' dependencies found:", " +--- 'default-aspect/index.html' (seed file)", " | \\--- 'default-aspect/src/appns/Class1.js'", " | | \\--- 'default-aspect/src/appns/Class2.js'"); @@ -95,9 +98,9 @@ public void bladeTestDependenciesCanBeShown() throws Exception { given(blade.testType("unit").file("js-test-driver/tests")).containsFileWithContents("MyTest.js", "require('appns/bs/b1/Class1')") .and(blade).hasClasses("appns/bs/b1/Class1", "appns/bs/b1/Class2") .and(blade).classRequires("appns/bs/b1/Class1", "./Class2"); - when(brjs).runCommand("bundle-deps", "../brjs-apps/app/bs-bladeset/blades/b1/test-unit/js-test-driver"); + when(brjs).runCommand("bundle-deps", "../apps/app/bs-bladeset/blades/b1/test-unit/js-test-driver"); then(logging).containsConsoleText( - "Bundle 'brjs-apps/app/bs-bladeset/blades/b1/test-unit/js-test-driver' dependencies found:", + "Bundle 'apps/app/bs-bladeset/blades/b1/test-unit/js-test-driver' dependencies found:", " +--- 'bs-bladeset/blades/b1/src/appns/bs/b1/Class1.js'", " | \\--- 'bs-bladeset/blades/b1/src/appns/bs/b1/Class2.js' (static dep.)", " +--- 'bs-bladeset/blades/b1/test-unit/js-test-driver/tests/MyTest.js' (seed file)"); @@ -107,9 +110,9 @@ public void bladeTestDependenciesCanBeShown() throws Exception { public void optionalPackageStructuresAreShownCorrectly() throws Exception { given(aspect).indexPageRequires("appns/bs/b1/Class1") .and(app.bladeset("bs").blade("b1")).hasClasses("Class1"); - when(brjs).runCommand("bundle-deps", "../brjs-apps/app/default-aspect/"); + when(brjs).runCommand("bundle-deps", "../apps/app/default-aspect/"); then(logging).containsConsoleText( - "Bundle 'brjs-apps/app/default-aspect' dependencies found:", + "Bundle 'apps/app/default-aspect' dependencies found:", " +--- 'bs-bladeset/blades/b1/src/Class1.js'", " +--- 'default-aspect/index.html' (seed file)"); } @@ -118,9 +121,9 @@ public void optionalPackageStructuresAreShownCorrectly() throws Exception { public void defaultBladesetsAreShownCorrectly() throws Exception { given(aspect).indexPageRequires("appns/b1/Class1") .and(bladeInDefaultBladeset).hasClasses("appns/b1/Class1"); - when(brjs).runCommand("bundle-deps", "../brjs-apps/app/default-aspect/"); + when(brjs).runCommand("bundle-deps", "../apps/app/default-aspect/"); then(logging).containsConsoleText( - "Bundle 'brjs-apps/app/default-aspect' dependencies found:", + "Bundle 'apps/app/default-aspect' dependencies found:", " +--- 'blades/b1/src/appns/b1/Class1.js'", " +--- 'default-aspect/index.html' (seed file)"); } @@ -129,9 +132,9 @@ public void defaultBladesetsAreShownCorrectly() throws Exception { public void defaultAspectsAreShownCorrectly() throws Exception { given(defaultAspect).indexPageRequires("appns/Class1") .and(defaultAspect).hasClasses("appns/Class1"); - when(brjs).runCommand("bundle-deps", "../brjs-apps/app"); + when(brjs).runCommand("bundle-deps", "../apps/app"); then(logging).containsConsoleText( - "Bundle 'brjs-apps/app' dependencies found:", + "Bundle 'apps/app' dependencies found:", " +--- 'index.html' (seed file)", " | \\--- 'src/appns/Class1.js'"); } diff --git a/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/command/CopyThemeCommandTest.java b/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/command/CopyThemeCommandTest.java index ba78b90ef..8cb1a8077 100644 --- a/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/command/CopyThemeCommandTest.java +++ b/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/command/CopyThemeCommandTest.java @@ -104,7 +104,7 @@ public void existingDestinationThemeDirectoryThrowsWarningWithWarning() throws E .and(blade11).containsFile("themes/red/style.css") .and(blade11).containsFolder("themes/blue"); when(brjs).runCommand("copy-theme", "app", "red", "blue"); - then(logging).warnMessageReceived(THEME_FOLDER_EXISTS, "brjs-apps/app/bladeset1-bladeset/blades/blade11/themes/blue") + then(logging).warnMessageReceived(THEME_FOLDER_EXISTS, "apps/app/bladeset1-bladeset/blades/blade11/themes/blue") .and(logging).otherMessagesIgnored(); } diff --git a/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/command/CreateAppCommandTest.java b/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/command/CreateAppCommandTest.java index 4814516a8..1e9800e4f 100644 --- a/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/command/CreateAppCommandTest.java +++ b/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/command/CreateAppCommandTest.java @@ -215,11 +215,11 @@ public void commandIsAutomaticallyLoaded() throws Exception } @Test - public void appsCanBecreatedIfCommandIsRunFromInsideAnAppWithoutBrjsApps() throws Exception { - given(testSdkDirectory).containsFolder("myprojects") - .and(testSdkDirectory).containsFolder("myprojects/myapp") - .and(testSdkDirectory).containsFileWithContents("myprojects/myapp/app.conf", "requirePrefix: myapp") - .and(brjs).hasBeenCreatedWithWorkingDir( new File(testSdkDirectory, "myprojects/myapp") ) + public void appsCanBecreatedIfCommandIsRunFromInsideAnAppWithoutApps() throws Exception { + given(testRootDirectory).containsFolder("myprojects") + .and(testRootDirectory).containsFolder("myprojects/myapp") + .and(testRootDirectory).containsFileWithContents("myprojects/myapp/app.conf", "requirePrefix: myapp") + .and(brjs).hasBeenCreatedWithWorkingDir( new File(testRootDirectory, "myprojects/myapp") ) .and(appJars).hasBeenCreated() .and(defaultTemplates).templateGroupCreated(); when(brjs).runCommand("create-app", "app", "appx"); diff --git a/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/command/ImportAppCommandTest.java b/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/command/ImportAppCommandTest.java index e629b806a..9e3031cbf 100644 --- a/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/command/ImportAppCommandTest.java +++ b/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/command/ImportAppCommandTest.java @@ -308,6 +308,9 @@ public void oldAppNameIsReplacedInABladesetlessBladeAliasesXml() throws Exceptio @Test // This test attempts to reproduce a bug we were seeing in the product - https://github.com/BladeRunnerJS/brjs/issues/1238 public void bladesetWorkbenchCanBeLoadedWithoutClassCastExceptionAfterImportInANewBRJSProcess() throws Exception { given(app).hasBeenCreated() + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(bladeset).hasBeenCreated() .and(bladesetWorkbench).containsFileWithContents("resources/css/style.css", "url('./file.png')") .and(bladesetWorkbench).containsFileWithContents("resources/file.png", "my cool image") diff --git a/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/command/J2eeifyCommandPluginTest.java b/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/command/J2eeifyCommandPluginTest.java index d4a9b9763..1c21b85a2 100644 --- a/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/command/J2eeifyCommandPluginTest.java +++ b/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/command/J2eeifyCommandPluginTest.java @@ -85,7 +85,7 @@ public void webInfIsPopulatedFromApplicationServerUtils() throws Exception { @Test public void messageIsPrintedOnSucces() throws Exception { when(brjs).runCommand("j2eeify", "app"); - then(logging).containsFormattedConsoleMessage(J2eeifyCommandPlugin.Messages.SUCCESSFULLY_J2EEIFIED_APP_MESSAGE, "app", "brjs-apps/app/WEB-INF"); + then(logging).containsFormattedConsoleMessage(J2eeifyCommandPlugin.Messages.SUCCESSFULLY_J2EEIFIED_APP_MESSAGE, "app", "apps/app/WEB-INF"); } @Test @Ignore // TODO: investigate why this only fails in Travis... diff --git a/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/plugin/bundler/cssresource/CssResourceContentPluginTest.java b/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/plugin/bundler/cssresource/CssResourceContentPluginTest.java index 03a8a18a8..88ba634ff 100644 --- a/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/plugin/bundler/cssresource/CssResourceContentPluginTest.java +++ b/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/plugin/bundler/cssresource/CssResourceContentPluginTest.java @@ -468,7 +468,7 @@ public void pathsIgnoredViaConfigAreNotServed() throws Exception { when(defaultAspect).requestReceivedInProd("cssresource/aspect_default_resource/resources/.git", response); then(aspect).prodRequestsForContentPluginsAre("cssresource", "") .and(aspect).devRequestsForContentPluginsAre("cssresource", "") - .and(exceptions).verifyException(FileNotFoundException.class, "brjs-apps/app1/resources/.git"); + .and(exceptions).verifyException(FileNotFoundException.class, "apps/app1/resources/.git"); } @Test diff --git a/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/plugin/bundler/thirdparty/ThirdpartyContentPluginTest.java b/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/plugin/bundler/thirdparty/ThirdpartyContentPluginTest.java index 003fe04aa..fa962a526 100644 --- a/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/plugin/bundler/thirdparty/ThirdpartyContentPluginTest.java +++ b/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/plugin/bundler/thirdparty/ThirdpartyContentPluginTest.java @@ -174,7 +174,7 @@ public void exceptionIsThrownIfAJSFileInTheManifestDoesntExist() throws Exceptio .and(thirdpartyLib).hasBeenCreated() .and(thirdpartyLib).containsFileWithContents("thirdparty-lib.manifest", "js: doesnt-exist.js\n"+"exports: lib"); when(aspect).requestReceivedInDev("thirdparty/thirdparty-lib/bundle.js", pageResponse); - then(exceptions).verifyException(ConfigException.class, "doesnt-exist.js", "brjs-apps/app1/libs/thirdparty-lib/thirdparty-lib.manifest"); + then(exceptions).verifyException(ConfigException.class, "doesnt-exist.js", "apps/app1/libs/thirdparty-lib/thirdparty-lib.manifest"); } @Test diff --git a/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/plugin/bundler/unbundledresources/UnbundledResourcesContentPluginTest.java b/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/plugin/bundler/unbundledresources/UnbundledResourcesContentPluginTest.java index 4dec6d407..c4e6b9f12 100644 --- a/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/plugin/bundler/unbundledresources/UnbundledResourcesContentPluginTest.java +++ b/plugins/brjs-plugins/src/test/java/org/bladerunnerjs/spec/plugin/bundler/unbundledresources/UnbundledResourcesContentPluginTest.java @@ -305,6 +305,9 @@ public void jspsCanBeUsedInUnbundledResources() throws Exception { try { given(app).hasBeenCreated() + .and(app).containsFileWithContents("app.conf", "localeCookieName: BRJS.LOCALE\n" + + "locales: en\n" + + "requirePrefix: appns") .and(appAspect).containsFileWithContents("unbundled-resources/file.jsp", "2 + 2 = <%= 2 + 2 %>") .and(brjs).hasVersion("1234") .and(brjs.applicationServer(appServerPort)).started();