Revision: 1222
Author: anodos
Date: 2006-07-12 10:57:17 -0700 (Wed, 12 Jul 2006)
ViewCVS: http://svn.sourceforge.net/spring-rich-c/?rev=1222&view=rev
Log Message:
-----------
- Fixes RCP-383, "DefaultApplicationWindow.removePageListener will always fail
with IllegalArgumentException."
- Added DefaultApplicationWindowTests, which contains only the single
regression test for RCP-383 at the moment.
- Added createApplicationLifecycleAdvisor method to SpringRichTestCase, which a
subclass can override to provide a custom ApplicationLifecycleAdvisor for its
tests. This was necessary for the new DefaultApplicationWindowTests.
Modified Paths:
--------------
trunk/spring-richclient/support/src/main/java/org/springframework/richclient/application/support/DefaultApplicationWindow.java
trunk/spring-richclient/support/src/test/java/org/springframework/richclient/test/SpringRichTestCase.java
Added Paths:
-----------
trunk/spring-richclient/support/src/test/java/org/springframework/richclient/application/support/DefaultApplicationWindowTests.java
Modified:
trunk/spring-richclient/support/src/main/java/org/springframework/richclient/application/support/DefaultApplicationWindow.java
===================================================================
---
trunk/spring-richclient/support/src/main/java/org/springframework/richclient/application/support/DefaultApplicationWindow.java
2006-07-12 12:33:39 UTC (rev 1221)
+++
trunk/spring-richclient/support/src/main/java/org/springframework/richclient/application/support/DefaultApplicationWindow.java
2006-07-12 17:57:17 UTC (rev 1222)
@@ -341,7 +341,7 @@
}
public void removePageListener(PageListener listener) {
- this.pageListeners.remove(PageListener.class);
+ this.pageListeners.remove(listener);
}
public boolean close() {
Added:
trunk/spring-richclient/support/src/test/java/org/springframework/richclient/application/support/DefaultApplicationWindowTests.java
===================================================================
---
trunk/spring-richclient/support/src/test/java/org/springframework/richclient/application/support/DefaultApplicationWindowTests.java
(rev 0)
+++
trunk/spring-richclient/support/src/test/java/org/springframework/richclient/application/support/DefaultApplicationWindowTests.java
2006-07-12 17:57:17 UTC (rev 1222)
@@ -0,0 +1,84 @@
+/*
+ * Copyright 2002-2004 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy
of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
under
+ * the License.
+ */
+package org.springframework.richclient.application.support;
+
+import static org.easymock.EasyMock.*;
+
+import org.springframework.richclient.test.SpringRichTestCase;
+import org.springframework.richclient.application.PageListener;
+import org.springframework.richclient.application.ApplicationWindow;
+import
org.springframework.richclient.application.config.ApplicationLifecycleAdvisor;
+import
org.springframework.richclient.application.config.DefaultApplicationLifecycleAdvisor;
+import
org.springframework.richclient.application.config.ApplicationWindowConfigurer;
+import org.springframework.richclient.command.CommandGroup;
+
+/**
+ * Test cases for [EMAIL PROTECTED] DefaultApplicationWindow}.
+ *
+ * @author Andy DePue
+ */
+public class DefaultApplicationWindowTests extends SpringRichTestCase {
+
+ public void testRegressionFailureToRemovePageListener() {
+ PageListener pageListener = createNiceMock(PageListener.class);
+ replay(pageListener);
+ DefaultApplicationWindow daw = new DefaultApplicationWindow();
+ daw.addPageListener(pageListener);
+
+ try {
+ daw.removePageListener(pageListener);
+ } catch(IllegalArgumentException iae) {
+ iae.printStackTrace();
+ fail("DefaultApplicationWindow.removePageListener threw
IllegalArgumentException when removing a valid pageListener: " + iae);
+ }
+ }
+
+ /**
+ * Mocks out various methods on the returned ApplicationLifecycleAdvisor
+ * as they are not needed for the current unit test(s) and will throw
+ * exceptions without further setup for the test. If more unit tests
+ * are added to this class in the future, then the returned
+ * ApplicationLifecycleAdvisor should be revisited to ensure it still
+ * meets the needs of this test case.
+ */
+ @Override
+ protected ApplicationLifecycleAdvisor createApplicationLifecycleAdvisor() {
+ return new DefaultApplicationLifecycleAdvisor() {
+ @Override
+ public void onPreWindowOpen(ApplicationWindowConfigurer
configurer) {
+ }
+
+ @Override
+ public void onCommandsCreated(ApplicationWindow window) {
+ }
+
+ @Override
+ public ApplicationWindowCommandManager
createWindowCommandManager() {
+ return null;
+ }
+
+ @Override
+ public CommandGroup getMenuBarCommandGroup() {
+ return null;
+ }
+
+ @Override
+ public CommandGroup getToolBarCommandGroup() {
+ return null;
+ }
+ };
+ }
+}
Modified:
trunk/spring-richclient/support/src/test/java/org/springframework/richclient/test/SpringRichTestCase.java
===================================================================
---
trunk/spring-richclient/support/src/test/java/org/springframework/richclient/test/SpringRichTestCase.java
2006-07-12 12:33:39 UTC (rev 1221)
+++
trunk/spring-richclient/support/src/test/java/org/springframework/richclient/test/SpringRichTestCase.java
2006-07-12 17:57:17 UTC (rev 1222)
@@ -24,6 +24,7 @@
import org.springframework.richclient.application.Application;
import org.springframework.richclient.application.ApplicationServicesLocator;
import
org.springframework.richclient.application.config.DefaultApplicationLifecycleAdvisor;
+import
org.springframework.richclient.application.config.ApplicationLifecycleAdvisor;
import
org.springframework.richclient.application.support.DefaultApplicationServices;
/**
@@ -48,7 +49,10 @@
applicationServices = new DefaultApplicationServices();
new ApplicationServicesLocator(applicationServices);
- new Application(new DefaultApplicationLifecycleAdvisor());
+ final ApplicationLifecycleAdvisor advisor =
createApplicationLifecycleAdvisor();
+ final Application application = new Application(advisor);
+ advisor.setApplication(application);
+
StaticApplicationContext applicationContext = new
StaticApplicationContext();
Application.instance().setApplicationContext(applicationContext);
applicationServices.setApplicationContext(applicationContext);
@@ -64,7 +68,18 @@
}
}
+
/**
+ * Subclasses may override this to return a custom
+ * ApplicationLifecycleAdvisor.
+ */
+ protected ApplicationLifecycleAdvisor createApplicationLifecycleAdvisor() {
+ return new DefaultApplicationLifecycleAdvisor();
+ }
+
+
+
+ /**
* Register the application services needed for our tests.
*/
protected void registerBasicServices( DefaultApplicationServices
applicationServices ) {
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
spring-rich-c-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/spring-rich-c-cvs