Return-Path: X-Original-To: apmail-incubator-rave-commits-archive@minotaur.apache.org Delivered-To: apmail-incubator-rave-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1F18C6F77 for ; Tue, 12 Jul 2011 16:26:54 +0000 (UTC) Received: (qmail 3353 invoked by uid 500); 12 Jul 2011 16:26:54 -0000 Delivered-To: apmail-incubator-rave-commits-archive@incubator.apache.org Received: (qmail 3303 invoked by uid 500); 12 Jul 2011 16:26:53 -0000 Mailing-List: contact rave-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: rave-dev@incubator.apache.org Delivered-To: mailing list rave-commits@incubator.apache.org Received: (qmail 3290 invoked by uid 99); 12 Jul 2011 16:26:53 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 12 Jul 2011 16:26:53 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 12 Jul 2011 16:26:46 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 62E142388906; Tue, 12 Jul 2011 16:26:26 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1145661 - in /incubator/rave/trunk/rave-portal/src: main/java/org/apache/rave/portal/model/ main/java/org/apache/rave/portal/service/ main/java/org/apache/rave/portal/service/impl/ main/java/org/apache/rave/portal/web/api/rpc/ main/webapp/... Date: Tue, 12 Jul 2011 16:26:26 -0000 To: rave-commits@incubator.apache.org From: mfranklin@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110712162626.62E142388906@eris.apache.org> Author: mfranklin Date: Tue Jul 12 16:26:25 2011 New Revision: 1145661 URL: http://svn.apache.org/viewvc?rev=1145661&view=rev Log: Updated delete rpc api to take only a regionWidgetId for delete operations (Supports RAVE-58) Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/RegionWidget.java incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/PageService.java incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java incubator/rave/trunk/rave-portal/src/main/webapp/WEB-INF/views/home.jsp incubator/rave/trunk/rave-portal/src/main/webapp/script/rave.js incubator/rave/trunk/rave-portal/src/main/webapp/script/rave_api.js incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/AbstractJpaRepositoryTest.java incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/service/PageServiceTest.java incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/web/api/rpc/PageApiTest.java incubator/rave/trunk/rave-portal/src/test/javascript/raveApiSpec.js Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/RegionWidget.java URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/RegionWidget.java?rev=1145661&r1=1145660&r2=1145661&view=diff ============================================================================== --- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/RegionWidget.java (original) +++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/RegionWidget.java Tue Jul 12 16:26:25 2011 @@ -49,6 +49,10 @@ public class RegionWidget implements Bas @Column(name = "collapsed") private boolean collapsed; + @Basic + @Column(name="region_id") + private long regionId; + @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true) @JoinColumn(name = "region_widget_id", referencedColumnName = "id") private List preferences; @@ -122,6 +126,18 @@ public class RegionWidget implements Bas } /** + * Gets the id of the associated region + * @return region's id + */ + public long getRegionId() { + return regionId; + } + + public void setRegionId(long regionId) { + this.regionId = regionId; + } + + /** * Gets whether or not to render the gadget in collapsed mode * * @return true if render collapsed; false otherwise Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/PageService.java URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/PageService.java?rev=1145661&r1=1145660&r2=1145661&view=diff ============================================================================== --- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/PageService.java (original) +++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/PageService.java Tue Jul 12 16:26:25 2011 @@ -53,14 +53,15 @@ public interface PageService { RegionWidget addWidgetToPage(long page_id, long widget_id); /** - * Deletes a specified widget from the specied page. + * Deletes the specified widget from the page. * * @param regionWidgetId the id of the region widget to delete.\ - */ - void removeWidgetFromPage(long regionWidgetId); + * @return the region from which the widget was deleted + */ + Region removeWidgetFromPage(long regionWidgetId); /** - * Registers a new page. + * Registers a new page. * @param page the page object to register with the data management system. */ void registerNewPage(Page page); Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java?rev=1145661&r1=1145660&r2=1145661&view=diff ============================================================================== --- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java (original) +++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java Tue Jul 12 16:26:25 2011 @@ -66,13 +66,10 @@ public class DefaultPageService implemen @Override @Transactional - public void removeWidgetFromPage(long regionWidgetId) { + public Region removeWidgetFromPage(long regionWidgetId) { RegionWidget widget = getFromRepository(regionWidgetId, regionWidgetRepository); - if (widget != null) { - regionWidgetRepository.delete(widget); - } else { - throw new IllegalArgumentException("Region widget with id " + regionWidgetId + " was not found in the repository"); - } + regionWidgetRepository.delete(widget); + return getFromRepository(widget.getRegionId(), regionRepository); } @Override Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java?rev=1145661&r1=1145660&r2=1145661&view=diff ============================================================================== --- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java (original) +++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java Tue Jul 12 16:26:25 2011 @@ -121,8 +121,7 @@ public class PageApi { return new RpcOperation() { @Override public Region execute() { - pageService.removeWidgetFromPage(regionWidgetId); - return null; + return pageService.removeWidgetFromPage(regionWidgetId); } }.getResult(); } Modified: incubator/rave/trunk/rave-portal/src/main/webapp/WEB-INF/views/home.jsp URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/webapp/WEB-INF/views/home.jsp?rev=1145661&r1=1145660&r2=1145661&view=diff ============================================================================== --- incubator/rave/trunk/rave-portal/src/main/webapp/WEB-INF/views/home.jsp (original) +++ incubator/rave/trunk/rave-portal/src/main/webapp/WEB-INF/views/home.jsp Tue Jul 12 16:26:25 2011 @@ -55,7 +55,7 @@ Modified: incubator/rave/trunk/rave-portal/src/main/webapp/script/rave.js URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/webapp/script/rave.js?rev=1145661&r1=1145660&r2=1145661&view=diff ============================================================================== --- incubator/rave/trunk/rave-portal/src/main/webapp/script/rave.js (original) +++ incubator/rave/trunk/rave-portal/src/main/webapp/script/rave.js Tue Jul 12 16:26:25 2011 @@ -113,20 +113,15 @@ var rave = rave || (function() { } function maximizeAction(button,args) { alert("Maximize button not yet implemented"); - }; + } function deleteAction(button,args) { rave.api.rpc.removeWidget({ - regionWidgetId: args.myRegionWidgetId, - pageId : args.myPageId, - region: { - id : rave.getGadgetRegion(args.myRegionWidgetId) - }, - succCB: function() { + regionWidgetId: args.myRegionWidgetId, + successCallback: function() { $("#widget-wrapper-"+args.myRegionWidgetId).remove(); } }); - - }; + } return { maximizeAction : maximizeAction, deleteAction : deleteAction Modified: incubator/rave/trunk/rave-portal/src/main/webapp/script/rave_api.js URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/webapp/script/rave_api.js?rev=1145661&r1=1145660&r2=1145661&view=diff ============================================================================== --- incubator/rave/trunk/rave-portal/src/main/webapp/script/rave_api.js (original) +++ incubator/rave/trunk/rave-portal/src/main/webapp/script/rave_api.js Tue Jul 12 16:26:25 2011 @@ -1,4 +1,4 @@ - /* +/* * 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 @@ -18,73 +18,69 @@ */ var rave = rave || {}; /** - * Namespace that provides client access to Rave server APIs. + * Namespace that provides client access to Rave server APIs. * Note required jquery libraries must be imported by the containing page. */ rave.api = rave.api || (function() { var rpcApi = (function() { - //Base path to RPC services + //Base path to RPC services var path = "api/rpc/"; - //This method is implemented by PageApi.java. + //This method is implemented by PageApi.java. function moveWidgetOnPage(args) { var widgetObjectId = rave.getObjectIdFromDomId(args.widget.id); var toRegionObjectId = rave.getObjectIdFromDomId(args.targetRegion.id); var fromRegionObjectId = rave.getObjectIdFromDomId(args.currentRegion.id); //Note context must be set outside this library. See home.jsp for example. $.post(rave.getContext() + path + "page/regionWidget/" + widgetObjectId + "/move", - { - newPosition: args.targetIndex, - toRegion: toRegionObjectId, - fromRegion: fromRegionObjectId - }, - function(result) { - if (result.error) { - handleRpcError(result); - } else { - rave.mapGadgetToRegion(widgetObjectId, toRegionObjectId); - } + { + newPosition: args.targetIndex, + toRegion: toRegionObjectId, + fromRegion: fromRegionObjectId + }, + function(result) { + if (result.error) { + handleRpcError(result); + } else { + rave.mapGadgetToRegion(widgetObjectId, toRegionObjectId); } + } ).error(handleError); } function addWidgetToPage(args) { $.post(rave.getContext() + path + "page/" + args.pageId + "/widget/add", - { - widgetId: args.widgetId - }, - function(result) { - if (result.error) { - handleRpcError(result); - } else { - var widgetTitle = "The widget"; - var addedWidget = result.result != undefined ? result.result.widget : undefined; - - if (addedWidget != undefined && addedWidget.title != undefined && addedWidget.title.length > 0) { - widgetTitle = addedWidget.title; - } - alert(widgetTitle + " has been added to your page"); + { + widgetId: args.widgetId + }, + function(result) { + if (result.error) { + handleRpcError(result); + } else { + var widgetTitle = "The widget"; + var addedWidget = result.result != undefined ? result.result.widget : undefined; + + if (addedWidget != undefined && addedWidget.title != undefined && addedWidget.title.length > 0) { + widgetTitle = addedWidget.title; } - }).error(handleError); + alert(widgetTitle + " has been added to your page"); + } + }).error(handleError); } - function deleteWidgetOnPage(args) { - $.post(rave.getContext() + path + "page/" +args.pageId + "/widget/delete", - { - widgetId: args.regionWidgetId, - regionId: args.region.id - }, - function(result) { - if(result.error && result.error == true) { - handleRpcError(result); - } else { - rave.mapGadgetToRegion(args.regionWidgetId, null); - if (args.succCB != null && typeof args.succCB == 'function') { - args.succCB(); + function deleteWidgetOnPage(args) { + $.post(rave.getContext() + path + "page/regionWidget/" + args.regionWidgetId + "/delete", + null, + function(result) { + if (result.error) { + handleRpcError(result); + } else { + if (typeof args.successCallback == 'function') { + args.successCallback(); + } } - } - }).error(handleError); - } + }).error(handleError); + } function handleError(jqXhr, status, error) { alert("Rave encountered an error while trying to contact the server. Please reload the page and try again. error: " + error); @@ -97,11 +93,11 @@ rave.api = rave.api || (function() { break; case "INVALID_PARAMS": alert("Rave attempted to update the server with your recent changes, " + - " but the changes were rejected by the server as invalid."); + " but the changes were rejected by the server as invalid."); break; case "INTERNAL_ERROR": alert("Rave attempted to update the server with your recent changes, " + - " but the server encountered an internal error."); + " but the server encountered an internal error."); break; } } Modified: incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/AbstractJpaRepositoryTest.java URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/AbstractJpaRepositoryTest.java?rev=1145661&r1=1145660&r2=1145661&view=diff ============================================================================== --- incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/AbstractJpaRepositoryTest.java (original) +++ incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/AbstractJpaRepositoryTest.java Tue Jul 12 16:26:25 2011 @@ -21,6 +21,7 @@ package org.apache.rave.portal.repositor import org.apache.rave.portal.model.BasicEntity; import org.apache.rave.portal.repository.impl.AbstractJpaRepository; +import org.hamcrest.CoreMatchers; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -98,6 +99,17 @@ public class AbstractJpaRepositoryTest { } + @Test + @Rollback(true) + public void delete() { + for(AbstractJpaRepository repository : repositories) { + BasicEntity entity = repository.get(VALID_ENTITY_ID); + repository.delete(entity); + sharedManager.flush(); + assertThat(repository.get(VALID_ENTITY_ID), is(nullValue())); + } + } + private BasicEntity constructNewEntityForRepository(AbstractJpaRepository repository) { try { Field field = AbstractJpaRepository.class.getDeclaredField("type"); Modified: incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/service/PageServiceTest.java URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/service/PageServiceTest.java?rev=1145661&r1=1145660&r2=1145661&view=diff ============================================================================== --- incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/service/PageServiceTest.java (original) +++ incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/service/PageServiceTest.java Tue Jul 12 16:26:25 2011 @@ -25,6 +25,7 @@ import org.apache.rave.portal.model.Regi import org.apache.rave.portal.model.Widget; import org.apache.rave.portal.repository.PageRepository; import org.apache.rave.portal.repository.RegionRepository; +import org.apache.rave.portal.repository.RegionWidgetRepository; import org.apache.rave.portal.repository.WidgetRepository; import org.apache.rave.portal.service.impl.DefaultPageService; import org.hamcrest.CoreMatchers; @@ -44,6 +45,7 @@ public class PageServiceTest { private PageRepository pageRepository; private RegionRepository regionRepository; private WidgetRepository widgetRepository; + private RegionWidgetRepository regionWidgetRepository; private static final long REGION_WIDGET_ID = 5L; private static final long TO_REGION_ID = 1L; @@ -57,7 +59,8 @@ public class PageServiceTest { pageRepository = createNiceMock(PageRepository.class); regionRepository = createNiceMock(RegionRepository.class); widgetRepository = createNiceMock(WidgetRepository.class); - pageService = new DefaultPageService(pageRepository, regionRepository, widgetRepository, null); + regionWidgetRepository = createNiceMock(RegionWidgetRepository.class); + pageService = new DefaultPageService(pageRepository, regionRepository, widgetRepository, regionWidgetRepository); targetRegion = new Region(); targetRegion.setRegionWidgets(new ArrayList()); @@ -229,6 +232,37 @@ public class PageServiceTest { pageService.addWidgetToPage(PAGE_ID, WIDGET_ID); } + @Test + public void removeWidgetFromPage_validWidget() { + long WIDGET_ID = 1L; + long REGION_ID = 2L; + RegionWidget widget = new RegionWidget(WIDGET_ID); + widget.setRegionId(REGION_ID); + Region region = new Region(); + + expect(regionWidgetRepository.get(WIDGET_ID)).andReturn(widget); + regionWidgetRepository.delete(widget); + expectLastCall(); + replay(regionWidgetRepository); + expect(regionRepository.get(REGION_ID)).andReturn(region); + replay(regionRepository); + + Region result = pageService.removeWidgetFromPage(WIDGET_ID); + verify(regionWidgetRepository); + verify(regionRepository); + assertThat(result, is(sameInstance(region))); + } + + @Test(expected = IllegalArgumentException.class) + public void removeWidgetFromPage_invalidWidget() { + long WIDGET_ID = -1L; + expect(regionWidgetRepository.get(WIDGET_ID)).andReturn(null); + replay(regionWidgetRepository); + replay(regionRepository); + + pageService.removeWidgetFromPage(WIDGET_ID); + } + private void verifyPositions(int newPosition, RegionWidget widget, boolean sameRegion) { assertThat(widget.getRenderOrder(), is(equalTo(newPosition))); if (!sameRegion) { Modified: incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/web/api/rpc/PageApiTest.java URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/web/api/rpc/PageApiTest.java?rev=1145661&r1=1145660&r2=1145661&view=diff ============================================================================== --- incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/web/api/rpc/PageApiTest.java (original) +++ incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/web/api/rpc/PageApiTest.java Tue Jul 12 16:26:25 2011 @@ -19,9 +19,11 @@ package org.apache.rave.portal.web.api.rpc; +import org.apache.rave.portal.model.Region; import org.apache.rave.portal.model.RegionWidget; import org.apache.rave.portal.service.PageService; import org.apache.rave.portal.web.api.rpc.model.RpcResult; +import org.hamcrest.CoreMatchers; import org.junit.Before; import org.junit.Test; @@ -147,24 +149,24 @@ public class PageApiTest { @Test public void deleteWidget_validParams() { final long WIDGET_ID = 3; - pageService.removeWidgetFromPage(WIDGET_ID); - expectLastCall(); - RpcResult result = pageApi.removeWidgetFromPage(WIDGET_ID); + expect(pageService.removeWidgetFromPage(WIDGET_ID)).andReturn(new Region()); + replay(pageService); + + RpcResult result = pageApi.removeWidgetFromPage(WIDGET_ID); verify(pageService); assertThat(result, is(notNullValue())); - assertThat(result.getResult(), is(nullValue())); + assertThat(result.getResult(), is(notNullValue())); assertThat(result.isError(), is(false)); } @Test public void deleteWidget_invalidParams() { - final int PAGE_ID = 1; final long WIDGET_ID = 2; - expect(pageService.addWidgetToPage(PAGE_ID, WIDGET_ID)).andThrow(new IllegalArgumentException(PARAM_ERROR_MESSAGE)); + expect(pageService.removeWidgetFromPage(WIDGET_ID)).andThrow(new IllegalArgumentException(PARAM_ERROR_MESSAGE)); replay(pageService); - RpcResult result = pageApi.addWidgetToPage(PAGE_ID, WIDGET_ID); + RpcResult result = pageApi.removeWidgetFromPage(WIDGET_ID); verify(pageService); assertThat(result, is(notNullValue())); assertThat(result.getResult(), is(nullValue())); @@ -175,12 +177,11 @@ public class PageApiTest { @Test public void deleteWidget_internalError() { - final int PAGE_ID = 1; final long WIDGET_ID = 2; - expect(pageService.addWidgetToPage(PAGE_ID, WIDGET_ID)).andThrow(new RuntimeException(INTERNAL_ERROR_MESSAGE)); + expect(pageService.removeWidgetFromPage(WIDGET_ID)).andThrow(new RuntimeException(INTERNAL_ERROR_MESSAGE)); replay(pageService); - RpcResult result = pageApi.addWidgetToPage(PAGE_ID, WIDGET_ID); + RpcResult result = pageApi.removeWidgetFromPage(WIDGET_ID); verify(pageService); assertThat(result, is(notNullValue())); assertThat(result.getResult(), is(nullValue())); Modified: incubator/rave/trunk/rave-portal/src/test/javascript/raveApiSpec.js URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/test/javascript/raveApiSpec.js?rev=1145661&r1=1145660&r2=1145661&view=diff ============================================================================== --- incubator/rave/trunk/rave-portal/src/test/javascript/raveApiSpec.js (original) +++ incubator/rave/trunk/rave-portal/src/test/javascript/raveApiSpec.js Tue Jul 12 16:26:25 2011 @@ -30,7 +30,8 @@ describe("Rave API", function() { expect(data.widgetId).toEqual(2); expect(typeof(callback)).toEqual("function"); return { - error: function(a, b, c) {} + error: function(a, b, c) { + } } }; rave.api.rpc.addWidgetToPage({pageId: 1, widgetId: 2}); @@ -46,24 +47,46 @@ describe("Rave API", function() { expect(data.newPosition).toEqual(3); expect(typeof(callback)).toEqual("function"); return { - error: function(a, b, c) {} + error: function(a, b, c) { + } } }; rave.api.rpc.moveWidget({targetRegion: {id:"region-1"}, currentRegion: {id:"region-2"}, targetIndex: 3, widget:{id:"widget-3-body"}}); }); }); + describe("deleteWidget", function() { + it("posts correct values to the RPC service for deleting a widget from the page", function() { + var callbackCalled = false; + $.post = function(url, data, callback) { + expect(url).toEqual("api/rpc/page/regionWidget/1/delete"); + expect(typeof(callback)).toEqual("function"); + callback({error:false}); + return { + error: function(a, b, c) { + } + } + }; + var callback = function() { + callbackCalled = true + }; + rave.api.rpc.removeWidget({regionWidgetId : 1, successCallback: callback}); + expect(callbackCalled).toBeTruthy(); + }); + + }); describe("Error handling", function() { it("displays the appropriate alert when invalid parameters are passed", function() { $.post = function(url, data, handler) { handler({error: true, errorCode: "INVALID_PARAMS"}); return { - error: function(a, b, c) {} + error: function(a, b, c) { + } } }; alert = function(str) { expect(str).toEqual("Rave attempted to update the server with your recent changes, " + - " but the changes were rejected by the server as invalid."); + " but the changes were rejected by the server as invalid."); }; rave.api.rpc.moveWidget({targetRegion: {id:"region-1"}, currentRegion: {id:"region-2"}, targetIndex: 3, widget:{id:"widget-3-body"}}); @@ -73,12 +96,13 @@ describe("Rave API", function() { $.post = function(url, data, handler) { handler({error: true, errorCode: "INTERNAL_ERROR"}); return { - error: function(a, b, c) {} + error: function(a, b, c) { + } } }; alert = function(str) { expect(str).toEqual("Rave attempted to update the server with your recent changes, " + - " but the server encountered an internal error."); + " but the server encountered an internal error."); }; rave.api.rpc.moveWidget({targetRegion: {id:"region-1"}, currentRegion: {id:"region-2"}, targetIndex: 3, widget:{id:"widget-3-body"}}); });