You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by mf...@apache.org on 2012/06/04 18:39:04 UTC
svn commit: r1346029 [1/3] - in /rave/branches/model_interfaces: ./
rave-components/rave-core/src/main/java/org/apache/rave/portal/model/
rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/
rave-components/rave-core/src/main...
Author: mfranklin
Date: Mon Jun 4 16:39:01 2012
New Revision: 1346029
URL: http://svn.apache.org/viewvc?rev=1346029&view=rev
Log:
Merged changes from trunk (RAVE-625)
Added:
rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/java/org/apache/rave/integrationtests/steps/PageOperationsSteps.java
- copied unchanged from r1346018, rave/trunk/rave-integration-tests/rave-default-account-tests/src/main/java/org/apache/rave/integrationtests/steps/PageOperationsSteps.java
rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/java/org/apache/rave/integrationtests/steps/ProfileSteps.java
- copied unchanged from r1346018, rave/trunk/rave-integration-tests/rave-default-account-tests/src/main/java/org/apache/rave/integrationtests/steps/ProfileSteps.java
Modified:
rave/branches/model_interfaces/ (props changed)
rave/branches/model_interfaces/CHANGELOG
rave/branches/model_interfaces/pom.xml
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaPerson.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageUser.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultPagePermissionEvaluator.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultRegionPermissionEvaluator.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultRegionWidgetPermissionEvaluator.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java
rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/PageController.java
rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/ProfileController.java
rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/util/ControllerUtils.java
rave/branches/model_interfaces/rave-integration-tests/pom.xml
rave/branches/model_interfaces/rave-integration-tests/rave-admin-tests/pom.xml
rave/branches/model_interfaces/rave-integration-tests/rave-admin-tests/src/main/stories/deleteNewUser.story
rave/branches/model_interfaces/rave-integration-tests/rave-core-tests/pom.xml
rave/branches/model_interfaces/rave-integration-tests/rave-core-tests/src/main/java/org/apache/rave/integrationtests/pages/Portal.java
rave/branches/model_interfaces/rave-integration-tests/rave-core-tests/src/main/resources/applicationContext-tests.xml
rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/pom.xml
rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/java/org/apache/rave/integrationtests/steps/DefaultAccountSteps.java
rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/stories/canonicalLogin.story
rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/stories/johnDoe.story
rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/stories/johnLdap.story
rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/stories/openidLogin.story
rave/branches/model_interfaces/rave-integration-tests/rave-newuser-tests/pom.xml
rave/branches/model_interfaces/rave-integration-tests/rave-newuser-tests/src/main/stories/newuser.story
rave/branches/model_interfaces/rave-portal-resources/src/main/resources/messages.properties
rave/branches/model_interfaces/rave-portal-resources/src/main/resources/messages_nl.properties
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/addwidget.jsp
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/mobile_home.jsp
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/page.jsp
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/WEB-INF/tags/region.tag
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/WEB-INF/tags/region_widget.tag
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/accordion.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/alerts.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/breadcrumbs.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/button-groups.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/buttons.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/carousel.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/close.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/code.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/component-animations.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/dropdowns.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/forms.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/grid.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/hero-unit.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/labels-badges.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/layouts.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/mixins.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/modals.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/navbar.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/navs.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/pager.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/pagination.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/popovers.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/progress-bars.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/reset.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/responsive-1200px-min.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/responsive-767px-max.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/responsive-768px-979px.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/responsive-navbar.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/responsive-utilities.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/responsive.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/scaffolding.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/sprites.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/tables.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/thumbnails.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/tooltip.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/type.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/utilities.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/variables.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/bootstrap/less/wells.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/css/rave-css.less
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/script/rave.js
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/script/rave_api.js
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/script/rave_layout.js
rave/branches/model_interfaces/rave-portal-resources/src/main/webapp/script/rave_opensocial.js
rave/branches/model_interfaces/rave-portal/src/main/dist/LICENSE
rave/branches/model_interfaces/rave-portal/src/main/dist/NOTICE
rave/branches/model_interfaces/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/service/impl/WookieWidgetService.java
Propchange: rave/branches/model_interfaces/
------------------------------------------------------------------------------
Merged /rave/trunk:r1343807-1346021
Modified: rave/branches/model_interfaces/CHANGELOG
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/CHANGELOG?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/CHANGELOG (original)
+++ rave/branches/model_interfaces/CHANGELOG Mon Jun 4 16:39:01 2012
@@ -1,6 +1,40 @@
Apache Rave Change Log
https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311290 (select the version of release and output as text to create this file)
+Release Notes - Rave - Version 0.12
+================================================================================================================
+
+** Sub-task
+ * [RAVE-539] - Widget store: fix widget detail display
+ * [RAVE-543] - Implement LESS compilation for Bootstrap
+ * [RAVE-586] - Break out the navbar
+ * [RAVE-592] - Rename header.tag to navbar.tag
+ * [RAVE-606] - Factor out "old" CSS files
+ * [RAVE-614] - Update Bootstrap JavaScript to 2.0.3
+
+** Bug
+ * [RAVE-599] - OpenSocial query for listing viewer friends returns always zero results
+ * [RAVE-600] - JavaScript Closure Compiler is failing
+ * [RAVE-623] - Logging for OpenAjax.hub methods causes error and silently fails
+
+** Improvement
+ * [RAVE-601] - Upgrade wro4j to 1.4.5 to fix Bootstrap processing errors
+ * [RAVE-602] - Improve overlap between Modernizr, CSS3 Mediaqueries, and HTMLShiv Javascript Libraries
+ * [RAVE-604] - refactor <meta> tags into their own JSP tag for easier overlaying
+ * [RAVE-605] - Add a consumer notification ability to the StaticContentFetcherService
+ * [RAVE-613] - Support registering custom popup types with the container
+
+** New Feature
+ * [RAVE-612] - Add ability to hide/display the widget title and widget border
+ * [RAVE-615] - An easy way to determine the version of RAVE
+
+** Task
+ * [RAVE-633] - Upgrade the version of wookie bundled with rave to 0.10.0
+
+** Test
+ * [RAVE-610] - Add integration tests to the project
+
+
Release Notes - Rave - Version 0.11
================================================================================================================
** Sub-task
Modified: rave/branches/model_interfaces/pom.xml
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/pom.xml?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/pom.xml (original)
+++ rave/branches/model_interfaces/pom.xml Mon Jun 4 16:39:01 2012
@@ -8,7 +8,7 @@
"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
+ 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
@@ -16,9 +16,7 @@
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-
- $Id$
--->
+ -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -45,7 +43,7 @@
<properties>
<apache.shindig.version>2.5.0-beta1</apache.shindig.version>
- <apache.wookie.version>0.9.2-incubating</apache.wookie.version>
+ <apache.wookie.version>0.10.0-incubating</apache.wookie.version>
<org.springframework.version>3.1.0.RELEASE</org.springframework.version>
<org.springframework.mobile.version>1.0.0.M3</org.springframework.mobile.version>
<jstl.version>1.2</jstl.version>
@@ -570,7 +568,7 @@
</goals>
</pluginExecutionFilter>
<action>
- <execute/>
+ <execute />
</action>
</pluginExecution>
<pluginExecution>
@@ -583,7 +581,7 @@
</goals>
</pluginExecutionFilter>
<action>
- <execute/>
+ <execute />
</action>
</pluginExecution>
<pluginExecution>
@@ -596,7 +594,7 @@
</goals>
</pluginExecutionFilter>
<action>
- <execute/>
+ <execute />
</action>
</pluginExecution>
<pluginExecution>
@@ -610,7 +608,7 @@
</goals>
</pluginExecutionFilter>
<action>
- <execute/>
+ <execute />
</action>
</pluginExecution>
</pluginExecutions>
@@ -664,6 +662,7 @@
<module>rave-portal-dependencies</module>
<module>rave-demo-gadgets</module>
<module>rave-portal</module>
+ <module>rave-integration-tests</module>
</modules>
<profiles>
<profile>
@@ -716,15 +715,6 @@
</plugin>
</plugins>
</build>
- <modules>
- <module>rave-components</module>
- <module>rave-providers</module>
- <module>rave-portal-resources</module>
- <module>rave-portal-dependencies</module>
- <module>rave-demo-gadgets</module>
- <module>rave-portal</module>
- <module>rave-integration-tests</module>
- </modules>
</profile>
</profiles>
</project>
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaPerson.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaPerson.java?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaPerson.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaPerson.java Mon Jun 4 16:39:01 2012
@@ -33,7 +33,7 @@ import java.util.List;
@Access(AccessType.FIELD)
@NamedQueries(value = {
@NamedQuery(name = JpaPerson.FIND_BY_USERNAME, query = "select p from JpaPerson p where p.username like :username"),
- @NamedQuery(name = JpaPerson.FIND_FRIENDS_BY_USERNAME, query = "select a.followed from PersonAssociation a where a.follower.username = :username"),
+ @NamedQuery(name = JpaPerson.FIND_FRIENDS_BY_USERNAME, query = "select a.followed from JpaPersonAssociation a where a.follower.username = :username"),
@NamedQuery(name = JpaPerson.FIND_BY_GROUP_MEMBERSHIP, query = "select m from JpaGroup g join g.members m where exists " +
"(select 'found' from g.members b where b.username = :username) and m.username <> :username")
})
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageUser.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageUser.java?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageUser.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageUser.java Mon Jun 4 16:39:01 2012
@@ -55,6 +55,7 @@ public class PageUser implements BasicEn
@JoinColumn(name = "page_id", nullable=false)
private Page page;
+ @Basic(optional=false) @Column(name="editor")
private boolean editor;
@Basic(optional=false) @Column(name="render_sequence")
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java Mon Jun 4 16:39:01 2012
@@ -95,6 +95,7 @@ public class JpaPageRepository extends A
p.setOwner(user);
PageUser pageUser = new PageUser(p.getOwner(), p, pt.getRenderSequence());
pageUser.setPageStatus(PageInvitationStatus.OWNER);
+ pageUser.setEditor(true);
List<PageUser> members = new ArrayList<PageUser>();
members.add(pageUser);
p.setMembers(members);
@@ -170,6 +171,7 @@ public class JpaPageRepository extends A
// create new pageUser tuple
PageUser pageUser = new PageUser(lPage.getOwner(), lPage, pt.getRenderSequence());
pageUser.setPageStatus(PageInvitationStatus.OWNER);
+ pageUser.setEditor(true);
List<PageUser> members = new ArrayList<PageUser>();
members.add(pageUser);
lPage.setMembers(members);
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultPagePermissionEvaluator.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultPagePermissionEvaluator.java?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultPagePermissionEvaluator.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultPagePermissionEvaluator.java Mon Jun 4 16:39:01 2012
@@ -118,11 +118,12 @@ public class DefaultPagePermissionEvalua
case UPDATE:
// anyone can create, delete, or update a page that they own
hasPermission = isPageOwner(authentication, page, trustedPageContainer, trustedDomainObject)
- || isPageMember(authentication, page, trustedPageContainer, trustedDomainObject);
+ || isPageMember(authentication, page, trustedPageContainer, trustedDomainObject, true);
break;
case READ:
// anyone can read a USER page they own or anyone's PERSON_PROFILE page
- hasPermission = isReadablePage(authentication, page, trustedPageContainer, trustedDomainObject);
+ hasPermission = isReadablePage(authentication, page, trustedPageContainer, trustedDomainObject)
+ || isPageMember(authentication, page, trustedPageContainer, trustedDomainObject, false);
break;
default:
log.warn("unknown permission: " + permission);
@@ -187,7 +188,7 @@ public class DefaultPagePermissionEvalua
private boolean isReadablePage(Authentication authentication, Page page, List<Page> trustedPageContainer, boolean trustedDomainObject) {
return isPersonProfilePageOrSubPage(page) ||
isPageOwner(authentication, page, trustedPageContainer, trustedDomainObject) ||
- isPageMember(authentication, page, trustedPageContainer, trustedDomainObject);
+ isPageMember(authentication, page, trustedPageContainer, trustedDomainObject, false);
}
private boolean isPersonProfilePageOrSubPage(Page page) {
@@ -199,7 +200,7 @@ public class DefaultPagePermissionEvalua
// checks to see if the Authentication object principal is a member of the supplied page object
// if trustedDomainObject is false, pull the entity from the database first to ensure
// the model object is trusted and hasn't been modified
- private boolean isPageMember(Authentication authentication, Page page, List<Page> trustedPageContainer, boolean trustedDomainObject) {
+ private boolean isPageMember(Authentication authentication, Page page, List<Page> trustedPageContainer, boolean trustedDomainObject, boolean checkEditorStatus) {
Page trustedPage = null;
if (trustedDomainObject) {
trustedPage = page;
@@ -219,6 +220,10 @@ public class DefaultPagePermissionEvalua
for (PageUser pageUser:trustedPage.getMembers()){
if (pageUser.getUser().getUsername().equals(viewer)){
log.info("User "+viewer+" is a member of page "+trustedPage.getEntityId());
+ if(checkEditorStatus){
+ log.info("checking editor:"+trustedPage.getEntityId()+"@"+viewer+"@"+pageUser.isEditor());
+ return pageUser.isEditor();
+ }
return true;
}
}
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultRegionPermissionEvaluator.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultRegionPermissionEvaluator.java?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultRegionPermissionEvaluator.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultRegionPermissionEvaluator.java Mon Jun 4 16:39:01 2012
@@ -18,7 +18,10 @@
*/
package org.apache.rave.portal.security.impl;
+import org.apache.rave.portal.model.Page;
+import org.apache.rave.portal.model.PageUser;
import org.apache.rave.portal.model.Region;
+import org.apache.rave.portal.model.RegionWidget;
import org.apache.rave.portal.model.User;
import org.apache.rave.portal.repository.RegionRepository;
import org.slf4j.Logger;
@@ -109,11 +112,14 @@ public class DefaultRegionPermissionEval
break;
case CREATE:
case DELETE:
- case READ:
case UPDATE:
// anyone can create, delete, read, or update a region that they own
- hasPermission = isRegionOwner(authentication, region, trustedRegionContainer, trustedDomainObject);
+ hasPermission = isRegionOwner(authentication, region, trustedRegionContainer, trustedDomainObject)
+ || isRegionMember(authentication, region, trustedRegionContainer, trustedDomainObject, true);
break;
+ case READ:
+ hasPermission = isRegionOwner(authentication, region, trustedRegionContainer, trustedDomainObject)
+ || isRegionMember(authentication, region, trustedRegionContainer, trustedDomainObject, false);
default:
log.warn("unknown permission: " + permission);
break;
@@ -171,4 +177,35 @@ public class DefaultRegionPermissionEval
throw new IllegalArgumentException("unknown RaveSecurityContext type: " + raveSecurityContext.getType());
}
}
+
+ private boolean isRegionMember(Authentication authentication, Region region, List<Region> trustedRegionContainer, boolean trustedDomainObject, boolean checkEditorStatus) {
+ Region trustedRegion = null;
+ if (trustedDomainObject) {
+ trustedRegion = region;
+ } else {
+ trustedRegion = getTrustedRegion(region.getEntityId(), trustedRegionContainer);
+ }
+
+ Page containerPage = trustedRegion.getPage();
+
+
+ if (containerPage.getMembers() == null){
+ return false;
+ }
+ //
+ // Check that the viewer is a member
+ //
+ String viewer = ((User)authentication.getPrincipal()).getUsername();
+ for (PageUser pageUser:containerPage.getMembers()){
+ if (pageUser.getUser().getUsername().equals(viewer)){
+ log.info("User "+viewer+" is a member of page "+containerPage.getEntityId());
+ if(checkEditorStatus){
+ return pageUser.isEditor();
+ }
+ return true;
+ }
+ }
+ return false;
+ }
+
}
\ No newline at end of file
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultRegionWidgetPermissionEvaluator.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultRegionWidgetPermissionEvaluator.java?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultRegionWidgetPermissionEvaluator.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultRegionWidgetPermissionEvaluator.java Mon Jun 4 16:39:01 2012
@@ -18,6 +18,8 @@
*/
package org.apache.rave.portal.security.impl;
+import org.apache.rave.portal.model.Page;
+import org.apache.rave.portal.model.PageUser;
import org.apache.rave.portal.model.RegionWidget;
import org.apache.rave.portal.model.User;
import org.apache.rave.portal.repository.RegionWidgetRepository;
@@ -109,11 +111,14 @@ public class DefaultRegionWidgetPermissi
break;
case CREATE:
case DELETE:
- case READ:
case UPDATE:
// anyone can create, delete, read, or update a regionWidget that they own
- hasPermission = isRegionWidgetOwner(authentication, regionWidget, trustedRegionWidgetContainer, trustedDomainObject);
+ hasPermission = isRegionWidgetOwner(authentication, regionWidget, trustedRegionWidgetContainer, trustedDomainObject)
+ || isRegionWidgetMember(authentication, regionWidget, trustedRegionWidgetContainer, trustedDomainObject, true);
break;
+ case READ:
+ hasPermission = isRegionWidgetOwner(authentication, regionWidget, trustedRegionWidgetContainer, trustedDomainObject)
+ || isRegionWidgetMember(authentication, regionWidget, trustedRegionWidgetContainer, trustedDomainObject, false);
default:
log.warn("unknown permission: " + permission);
break;
@@ -175,4 +180,35 @@ public class DefaultRegionWidgetPermissi
private String getUsernameFromRegionWidget(RegionWidget regionWidget) {
return regionWidget.getRegion().getPage().getOwner().getUsername();
}
+
+ private boolean isRegionWidgetMember(Authentication authentication,
+ RegionWidget regionWidget, List<RegionWidget> trustedRegionWidgetContainer, boolean trustedDomainObject, boolean checkEditorStatus) {
+ RegionWidget trustedRegionWidget = null;
+ if (trustedDomainObject) {
+ trustedRegionWidget = regionWidget;
+ } else {
+ trustedRegionWidget = getTrustedRegionWidget(regionWidget.getEntityId(), trustedRegionWidgetContainer);
+ }
+
+ Page containerPage = trustedRegionWidget.getRegion().getPage();
+
+
+ if (containerPage.getMembers() == null){
+ return false;
+ }
+ //
+ // Check that the viewer is a member
+ //
+ String viewer = ((User)authentication.getPrincipal()).getUsername();
+ for (PageUser pageUser:containerPage.getMembers()){
+ if (pageUser.getUser().getUsername().equals(viewer)){
+ log.info("User "+viewer+" is a member of page "+containerPage.getEntityId());
+ if(checkEditorStatus){
+ return pageUser.isEditor();
+ }
+ return true;
+ }
+ }
+ return false;
+ }
}
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java Mon Jun 4 16:39:01 2012
@@ -190,8 +190,8 @@ public interface PageService {
* -1 if you want this to be the first page
* @return the updated Page object containing its new render sequence
*/
- @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.portal.model.Page', 'update') and " +
- "hasPermission(#moveAfterPageId, 'org.apache.rave.portal.model.Page', 'update')")
+ @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.portal.model.Page', 'read') and " +
+ "hasPermission(#moveAfterPageId, 'org.apache.rave.portal.model.Page', 'read')")
Page movePage(long pageId, long moveAfterPageId);
/**
@@ -200,7 +200,7 @@ public interface PageService {
* @param pageId the pageId of the page to move to the default position
* @return the updated Page object containing its new render sequence
*/
- @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.portal.model.Page', 'update')")
+ @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.portal.model.Page', 'read')")
Page movePageToDefault(long pageId);
/**
@@ -217,8 +217,10 @@ public interface PageService {
* @param pageId - the id of the page in question
* @param userId - the userid to add
* @return - whether the user was successfully removed or not
+ * Note: this is read access because a page shared to a non page owner means they have 'read' access
+ * unless they are set as an 'editor' of the page, which means 'update' access.
*/
- @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.portal.model.Page', 'update')")
+ @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.portal.model.Page', 'read')")
Boolean removeMemberFromPage(long pageId, long userId);
/**
@@ -227,6 +229,18 @@ public interface PageService {
* @param shareStatus - a string value defined in PageStatus
* @return
*/
- @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.portal.model.Page', 'update')")
+ @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.portal.model.Page', 'read')")
Boolean updateSharedPageStatus(long pageId, String shareStatus);
+
+ /**
+ * Update a user who has shared access to a given page, so that they can edit the page (true)
+ * or can only view it (false)
+ * @param pageId - the id of the page in question
+ * @param userId - the userId of the user to assign the permission to
+ * @param isEditor - value to denote if the user can edit or not
+ * @return
+ */
+ @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.portal.model.Page', 'update')")
+ Boolean updatePageEditingStatus(long pageId, long userId, boolean isEditor);
+
}
\ No newline at end of file
Modified: rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java Mon Jun 4 16:39:01 2012
@@ -357,6 +357,22 @@ public class DefaultPageService implemen
}
}
+ @Override
+ @Transactional
+ public Boolean updatePageEditingStatus(long pageId, long userId, boolean isEditor) {
+ Page page = this.getPage(pageId);
+ for(PageUser pageUser : page.getMembers()){
+ if(pageUser.getUser().equals(userService.getUserById(userId))){
+ pageUser.setEditor(isEditor);
+ }
+ }
+ if(pageRepository.save(page) != null){
+ return Boolean.TRUE;
+ }else{
+ return Boolean.FALSE;
+ }
+ }
+
/**
* Utility function to determine if a Page layout adjustment is needed
* which comparing the existing and new PageLayout objects
@@ -500,6 +516,7 @@ public class DefaultPageService implemen
page.setPageLayout(pageLayout);
PageUser pageUser = new PageUser(page.getOwner(), page, renderSequence);
pageUser.setPageStatus(PageInvitationStatus.OWNER);
+ pageUser.setEditor(true);
List<PageUser> members = new ArrayList<PageUser>();
members.add(pageUser);
Modified: rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java Mon Jun 4 16:39:01 2012
@@ -249,4 +249,15 @@ public class PageApi {
}
}.getResult();
}
+
+ @ResponseBody
+ @RequestMapping(value = "{pageId}/editstatus", method = RequestMethod.POST)
+ public RpcResult<Boolean> updatePageEditingStatus(@PathVariable final long pageId, @RequestParam final long userId, @RequestParam final boolean isEditor) {
+ return new RpcOperation<Boolean>() {
+ @Override
+ public Boolean execute() {
+ return pageService.updatePageEditingStatus(pageId, userId, isEditor);
+ }
+ }.getResult();
+ }
}
\ No newline at end of file
Modified: rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/PageController.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/PageController.java?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/PageController.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/PageController.java Mon Jun 4 16:39:01 2012
@@ -84,7 +84,7 @@ public class PageController {
List<PageLayout> pageLayouts = pageLayoutService.getAllUserSelectable();
addAttributesToModel(model, page, currentPageUser, pages, pageLayouts);
String view = ControllerUtils.getDeviceAppropriateView(request, ViewNames.getPageView(page.getPageLayout().getCode()), ViewNames.MOBILE_HOME);
- ControllerUtils.addNavItemsToModel(view, model, page.getEntityId(), userService.getAuthenticatedUser());
+ ControllerUtils.addNavItemsToModel(view, model, page.getEntityId(), userService.getAuthenticatedUser(), currentPageUser.isEditor());
return view;
}
@@ -103,7 +103,7 @@ public class PageController {
List<PageLayout> pageLayouts = pageLayoutService.getAllUserSelectable();
addAttributesToModel(model, page, currentPageUser, pages, pageLayouts);
String view = ControllerUtils.getDeviceAppropriateView(request, ViewNames.getPageView(page.getPageLayout().getCode()), ViewNames.MOBILE_HOME);
- ControllerUtils.addNavItemsToModel(view, model, page.getEntityId(), thisUser);
+ ControllerUtils.addNavItemsToModel(view, model, page.getEntityId(), thisUser, currentPageUser.isEditor());
return view;
} catch (Exception e) {
logger.info("unable to get page - possibly because a shared page was revoked by its owner");
Modified: rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/ProfileController.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/ProfileController.java?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/ProfileController.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/ProfileController.java Mon Jun 4 16:39:01 2012
@@ -114,7 +114,7 @@ public class ProfileController {
public static void addNavItemsToModel(String view, ModelMap model, Long referringPageId, User user) {
long refPageId = referringPageId != null ? referringPageId : 0;
- final NavigationMenu topMenu = ControllerUtils.getTopMenu(view, refPageId, user);
+ final NavigationMenu topMenu = ControllerUtils.getTopMenu(view, refPageId, user, false);
model.addAttribute(topMenu.getName(), topMenu);
}
}
Modified: rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/util/ControllerUtils.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/util/ControllerUtils.java?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/util/ControllerUtils.java (original)
+++ rave/branches/model_interfaces/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/util/ControllerUtils.java Mon Jun 4 16:39:01 2012
@@ -61,19 +61,25 @@ public class ControllerUtils {
}
public static void addNavItemsToModel(String view, Model model, long referringPageId, User user) {
- final NavigationMenu topMenu = getTopMenu(view, referringPageId, user);
+ final NavigationMenu topMenu = getTopMenu(view, referringPageId, user, true);
model.addAttribute(topMenu.getName(), topMenu);
}
- public static NavigationMenu getTopMenu(String view, long referringPageId, User user) {
+ public static void addNavItemsToModel(String view, Model model, long referringPageId, User user, boolean addStore) {
+ final NavigationMenu topMenu = getTopMenu(view, referringPageId, user, addStore);
+ model.addAttribute(topMenu.getName(), topMenu);
+ }
+
+ public static NavigationMenu getTopMenu(String view, long referringPageId, User user, boolean addStoreLink) {
NavigationMenu menu = new NavigationMenu("topnav");
-
- if(view.startsWith(ViewNames.PAGE)) {
+ if(view.startsWith(ViewNames.PAGE) || view.startsWith(ViewNames.MOBILE_HOME)) {
NavigationItem profile = new NavigationItem("page.profile.title", user.getDisplayName() != null ? user.getDisplayName() : user.getUsername(), "/app/person/" + user.getUsername() + "?referringPageId=" + referringPageId);
menu.addNavigationItem(profile);
- NavigationItem store = new NavigationItem("page.store.title", null, "/app/store?referringPageId=" + referringPageId);
- menu.addNavigationItem(store);
+ if(addStoreLink){
+ NavigationItem store = new NavigationItem("page.store.title", null, "/app/store?referringPageId=" + referringPageId);
+ menu.addNavigationItem(store);
+ }
NavigationItem admin = getAdminItem();
menu.addNavigationItem(admin);
Modified: rave/branches/model_interfaces/rave-integration-tests/pom.xml
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-integration-tests/pom.xml?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-integration-tests/pom.xml (original)
+++ rave/branches/model_interfaces/rave-integration-tests/pom.xml Mon Jun 4 16:39:01 2012
@@ -18,8 +18,7 @@
under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
@@ -34,16 +33,17 @@
<packaging>pom</packaging>
<name>Apache Rave :: rave-integration-tests</name>
- <description>JBehave stories verifying functionality of Apache Rave using Java and Spring</description>
+ <description>Test stories verifying functionality of Apache Rave using Java and Spring</description>
<properties>
<jbehave.core.version>3.6.1</jbehave.core.version>
<jbehave.web.version>3.5.1</jbehave.web.version>
<jbehave.site.version>3.1.1</jbehave.site.version>
<org.hamcrest.version>1.2.1</org.hamcrest.version>
+ <commons-logging.version>1.1.1</commons-logging.version>
<!-- New Selenium versions are often needed after an upgrade of Mozilla Firefox -->
- <selenium.version>[2.20.0, 2.99)</selenium.version>
- <meta.filter/>
+ <selenium.version>[2.20.0, 2.22)</selenium.version>
+ <meta.filter />
<!-- Cargo configuration properties -->
<cargo.version>1.2.1</cargo.version>
@@ -53,7 +53,7 @@
<!-- if you want to start remote debugging session suspended
override on command line with -Dcargo.debug.suspend=y -->
<cargo.debug.suspend>n</cargo.debug.suspend>
- <cargo.args/>
+ <cargo.args />
</properties>
<dependencyManagement>
@@ -73,7 +73,12 @@
<artifactId>hamcrest-integration</artifactId>
<version>${org.hamcrest.version}</version>
</dependency>
-
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>${commons-logging.version}</version>
+ <scope>compile</scope>
+ </dependency>
</dependencies>
</dependencyManagement>
@@ -164,7 +169,6 @@
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
- <version>1.1.1</version>
<scope>compile</scope>
</dependency>
</dependencies>
@@ -181,129 +185,171 @@
<target>1.6</target>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.jbehave</groupId>
+ <artifactId>jbehave-maven-plugin</artifactId>
+ <version>${jbehave.core.version}</version>
+ <executions>
+ <execution>
+ <id>unpack-view-resources</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>unpack-view-resources</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>embeddable-stories</id>
+ <phase>integration-test</phase>
+ <configuration>
+ <includes>
+ <include>**/*Stories.java</include>
+ </includes>
+ <excludes />
+ <generateViewAfterStories>true</generateViewAfterStories>
+ <ignoreFailureInStories>true</ignoreFailureInStories>
+ <ignoreFailureInView>true</ignoreFailureInView>
+ <metaFilters>
+ <metaFilter>${meta.filter}</metaFilter>
+ </metaFilters>
+ </configuration>
+ <goals>
+ <goal>run-stories-as-embeddables</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</pluginManagement>
- <plugins>
- <plugin>
- <artifactId>maven-antrun-plugin</artifactId>
- <version>1.7</version>
- <executions>
- <execution>
- <phase>initialize</phase>
- <goals>
- <goal>run</goal>
- </goals>
+ </build>
+ <profiles>
+ <profile>
+ <id>integration-tests</id>
+ <build>
+ <defaultGoal>integration-test</defaultGoal>
+ <plugins>
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>1.7</version>
+ <executions>
+ <execution>
+ <phase>initialize</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <target>
+ <delete>
+ <fileset dir="/tmp" includes="rave_db*" />
+ </delete>
+ </target>
+ </configuration>
+ <inherited>false</inherited>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.cargo</groupId>
+ <artifactId>cargo-maven2-plugin</artifactId>
+ <version>${cargo.version}</version>
+ <executions>
+ <execution>
+ <id>start-container</id>
+ <phase>pre-integration-test</phase>
+ <goals>
+ <goal>start</goal>
+ </goals>
+ <inherited>false</inherited>
+ </execution>
+ </executions>
<configuration>
- <target>
- <delete>
- <fileset dir="/tmp" includes="rave_db*"/>
- </delete>
- </target>
- </configuration>
- <inherited>false</inherited>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.cargo</groupId>
- <artifactId>cargo-maven2-plugin</artifactId>
- <version>${cargo.version}</version>
- <executions>
- <execution>
- <id>start-container</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>start</goal>
- </goals>
- <inherited>false</inherited>
- </execution>
- </executions>
- <configuration>
- <configuration>
- <properties>
- <cargo.jvmargs>
- <![CDATA[-Dh2.bindAddress="localhost" -Xdebug -XX:MaxPermSize=256m -Xrunjdwp:transport=dt_socket,address=${cargo.debug.address},server=y,suspend=${cargo.debug.suspend} -noverify ${javaagent} ${cargo.args}]]>
- </cargo.jvmargs>
- <cargo.tomcat.context.reloadable>true</cargo.tomcat.context.reloadable>
- </properties>
- <home>${project.build.directory}/tomcat6x</home>
- <deployables>
- <deployable>
- <groupId>org.apache.wookie</groupId>
- <artifactId>wookie</artifactId>
- <type>war</type>
+ <configuration>
<properties>
- <context>/wookie</context>
+ <cargo.jvmargs>
+ <![CDATA[-Dh2.bindAddress="localhost" -Xdebug -XX:MaxPermSize=256m -Xrunjdwp:transport=dt_socket,address=${cargo.debug.address},server=y,suspend=${cargo.debug.suspend} -noverify ${javaagent} ${cargo.args}]]>
+ </cargo.jvmargs>
+ <cargo.tomcat.context.reloadable>true</cargo.tomcat.context.reloadable>
</properties>
- </deployable>
- <deployable>
- <groupId>org.apache.rave</groupId>
- <artifactId>rave-shindig</artifactId>
- <type>war</type>
- <properties>
- <context>/ROOT</context>
- </properties>
- </deployable>
- <deployable>
- <groupId>org.apache.rave</groupId>
- <artifactId>rave-demo-gadgets</artifactId>
- <type>war</type>
- <properties>
- <context>/demogadgets</context>
- </properties>
- </deployable>
- <deployable>
- <groupId>org.apache.rave</groupId>
- <artifactId>rave-portal</artifactId>
- <type>war</type>
- <properties>
- <context>/portal</context>
- </properties>
- </deployable>
- </deployables>
- <configfiles>
- <configfile>
- <file>${project.basedir}/../rave-portal-resources/src/main/dist/conf/tomcat-users.xml
- </file>
- <todir>conf/</todir>
- <tofile>tomcat-users.xml</tofile>
- </configfile>
- </configfiles>
- </configuration>
- <container>
- <containerId>tomcat6x</containerId>
- <timeout>180000</timeout>
- <zipUrlInstaller>
- <downloadDir>${settings.localRepository}/org/codehaus/cargo/cargo-container-archives
- </downloadDir>
- <url>
- http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.35/bin/apache-tomcat-6.0.35.tar.gz
- </url>
- </zipUrlInstaller>
- <systemProperties>
- <net.sf.ehcache.skipUpdateCheck>true</net.sf.ehcache.skipUpdateCheck>
- </systemProperties>
- <dependencies>
- <dependency>
- <groupId>javax.mail</groupId>
- <artifactId>mail</artifactId>
- <classpath>shared</classpath>
- </dependency>
- <dependency>
- <groupId>javax.activation</groupId>
- <artifactId>activation</artifactId>
- <classpath>shared</classpath>
- </dependency>
- </dependencies>
- </container>
- </configuration>
- </plugin>
- </plugins>
- </build>
+ <home>${project.build.directory}/tomcat6x</home>
+ <deployables>
+ <deployable>
+ <groupId>org.apache.wookie</groupId>
+ <artifactId>wookie</artifactId>
+ <type>war</type>
+ <properties>
+ <context>/wookie</context>
+ </properties>
+ </deployable>
+ <deployable>
+ <groupId>org.apache.rave</groupId>
+ <artifactId>rave-shindig</artifactId>
+ <type>war</type>
+ <properties>
+ <context>/ROOT</context>
+ </properties>
+ </deployable>
+ <deployable>
+ <groupId>org.apache.rave</groupId>
+ <artifactId>rave-demo-gadgets</artifactId>
+ <type>war</type>
+ <properties>
+ <context>/demogadgets</context>
+ </properties>
+ </deployable>
+ <deployable>
+ <groupId>org.apache.rave</groupId>
+ <artifactId>rave-portal</artifactId>
+ <type>war</type>
+ <properties>
+ <context>/portal</context>
+ </properties>
+ </deployable>
+ </deployables>
+ <configfiles>
+ <configfile>
+ <file>
+ ${project.basedir}/../rave-portal-resources/src/main/dist/conf/tomcat-users.xml
+ </file>
+ <todir>conf/</todir>
+ <tofile>tomcat-users.xml</tofile>
+ </configfile>
+ </configfiles>
+ </configuration>
+ <container>
+ <containerId>tomcat6x</containerId>
+ <timeout>180000</timeout>
+ <zipUrlInstaller>
+ <downloadDir>${settings.localRepository}/org/codehaus/cargo/cargo-container-archives
+ </downloadDir>
+ <url>
+ http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.35/bin/apache-tomcat-6.0.35.tar.gz
+ </url>
+ </zipUrlInstaller>
+ <systemProperties>
+ <net.sf.ehcache.skipUpdateCheck>true</net.sf.ehcache.skipUpdateCheck>
+ </systemProperties>
+ <dependencies>
+ <dependency>
+ <groupId>javax.mail</groupId>
+ <artifactId>mail</artifactId>
+ <classpath>shared</classpath>
+ </dependency>
+ <dependency>
+ <groupId>javax.activation</groupId>
+ <artifactId>activation</artifactId>
+ <classpath>shared</classpath>
+ </dependency>
+ </dependencies>
+ </container>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
<modules>
<module>rave-core-tests</module>
<module>rave-newuser-tests</module>
<module>rave-admin-tests</module>
<module>rave-default-account-tests</module>
</modules>
-</project>
+</project>
\ No newline at end of file
Modified: rave/branches/model_interfaces/rave-integration-tests/rave-admin-tests/pom.xml
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-integration-tests/rave-admin-tests/pom.xml?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-integration-tests/rave-admin-tests/pom.xml (original)
+++ rave/branches/model_interfaces/rave-integration-tests/rave-admin-tests/pom.xml Mon Jun 4 16:39:01 2012
@@ -18,73 +18,52 @@
under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.apache.rave.integration-tests</groupId>
- <artifactId>rave-admin-tests</artifactId>
- <name>Apache Rave :: rave-admin-tests</name>
- <description>Integration tests for administrative functions</description>
-
- <parent>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
<groupId>org.apache.rave.integration-tests</groupId>
- <artifactId>rave-integration-tests</artifactId>
- <version>0.12-model_interfaces-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
+ <artifactId>rave-admin-tests</artifactId>
+ <name>Apache Rave :: rave-admin-tests</name>
+ <description>Integration tests for administrative functions</description>
+
+ <parent>
+ <groupId>org.apache.rave.integration-tests</groupId>
+ <artifactId>rave-integration-tests</artifactId>
+ <version>0.12-model_interfaces-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
- <dependencies>
- <!-- This is the core tests jar that we just made in a previous module -->
- <dependency>
- <groupId>org.apache.rave.integration-tests</groupId>
- <artifactId>rave-core-tests</artifactId>
- <version>${project.version}</version>
- </dependency>
- </dependencies>
+ <dependencies>
+ <!-- This is the core tests jar that we just made in a previous module -->
+ <dependency>
+ <groupId>org.apache.rave.integration-tests</groupId>
+ <artifactId>rave-core-tests</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
- <build>
- <resources>
- <resource>
- <directory>${basedir}/src/main/resources</directory>
- </resource>
- <resource>
- <directory>${basedir}/src/main/stories</directory>
- </resource>
- </resources>
- <plugins>
- <plugin>
- <groupId>org.jbehave</groupId>
- <artifactId>jbehave-maven-plugin</artifactId>
- <version>${jbehave.core.version}</version>
- <executions>
- <execution>
- <id>unpack-view-resources</id>
- <phase>process-resources</phase>
- <goals>
- <goal>unpack-view-resources</goal>
- </goals>
- </execution>
- <execution>
- <id>embeddable-stories</id>
- <phase>integration-test</phase>
- <configuration>
- <includes>
- <include>**/*Stories.java</include>
- </includes>
- <excludes/>
- <generateViewAfterStories>true</generateViewAfterStories>
- <ignoreFailureInStories>true</ignoreFailureInStories>
- <ignoreFailureInView>true</ignoreFailureInView>
- <metaFilters>
- <metaFilter>${meta.filter}</metaFilter>
- </metaFilters>
- </configuration>
- <goals>
- <goal>run-stories-as-embeddables</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-</project>
+ <build>
+ <resources>
+ <resource>
+ <directory>${basedir}/src/main/resources</directory>
+ </resource>
+ <resource>
+ <directory>${basedir}/src/main/stories</directory>
+ </resource>
+ </resources>
+ </build>
+ <profiles>
+ <profile>
+ <id>integration-tests</id>
+ <build>
+ <defaultGoal>integration-test</defaultGoal>
+ <plugins>
+ <plugin>
+ <groupId>org.jbehave</groupId>
+ <artifactId>jbehave-maven-plugin</artifactId>
+ <version>${jbehave.core.version}</version>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
\ No newline at end of file
Modified: rave/branches/model_interfaces/rave-integration-tests/rave-admin-tests/src/main/stories/deleteNewUser.story
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-integration-tests/rave-admin-tests/src/main/stories/deleteNewUser.story?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-integration-tests/rave-admin-tests/src/main/stories/deleteNewUser.story (original)
+++ rave/branches/model_interfaces/rave-integration-tests/rave-admin-tests/src/main/stories/deleteNewUser.story Mon Jun 4 16:39:01 2012
@@ -1,3 +1,22 @@
+!--
+!-- Licensed to the Apache Software Foundation (ASF) under one
+!-- or more contributor license agreements. See the NOTICE file
+!-- distributed with this work for additional information
+!-- regarding copyright ownership. The ASF licenses this file
+!-- to you 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.
+!--
+
Meta:
Narrative:
Modified: rave/branches/model_interfaces/rave-integration-tests/rave-core-tests/pom.xml
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-integration-tests/rave-core-tests/pom.xml?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-integration-tests/rave-core-tests/pom.xml (original)
+++ rave/branches/model_interfaces/rave-integration-tests/rave-core-tests/pom.xml Mon Jun 4 16:39:01 2012
@@ -18,8 +18,7 @@
under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.rave.integration-tests</groupId>
<artifactId>rave-core-tests</artifactId>
Modified: rave/branches/model_interfaces/rave-integration-tests/rave-core-tests/src/main/java/org/apache/rave/integrationtests/pages/Portal.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-integration-tests/rave-core-tests/src/main/java/org/apache/rave/integrationtests/pages/Portal.java?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-integration-tests/rave-core-tests/src/main/java/org/apache/rave/integrationtests/pages/Portal.java (original)
+++ rave/branches/model_interfaces/rave-integration-tests/rave-core-tests/src/main/java/org/apache/rave/integrationtests/pages/Portal.java Mon Jun 4 16:39:01 2012
@@ -32,7 +32,7 @@ import org.springframework.stereotype.Co
*/
@Component
public class Portal extends WebDriverPage {
- private final static int SLEEP_TIME = 1666; //ms
+ private final static int SLEEP_TIME = 3333; //ms
private final static int MAX_ATTEMPTS = 3;
@Autowired
Modified: rave/branches/model_interfaces/rave-integration-tests/rave-core-tests/src/main/resources/applicationContext-tests.xml
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-integration-tests/rave-core-tests/src/main/resources/applicationContext-tests.xml?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-integration-tests/rave-core-tests/src/main/resources/applicationContext-tests.xml (original)
+++ rave/branches/model_interfaces/rave-integration-tests/rave-core-tests/src/main/resources/applicationContext-tests.xml Mon Jun 4 16:39:01 2012
@@ -22,16 +22,16 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+ http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.1.xsd">
+ http://www.springframework.org/schema/context/spring-context.xsd">
<context:annotation-config/>
<context:component-scan base-package="org.apache.rave.integrationtests"/>
- <bean id="driverProvider" class="org.jbehave.web.selenium.FirefoxWebDriverProvider"/>
+ <bean id="driverProvider" class="org.jbehave.web.selenium.DefaultWebDriverProvider"/>
<bean id="lifecycleSteps" class="org.apache.rave.integrationtests.steps.LifecycleSteps">
<constructor-arg ref="driverProvider"/>
Modified: rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/pom.xml
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/pom.xml?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/pom.xml (original)
+++ rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/pom.xml Mon Jun 4 16:39:01 2012
@@ -18,73 +18,52 @@
under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.apache.rave.integration-tests</groupId>
- <artifactId>rave-default-account-tests</artifactId>
- <name>Apache Rave :: rave-default-account-tests</name>
- <description>Default account portal stories for canonical, john.doe, johnldap and openid</description>
-
- <parent>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
<groupId>org.apache.rave.integration-tests</groupId>
- <artifactId>rave-integration-tests</artifactId>
- <version>0.12-model_interfaces-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
+ <artifactId>rave-default-account-tests</artifactId>
+ <name>Apache Rave :: rave-default-account-tests</name>
+ <description>Default account portal stories for canonical, john.doe, johnldap and openid</description>
+
+ <parent>
+ <groupId>org.apache.rave.integration-tests</groupId>
+ <artifactId>rave-integration-tests</artifactId>
+ <version>0.12-model_interfaces-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
- <dependencies>
- <!-- This is the core tests jar that we just made in a previous module -->
- <dependency>
- <groupId>org.apache.rave.integration-tests</groupId>
- <artifactId>rave-core-tests</artifactId>
- <version>${project.version}</version>
- </dependency>
- </dependencies>
+ <dependencies>
+ <!-- This is the core tests jar that we just made in a previous module -->
+ <dependency>
+ <groupId>org.apache.rave.integration-tests</groupId>
+ <artifactId>rave-core-tests</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
- <build>
- <resources>
- <resource>
- <directory>${basedir}/src/main/resources</directory>
- </resource>
- <resource>
- <directory>${basedir}/src/main/stories</directory>
- </resource>
- </resources>
- <plugins>
- <plugin>
- <groupId>org.jbehave</groupId>
- <artifactId>jbehave-maven-plugin</artifactId>
- <version>${jbehave.core.version}</version>
- <executions>
- <execution>
- <id>unpack-view-resources</id>
- <phase>process-resources</phase>
- <goals>
- <goal>unpack-view-resources</goal>
- </goals>
- </execution>
- <execution>
- <id>embeddable-stories</id>
- <phase>integration-test</phase>
- <configuration>
- <includes>
- <include>**/*Stories.java</include>
- </includes>
- <excludes/>
- <generateViewAfterStories>true</generateViewAfterStories>
- <ignoreFailureInStories>true</ignoreFailureInStories>
- <ignoreFailureInView>true</ignoreFailureInView>
- <metaFilters>
- <metaFilter>${meta.filter}</metaFilter>
- </metaFilters>
- </configuration>
- <goals>
- <goal>run-stories-as-embeddables</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-</project>
+ <build>
+ <resources>
+ <resource>
+ <directory>${basedir}/src/main/resources</directory>
+ </resource>
+ <resource>
+ <directory>${basedir}/src/main/stories</directory>
+ </resource>
+ </resources>
+ </build>
+ <profiles>
+ <profile>
+ <id>integration-tests</id>
+ <build>
+ <defaultGoal>integration-test</defaultGoal>
+ <plugins>
+ <plugin>
+ <groupId>org.jbehave</groupId>
+ <artifactId>jbehave-maven-plugin</artifactId>
+ <version>${jbehave.core.version}</version>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
\ No newline at end of file
Modified: rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/java/org/apache/rave/integrationtests/steps/DefaultAccountSteps.java
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/java/org/apache/rave/integrationtests/steps/DefaultAccountSteps.java?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/java/org/apache/rave/integrationtests/steps/DefaultAccountSteps.java (original)
+++ rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/java/org/apache/rave/integrationtests/steps/DefaultAccountSteps.java Mon Jun 4 16:39:01 2012
@@ -19,14 +19,13 @@
package org.apache.rave.integrationtests.steps;
+import org.apache.rave.integrationtests.pages.Portal;
import org.jbehave.core.annotations.Then;
import org.jbehave.core.annotations.When;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.springframework.beans.factory.annotation.Autowired;
-import org.apache.rave.integrationtests.pages.Portal;
-
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -90,4 +89,5 @@ public class DefaultAccountSteps {
final WebElement title = portal.findElement(By.tagName("title"));
assertThat(title.getText().trim(), equalTo("Login - Rave"));
}
+
}
Modified: rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/stories/canonicalLogin.story
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/stories/canonicalLogin.story?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/stories/canonicalLogin.story (original)
+++ rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/stories/canonicalLogin.story Mon Jun 4 16:39:01 2012
@@ -1,3 +1,22 @@
+!--
+!-- Licensed to the Apache Software Foundation (ASF) under one
+!-- or more contributor license agreements. See the NOTICE file
+!-- distributed with this work for additional information
+!-- regarding copyright ownership. The ASF licenses this file
+!-- to you 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.
+!--
+
Meta:
Narrative:
Modified: rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/stories/johnDoe.story
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/stories/johnDoe.story?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/stories/johnDoe.story (original)
+++ rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/stories/johnDoe.story Mon Jun 4 16:39:01 2012
@@ -1,3 +1,22 @@
+!--
+!-- Licensed to the Apache Software Foundation (ASF) under one
+!-- or more contributor license agreements. See the NOTICE file
+!-- distributed with this work for additional information
+!-- regarding copyright ownership. The ASF licenses this file
+!-- to you 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.
+!--
+
Meta:
Narrative:
@@ -12,3 +31,47 @@ When I log in with username "john.doe" a
Then I see the message "Hello John Doe, welcome to Rave!" for the user "john.doe"
When I log out
Then I see the Rave login page
+
+Scenario: John Doe updates his profile
+When I log in with username "john.doe" and password "john.doe"
+And I go to "http://localhost:8080/portal/app/person/john.doe"
+Then I see the email address "john.doe@example.com" on the profile page
+And I see the about me "" on the profile page
+And I see the status "" on the profile page
+When I click on the "profileEdit" button
+Then I can edit the email address
+When I change the email address to "john.doe@example.net"
+And I change the about me to "I'm a test user"
+And I change the status to "It's complicated"
+And I submit the edit profile form
+Then I see the email address "john.doe@example.net" on the profile page
+And I see the about me "I'm a test user" on the profile page
+And I see the status "It's complicated" on the profile page
+When I log out
+
+Scenario: John Doe reverts his profile after logging out and in
+When I log in with username "john.doe" and password "john.doe"
+And I go to "http://localhost:8080/portal/app/person/john.doe"
+Then I see the email address "john.doe@example.net" on the profile page
+And I see the about me "I'm a test user" on the profile page
+And I see the status "It's complicated" on the profile page
+When I click on the "profileEdit" button
+Then I can edit the email address
+When I change the email address to "john.doe@example.com"
+And I change the about me to ""
+And I change the status to ""
+And I submit the edit profile form
+Then I see the email address "john.doe@example.com" on the profile page
+And I see the about me "" on the profile page
+And I see the status "" on the profile page
+When I log out
+
+Scenario: John Doe adds a new page
+When I log in with username "john.doe" and password "john.doe"
+And I click the add page button
+And I enter the title "Auto test"
+And I choose the two column layout
+And I add the page
+Then the new page with title "Auto test" is selected
+When I delete the current page
+When I log out
Modified: rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/stories/johnLdap.story
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/stories/johnLdap.story?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/stories/johnLdap.story (original)
+++ rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/stories/johnLdap.story Mon Jun 4 16:39:01 2012
@@ -1,3 +1,22 @@
+!--
+!-- Licensed to the Apache Software Foundation (ASF) under one
+!-- or more contributor license agreements. See the NOTICE file
+!-- distributed with this work for additional information
+!-- regarding copyright ownership. The ASF licenses this file
+!-- to you 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.
+!--
+
Meta:
Narrative:
Modified: rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/stories/openidLogin.story
URL: http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/stories/openidLogin.story?rev=1346029&r1=1346028&r2=1346029&view=diff
==============================================================================
--- rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/stories/openidLogin.story (original)
+++ rave/branches/model_interfaces/rave-integration-tests/rave-default-account-tests/src/main/stories/openidLogin.story Mon Jun 4 16:39:01 2012
@@ -1,3 +1,22 @@
+!--
+!-- Licensed to the Apache Software Foundation (ASF) under one
+!-- or more contributor license agreements. See the NOTICE file
+!-- distributed with this work for additional information
+!-- regarding copyright ownership. The ASF licenses this file
+!-- to you 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.
+!--
+
Meta:
Narrative: