Author: psharples
Date: Thu Mar  8 17:53:23 2012
New Revision: 1298486

URL: http://svn.apache.org/viewvc?rev=1298486&view=rev
Log:
Updated functional tests that now have the urlencoding as optional, as there 
are issues running these tests against tomcat (this is set in 
AbstractWookieTest).  Tests now all clean up after themselves, except the ones 
where WidgetInstances are created - (because the DELETE method has yet to be 
implemented)

Added:
    
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/AbstractWookieTest.java
   (with props)
Modified:
    
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/AbstractControllerTest.java
    
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/ApiKeyControllerTest.java
    
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/FolderLocalizationTest.java
    
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/PoliciesControllerTest.java
    
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/PropertiesControllerTest.java
    
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/UpdatesControllerTest.java
    
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/WidgetInstancesControllerTest.java
    
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/WidgetsControllerTest.java

Added: 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/AbstractWookieTest.java
URL: 
http://svn.apache.org/viewvc/incubator/wookie/trunk/src-tests/org/apache/wookie/tests/AbstractWookieTest.java?rev=1298486&view=auto
==============================================================================
--- 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/AbstractWookieTest.java
 (added)
+++ 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/AbstractWookieTest.java
 Thu Mar  8 17:53:23 2012
@@ -0,0 +1,39 @@
+/*
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wookie.tests;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+
+public abstract class AbstractWookieTest {
+  
+  // Use the boolean variable below to turn 
+  // on/off url encoding in all the tests
+  private static boolean useEncoding = true;
+  // an easier way to change the encoding for 
+  // all of the tests
+  private static String encodingType = "UTF-8";
+  
+  public static String encodeString(String path) throws 
UnsupportedEncodingException{
+    if (useEncoding){
+      return URLEncoder.encode(path, encodingType);
+    }
+    else{     
+      path = path.replaceAll(" ", "%20");       
+     // path = path.replaceAll(" ", "+");
+    }
+    return path;
+  }
+
+}

Propchange: 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/AbstractWookieTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/AbstractControllerTest.java
URL: 
http://svn.apache.org/viewvc/incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/AbstractControllerTest.java?rev=1298486&r1=1298485&r2=1298486&view=diff
==============================================================================
--- 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/AbstractControllerTest.java
 (original)
+++ 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/AbstractControllerTest.java
 Thu Mar  8 17:53:23 2012
@@ -18,16 +18,17 @@ import org.apache.commons.httpclient.Cre
 import org.apache.commons.httpclient.HttpClient;
 import org.apache.commons.httpclient.UsernamePasswordCredentials;
 import org.apache.commons.httpclient.auth.AuthScope;
+import org.apache.wookie.tests.AbstractWookieTest;
 
 /**
  * Constants used in functional tests. Change these values to test servers
  * at other locations.
  *
  */
-public abstract class AbstractControllerTest{
+public abstract class AbstractControllerTest extends AbstractWookieTest{
        protected static final int TEST_SERVER_PORT = 8080;
        protected static final String TEST_SERVER_HOST = "localhost";   
-       protected static final String TEST_SERVER_ORIGIN = 
"http://"+TEST_SERVER_HOST+":"+TEST_SERVER_PORT;
+       protected static final String TEST_SERVER_ORIGIN = "http://"; + 
TEST_SERVER_HOST + ":" + TEST_SERVER_PORT;
        protected static final String TEST_SERVER_LOCATION = 
TEST_SERVER_ORIGIN+"/wookie/";
        
        protected static final String TEST_POLICIES_SERVICE_URL_VALID = 
TEST_SERVER_LOCATION+"policies";
@@ -41,6 +42,7 @@ public abstract class AbstractController
        protected static final String API_KEY_INVALID = "rubbish";
        protected static final String WIDGET_ID_VALID = 
"http://www.getwookie.org/widgets/weather";;
        protected static final String WIDGET_ID_INVALID = 
"http://www.getwookie.org/widgets/nosuchwidget";;
+       protected static final String WIDGET_ID_LOCALIZED = 
"http://www.getwookie.org/widgets/localetest";;
 
        /**
         * Set credentials for accessing Wookie admin functions

Modified: 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/ApiKeyControllerTest.java
URL: 
http://svn.apache.org/viewvc/incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/ApiKeyControllerTest.java?rev=1298486&r1=1298485&r2=1298486&view=diff
==============================================================================
--- 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/ApiKeyControllerTest.java
 (original)
+++ 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/ApiKeyControllerTest.java
 Thu Mar  8 17:53:23 2012
@@ -202,9 +202,10 @@ public class ApiKeyControllerTest extend
    * 
    * @throws IOException
    * @throws HttpException
+   * @throws JDOMException 
    */
   @Test
-  public void addDuplicateEntry() throws HttpException, IOException {
+  public void addDuplicateEntry() throws HttpException, IOException, 
JDOMException {
     //
     // Create an API key
     //
@@ -223,6 +224,53 @@ public class ApiKeyControllerTest extend
     client.executeMethod(post);
     code = post.getStatusCode();
     assertEquals(409, code);
+    
+    String id = null;
+
+    //
+    // Clean up
+    //
+    client = new HttpClient();
+    GetMethod get = new GetMethod(APIKEY_SERVICE_LOCATION_VALID);
+    setAuthenticationCredentials(client);
+    client.executeMethod(get);
+    code = get.getStatusCode();
+    assertEquals(200, code);
+    assertTrue(get.getResponseBodyAsString().contains("DUPLICATION_TEST"));
+
+    //
+    // Get the ID of the key we created
+    //
+    Document doc = new SAXBuilder().build(get.getResponseBodyAsStream());
+    for (Object key : doc.getRootElement().getChildren()) {
+      Element keyElement = (Element) key;
+      if (keyElement.getAttributeValue("value").equals("DUPLICATION_TEST")) {
+        id = keyElement.getAttributeValue("id");
+      }
+    }
+
+    //
+    // Delete the API key
+    //
+    client = new HttpClient();
+    DeleteMethod del = new DeleteMethod(APIKEY_SERVICE_LOCATION_VALID + "/"  + 
id);
+    setAuthenticationCredentials(client);
+    client.executeMethod(del);
+    code = del.getStatusCode();
+    assertEquals(200, code);
+
+    //
+    // Check that the key was deleted
+    //
+    client = new HttpClient();
+    get = new GetMethod(APIKEY_SERVICE_LOCATION_VALID);
+    get.setRequestHeader("Content-type", "application/json");
+    setAuthenticationCredentials(client);
+    client.executeMethod(get);
+    code = get.getStatusCode();
+    assertEquals(200, code);
+    System.out.println(get.getResponseBodyAsString());
+    assertFalse(get.getResponseBodyAsString().contains("DUPLICATION_TEST"));
   }
 
   /**

Modified: 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/FolderLocalizationTest.java
URL: 
http://svn.apache.org/viewvc/incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/FolderLocalizationTest.java?rev=1298486&r1=1298485&r2=1298486&view=diff
==============================================================================
--- 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/FolderLocalizationTest.java
 (original)
+++ 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/FolderLocalizationTest.java
 Thu Mar  8 17:53:23 2012
@@ -42,7 +42,6 @@ import org.junit.Test;
  */
 public class FolderLocalizationTest extends AbstractControllerTest {
 
-  private static final String LOCALIZED_WIDGET = 
"http://www.getwookie.org/widgets/localetest";;
   private static String WIDGET_START_URL_ROOT;
 
   private static HttpClient client;
@@ -102,7 +101,7 @@ public class FolderLocalizationTest exte
     //
     post = new PostMethod(TEST_INSTANCES_SERVICE_URL_VALID);
     post.setQueryString("api_key=" + API_KEY_VALID + "&widgetid="
-        + LOCALIZED_WIDGET
+        + WIDGET_ID_LOCALIZED
         + "&userid=foldertest1&shareddatakey=foldertest1&locale=en-gb-yorks");
     client.executeMethod(post);
 
@@ -128,7 +127,7 @@ public class FolderLocalizationTest exte
   public static void tearDown() throws HttpException, IOException{
     HttpClient client = new HttpClient();
     setAuthenticationCredentials(client);
-    DeleteMethod delete = new DeleteMethod(TEST_WIDGETS_SERVICE_URL_VALID + 
"/" + LOCALIZED_WIDGET);
+    DeleteMethod delete = new DeleteMethod(TEST_WIDGETS_SERVICE_URL_VALID + 
"/" + WIDGET_ID_LOCALIZED);
     client.executeMethod(delete);
     delete.releaseConnection();
   }  
@@ -249,7 +248,7 @@ public class FolderLocalizationTest exte
     //
     PostMethod post = new PostMethod(TEST_INSTANCES_SERVICE_URL_VALID);
     post.setQueryString("api_key=" + API_KEY_VALID + "&widgetid="
-        + LOCALIZED_WIDGET
+        + WIDGET_ID_LOCALIZED
         + "&userid=foldertest1&shareddatakey=foldertest1&locale=fr");
     client.executeMethod(post);
 
@@ -277,7 +276,7 @@ public class FolderLocalizationTest exte
 
     post = new PostMethod(TEST_INSTANCES_SERVICE_URL_VALID);
     post.setQueryString("api_key=" + API_KEY_VALID + "&widgetid="
-        + LOCALIZED_WIDGET
+        + WIDGET_ID_LOCALIZED
         + "&userid=foldertest1&shareddatakey=foldertest1&locale=en");
     client.executeMethod(post);
 
@@ -306,7 +305,7 @@ public class FolderLocalizationTest exte
     //
     post = new PostMethod(TEST_INSTANCES_SERVICE_URL_VALID);
     post.setQueryString("api_key=" + API_KEY_VALID + "&widgetid="
-        + LOCALIZED_WIDGET + "&userid=foldertest1&shareddatakey=foldertest1");
+        + WIDGET_ID_LOCALIZED + 
"&userid=foldertest1&shareddatakey=foldertest1");
     client.executeMethod(post);
 
     WIDGET_START_URL_ROOT = getStartFile(post.getResponseBodyAsString());

Modified: 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/PoliciesControllerTest.java
URL: 
http://svn.apache.org/viewvc/incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/PoliciesControllerTest.java?rev=1298486&r1=1298485&r2=1298486&view=diff
==============================================================================
--- 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/PoliciesControllerTest.java
 (original)
+++ 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/PoliciesControllerTest.java
 Thu Mar  8 17:53:23 2012
@@ -42,33 +42,41 @@ import org.junit.Test;
  */
 public class PoliciesControllerTest extends AbstractControllerTest {
   
+  private static String POLICY_TEST_SCOPE = "http://policies.test.scope";;
+  private static String POLICY_TEST_INVALID_SCOPE = "http://no.such.scope";;
+  private static String POLICY_TEST_ORIGIN = "http://policies.test.origin";;
+  private static String POLICY_TEST_ORIGIN_2 = "http://policies.test2.origin";;
+  
+  private static String POLICY_TEST_VALID = POLICY_TEST_SCOPE + " " + 
POLICY_TEST_ORIGIN + " " + "ALLOW";
+  private static String POLICY_TEST_VALID_2 = POLICY_TEST_SCOPE + " " + 
POLICY_TEST_ORIGIN_2 + " " + "ALLOW";
+  private static String POLICY_TEST_INVALID = POLICY_TEST_INVALID_SCOPE + " " 
+ POLICY_TEST_ORIGIN + " " + "ALLOW";
+
+
   @BeforeClass
   public static void setup() throws HttpException, IOException{
     HttpClient client = new HttpClient();
     setAuthenticationCredentials(client);
     PostMethod post = new PostMethod(TEST_POLICIES_SERVICE_URL_VALID);
-    StringRequestEntity entity = new 
StringRequestEntity("http://policies.test.scope http://policies.test.origin 
ALLOW", "text/plain", "UTF-8");
+    StringRequestEntity entity = new StringRequestEntity(POLICY_TEST_VALID, 
"text/plain", "UTF-8");
     post.setRequestEntity(entity);
     client.executeMethod(post);
   }
-  
+
   @AfterClass
   public static void tearDown() throws HttpException, IOException{
     HttpClient client = new HttpClient();
     setAuthenticationCredentials(client);
-    DeleteMethod delete = new 
DeleteMethod(TEST_POLICIES_SERVICE_URL_VALID+"/http%3A%2F%2Fpolicies.test.scope%20http%3A%2F%2Fpolicies.test2.origin%20ALLOW");
+    DeleteMethod delete = new DeleteMethod(TEST_POLICIES_SERVICE_URL_VALID + 
"/" + encodeString(POLICY_TEST_VALID_2));
     client.executeMethod(delete);
-    assertEquals(200, delete.getStatusCode()); 
+    assertEquals(200, delete.getStatusCode());
   }
   
   @Test
   public void getPolicies() throws HttpException, IOException{
     HttpClient client = new HttpClient();
-    setAuthenticationCredentials(client);
-    
+    setAuthenticationCredentials(client);    
     GetMethod get = new GetMethod(TEST_POLICIES_SERVICE_URL_VALID);
-    get.setRequestHeader("accepts", "text/xml");
-    
+    get.setRequestHeader("accepts", "text/xml");    
     client.executeMethod(get);
     try {
       Element policies = processPolicies(get.getResponseBodyAsStream());
@@ -81,10 +89,8 @@ public class PoliciesControllerTest exte
   @Test
   public void getPoliciesUnauthorized() throws HttpException, IOException{
     HttpClient client = new HttpClient();
-    
     GetMethod get = new GetMethod(TEST_POLICIES_SERVICE_URL_VALID);
     get.setRequestHeader("accepts", "text/xml");
-    
     client.executeMethod(get);
     assertEquals(401, get.getStatusCode());
   }
@@ -93,13 +99,11 @@ public class PoliciesControllerTest exte
   public void getPoliciesWithScope() throws HttpException, IOException{
     HttpClient client = new HttpClient();
     setAuthenticationCredentials(client);
-    
     //
-    // We should have a policy for the Weather widget by default, so lets test 
with that
+    // We should have a policy setup from above
     //
-    GetMethod get = new 
GetMethod(TEST_POLICIES_SERVICE_URL_VALID+"/http://policies.test.scope";);
+    GetMethod get = new GetMethod(TEST_POLICIES_SERVICE_URL_VALID + "/" + 
POLICY_TEST_SCOPE);
     get.setRequestHeader("accepts", "text/xml");
-    
     client.executeMethod(get);
     try {
       Element policies = processPolicies(get.getResponseBodyAsStream());
@@ -113,11 +117,9 @@ public class PoliciesControllerTest exte
   @Test
   public void getPoliciesWithNonexistingScope() throws HttpException, 
IOException{
     HttpClient client = new HttpClient();
-    setAuthenticationCredentials(client);
-    
-    GetMethod get = new 
GetMethod(TEST_POLICIES_SERVICE_URL_VALID+"/nosuchscope");
-    get.setRequestHeader("accepts", "text/xml");
-    
+    setAuthenticationCredentials(client);    
+    GetMethod get = new GetMethod(TEST_POLICIES_SERVICE_URL_VALID + 
"/nosuchscope");
+    get.setRequestHeader("accepts", "text/xml");    
     client.executeMethod(get);
     try {
       Element policies = processPolicies(get.getResponseBodyAsStream());
@@ -157,7 +159,7 @@ public class PoliciesControllerTest exte
     StringRequestEntity entity = new StringRequestEntity("FAIL * DENY", 
"text/plain", "UTF-8");
     post.setRequestEntity(entity);
     client.executeMethod(post);
-    assertEquals(400,post.getStatusCode());    
+    assertEquals(400,post.getStatusCode());
   }
   
   @Test
@@ -168,7 +170,7 @@ public class PoliciesControllerTest exte
     StringRequestEntity entity = new 
StringRequestEntity("http://dodgyplace.org FAIL DENY", "text/plain", "UTF-8");
     post.setRequestEntity(entity);
     client.executeMethod(post);
-    assertEquals(400,post.getStatusCode());    
+    assertEquals(400,post.getStatusCode());
   }
   
   @Test
@@ -176,7 +178,7 @@ public class PoliciesControllerTest exte
     HttpClient client = new HttpClient();
     setAuthenticationCredentials(client);
     PostMethod post = new PostMethod(TEST_POLICIES_SERVICE_URL_VALID);
-    StringRequestEntity entity = new 
StringRequestEntity("http://policies.test.scope http://policies.test2.origin 
ALLOW", "text/plain", "UTF-8");
+    StringRequestEntity entity = new StringRequestEntity(POLICY_TEST_VALID_2, 
"text/plain", "UTF-8");
     post.setRequestEntity(entity);
     client.executeMethod(post);
     assertEquals(201,post.getStatusCode());
@@ -185,7 +187,7 @@ public class PoliciesControllerTest exte
   @Test
   public void deletePolicyUnauthorized() throws HttpException, IOException{
     HttpClient client = new HttpClient();
-    DeleteMethod delete = new 
DeleteMethod(TEST_POLICIES_SERVICE_URL_VALID+"/http%3A%2F%2Fpolicies.test.scope%20http%3A%2F%2Fpolicies.test.origin%20ALLOW");
+    DeleteMethod delete = new DeleteMethod(TEST_POLICIES_SERVICE_URL_VALID + 
"/" + encodeString(POLICY_TEST_VALID));
     client.executeMethod(delete);
     assertEquals(401, delete.getStatusCode());   
   }
@@ -194,7 +196,7 @@ public class PoliciesControllerTest exte
   public void deletePolicyNonexistant() throws HttpException, IOException{
     HttpClient client = new HttpClient();
     setAuthenticationCredentials(client);
-    DeleteMethod delete = new 
DeleteMethod(TEST_POLICIES_SERVICE_URL_VALID+"/http%3A%2F%2Fno.such.scope%20http%3A%2F%2Fpolicies.test.origin%20ALLOW");
+    DeleteMethod delete = new DeleteMethod(TEST_POLICIES_SERVICE_URL_VALID + 
"/" + encodeString(POLICY_TEST_INVALID));
     client.executeMethod(delete);
     assertEquals(404, delete.getStatusCode());
   }
@@ -203,7 +205,7 @@ public class PoliciesControllerTest exte
   public void deletePolicy() throws HttpException, IOException{
     HttpClient client = new HttpClient();
     setAuthenticationCredentials(client);
-    DeleteMethod delete = new 
DeleteMethod(TEST_POLICIES_SERVICE_URL_VALID+"/http%3A%2F%2Fpolicies.test.scope%20http%3A%2F%2Fpolicies.test.origin%20ALLOW");
+    DeleteMethod delete = new DeleteMethod(TEST_POLICIES_SERVICE_URL_VALID + 
"/" + encodeString(POLICY_TEST_VALID));
     client.executeMethod(delete);
     assertEquals(200, delete.getStatusCode());
   }
@@ -214,6 +216,5 @@ public class PoliciesControllerTest exte
     Element policies = doc.getRootElement();
     return policies;
   }
-  
 
 }

Modified: 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/PropertiesControllerTest.java
URL: 
http://svn.apache.org/viewvc/incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/PropertiesControllerTest.java?rev=1298486&r1=1298485&r2=1298486&view=diff
==============================================================================
--- 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/PropertiesControllerTest.java
 (original)
+++ 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/PropertiesControllerTest.java
 Thu Mar  8 17:53:23 2012
@@ -183,7 +183,7 @@ public class PropertiesControllerTest ex
   public void updateProperty() throws HttpException, IOException {
 
     //
-    // Set propstest=cat using POST
+    // Set cat=felix using POST
     //
     HttpClient client = new HttpClient();
     PutMethod put = new PutMethod(TEST_PROPERTIES_SERVICE_URL_VALID);

Modified: 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/UpdatesControllerTest.java
URL: 
http://svn.apache.org/viewvc/incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/UpdatesControllerTest.java?rev=1298486&r1=1298485&r2=1298486&view=diff
==============================================================================
--- 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/UpdatesControllerTest.java
 (original)
+++ 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/UpdatesControllerTest.java
 Thu Mar  8 17:53:23 2012
@@ -16,11 +16,19 @@ package org.apache.wookie.tests.function
 import static org.junit.Assert.assertEquals;
 
 import java.io.IOException;
+import java.io.Reader;
+import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.Collection;
 
 import org.apache.commons.httpclient.HttpClient;
 import org.apache.commons.httpclient.HttpException;
+import org.apache.commons.httpclient.methods.DeleteMethod;
 import org.apache.commons.httpclient.methods.GetMethod;
 import org.apache.wookie.tests.helpers.WidgetUploader;
+import org.jdom.Document;
+import org.jdom.input.SAXBuilder;
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -34,7 +42,9 @@ import org.junit.Test;
  * org.apache.wookie.test.conformance.WidgetUpdates
  */
 public class UpdatesControllerTest extends AbstractControllerTest {
-
+  
+  protected static Collection<String> importedWidgetList = new 
ArrayList<String>();
+  
   protected static final String TEST_UPDATES_URL_VALID = TEST_SERVER_LOCATION
       + "updates";
 
@@ -45,28 +55,66 @@ public class UpdatesControllerTest exten
    */
   @BeforeClass
   public static void setup() throws IOException {
-    WidgetUploader
-        
.uploadWidget("http://dev.w3.org/2006/waf/widgets-updates/test-suite/test-cases/ta-acquisition11/001/ta-ac-001.wgt";);//
 ac11
-    WidgetUploader
-        
.uploadWidget("http://dev.w3.org/2006/waf/widgets-updates/test-suite/test-cases/ta-acquisition13/001/ta-ac-001.wgt";);//
 ac13
-    WidgetUploader
-        
.uploadWidget("http://dev.w3.org/2006/waf/widgets-updates/test-suite/test-cases/ta-processing2/003/ta-pr-003.wgt";);//
 pr203
-    WidgetUploader
-        
.uploadWidget("http://dev.w3.org/2006/waf/widgets-updates/test-suite/test-cases/ta-processing2/008/ta-pr-008.wgt";);//
 pr208
-    WidgetUploader
-        
.uploadWidget("http://dev.w3.org/2006/waf/widgets-updates/test-suite/test-cases/ta-processing2/009/ta-pr-009.wgt";);//
 pr209
-    WidgetUploader
-        
.uploadWidget("http://dev.w3.org/2006/waf/widgets-updates/test-suite/test-cases/ta-processing2/010/ta-pr-010.wgt";);//
 pr210
-    WidgetUploader
-        
.uploadWidget("http://dev.w3.org/2006/waf/widgets-updates/test-suite/test-cases/ta-processing2/011/ta-pr-011.wgt";);//
 pr211
-    WidgetUploader
-        
.uploadWidget("http://dev.w3.org/2006/waf/widgets-updates/test-suite/test-cases/ta-processing2/012/ta-pr-012.wgt";);//
 pr212
-    WidgetUploader
-        
.uploadWidget("http://dev.w3.org/2006/waf/widgets-updates/test-suite/test-cases/ta-processing2/013/ta-pr-013.wgt";);//
 pr213
-    WidgetUploader
-        
.uploadWidget("http://dev.w3.org/2006/waf/widgets-updates/test-suite/test-cases/ta-processing2/015/ta-pr-015.wgt";);//
 pr215
-    WidgetUploader
-        
.uploadWidget("http://dev.w3.org/2006/waf/widgets-updates/test-suite/test-cases/ta-processing2/016/ta-pr-016.wgt";);//
 pr216
+    storeImportedPackageId(
+        WidgetUploader
+        
.uploadWidget("http://dev.w3.org/2006/waf/widgets-updates/test-suite/test-cases/ta-acquisition11/001/ta-ac-001.wgt";)//
 ac11
+    );
+    storeImportedPackageId(
+        WidgetUploader
+        
.uploadWidget("http://dev.w3.org/2006/waf/widgets-updates/test-suite/test-cases/ta-acquisition13/001/ta-ac-001.wgt";)//
 ac13
+    );
+    storeImportedPackageId(
+        WidgetUploader
+        
.uploadWidget("http://dev.w3.org/2006/waf/widgets-updates/test-suite/test-cases/ta-processing2/003/ta-pr-003.wgt";)//
 pr203
+    );
+    storeImportedPackageId(
+        WidgetUploader
+        
.uploadWidget("http://dev.w3.org/2006/waf/widgets-updates/test-suite/test-cases/ta-processing2/008/ta-pr-008.wgt";)//
 pr208
+    );
+    storeImportedPackageId(
+        WidgetUploader
+        
.uploadWidget("http://dev.w3.org/2006/waf/widgets-updates/test-suite/test-cases/ta-processing2/009/ta-pr-009.wgt";)//
 pr209
+    );
+    storeImportedPackageId(
+        WidgetUploader
+        
.uploadWidget("http://dev.w3.org/2006/waf/widgets-updates/test-suite/test-cases/ta-processing2/010/ta-pr-010.wgt";)//
 pr210
+    );
+    storeImportedPackageId(
+        WidgetUploader
+        
.uploadWidget("http://dev.w3.org/2006/waf/widgets-updates/test-suite/test-cases/ta-processing2/011/ta-pr-011.wgt";)//
 pr211
+    );
+    storeImportedPackageId(
+        WidgetUploader
+        
.uploadWidget("http://dev.w3.org/2006/waf/widgets-updates/test-suite/test-cases/ta-processing2/012/ta-pr-012.wgt";)//
 pr212
+    );
+    storeImportedPackageId(
+        WidgetUploader
+        
.uploadWidget("http://dev.w3.org/2006/waf/widgets-updates/test-suite/test-cases/ta-processing2/013/ta-pr-013.wgt";)//
 pr213
+    );
+    storeImportedPackageId(
+        WidgetUploader
+        
.uploadWidget("http://dev.w3.org/2006/waf/widgets-updates/test-suite/test-cases/ta-processing2/015/ta-pr-015.wgt";)//
 pr215
+    );
+    storeImportedPackageId(
+        WidgetUploader
+        
.uploadWidget("http://dev.w3.org/2006/waf/widgets-updates/test-suite/test-cases/ta-processing2/016/ta-pr-016.wgt";)//
 pr216
+    );
+  }
+  
+  @AfterClass
+  public static void tearDown() throws HttpException, IOException{
+    for (String id : importedWidgetList){
+      removeWidget(id);
+    }
+    importedWidgetList.clear();
+  }
+  
+  private static void removeWidget(String identifier) throws HttpException, 
IOException{
+    HttpClient client = new HttpClient();
+    setAuthenticationCredentials(client);
+    DeleteMethod delete = new DeleteMethod(TEST_WIDGETS_SERVICE_URL_VALID + 
"/" + identifier);
+    client.executeMethod(delete);
+    delete.releaseConnection();
   }
 
   /**
@@ -101,5 +149,25 @@ public class UpdatesControllerTest exten
     int code = get.getStatusCode();
     assertEquals(200, code);
   }
+  
+  private static void storeImportedPackageId(String response){
+    if(response != null){
+      String result = getId(response);
+      importedWidgetList.add(result);
+    }
+  }
+  
+  private static String getId(String response) {
+    SAXBuilder builder = new SAXBuilder();
+    Reader in = new StringReader(response);
+    Document doc;
+    try {
+      doc = builder.build(in);
+    } catch (Exception e) {
+      e.printStackTrace();
+      return null;
+    }
+    return doc.getRootElement().getAttributeValue("id");
+  }
 
 }

Modified: 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/WidgetInstancesControllerTest.java
URL: 
http://svn.apache.org/viewvc/incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/WidgetInstancesControllerTest.java?rev=1298486&r1=1298485&r2=1298486&view=diff
==============================================================================
--- 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/WidgetInstancesControllerTest.java
 (original)
+++ 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/WidgetInstancesControllerTest.java
 Thu Mar  8 17:53:23 2012
@@ -14,15 +14,25 @@
 
 package org.apache.wookie.tests.functional;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
+import java.io.File;
 import java.io.IOException;
 
 import org.apache.commons.httpclient.HttpClient;
 import org.apache.commons.httpclient.HttpException;
+import org.apache.commons.httpclient.methods.DeleteMethod;
 import org.apache.commons.httpclient.methods.GetMethod;
 import org.apache.commons.httpclient.methods.PostMethod;
 import org.apache.commons.httpclient.methods.PutMethod;
+import org.apache.commons.httpclient.methods.multipart.FilePart;
+import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;
+import org.apache.commons.httpclient.methods.multipart.Part;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
 
@@ -31,9 +41,53 @@ import org.junit.Test;
  */
 public class WidgetInstancesControllerTest extends AbstractControllerTest {
 
-  private static final String LOCALIZED_WIDGET = 
"http://www.getwookie.org/widgets/localetest";;
-  private static String test_id_key = "";
+  private static String TEST_ID_KEY = "";
 
+  @BeforeClass
+  public static void setup() throws HttpException, IOException {
+    HttpClient client = new HttpClient();
+    
+    //
+    // Use admin credentials
+    //
+    setAuthenticationCredentials(client);
+    
+    //
+    // Setup POST method
+    //
+    PostMethod post = new PostMethod(TEST_WIDGETS_SERVICE_URL_VALID);
+    
+    //
+    // Get the locale test widget
+    //
+    File file = new File("src-tests/testdata/localetest.wgt");
+    assertTrue(file.exists());
+    
+    //
+    // Add test wgt file to POST
+    //
+    Part[] parts = { new FilePart(file.getName(), file) };
+    post.setRequestEntity(new MultipartRequestEntity(parts, post
+        .getParams()));
+    
+    //
+    // POST the file to /widgets and check we get 201 (Created)
+    //
+    client.executeMethod(post);   
+    int code = post.getStatusCode();
+    assertEquals(201,code);
+    post.releaseConnection(); 
+  }
+  
+  @AfterClass
+  public static void tearDown() throws HttpException, IOException{
+    HttpClient client = new HttpClient();
+    setAuthenticationCredentials(client);
+    DeleteMethod delete = new DeleteMethod(TEST_WIDGETS_SERVICE_URL_VALID + 
"/" + WIDGET_ID_LOCALIZED);
+    client.executeMethod(delete);
+    delete.releaseConnection();
+  }
+  
   /**
    * Test we can get an instance localized using the locale parameter
    * 
@@ -45,7 +99,7 @@ public class WidgetInstancesControllerTe
     HttpClient client = new HttpClient();
     PostMethod post = new PostMethod(TEST_INSTANCES_SERVICE_URL_VALID);
     post.setQueryString("api_key=" + API_KEY_VALID + "&widgetid="
-        + LOCALIZED_WIDGET
+        + WIDGET_ID_LOCALIZED
         + "&userid=localetest&shareddatakey=localetest&locale=fr");
     client.executeMethod(post);
     int code = post.getStatusCode();
@@ -53,7 +107,7 @@ public class WidgetInstancesControllerTe
     
assertTrue(post.getResponseBodyAsString().contains("locales/fr/index.htm"));
     assertTrue(post.getResponseBodyAsString().contains(
         "tester les param&#232;tres r&#233;gionaux"));
-    test_id_key = post.getResponseBodyAsString().substring(
+    TEST_ID_KEY = post.getResponseBodyAsString().substring(
         post.getResponseBodyAsString().indexOf("<identifier>") + 12,
         post.getResponseBodyAsString().indexOf("</identifier>"));
     post.releaseConnection();
@@ -72,7 +126,7 @@ public class WidgetInstancesControllerTe
     HttpClient client = new HttpClient();
     GetMethod get = new GetMethod(TEST_INSTANCES_SERVICE_URL_VALID);
     get.setQueryString("api_key=" + API_KEY_VALID + "&widgetid="
-        + LOCALIZED_WIDGET
+        + WIDGET_ID_LOCALIZED
         + "&userid=localetest&shareddatakey=localetest&locale=fr");
     client.executeMethod(get);
     int code = get.getStatusCode();
@@ -92,7 +146,7 @@ public class WidgetInstancesControllerTe
   public void getExistingInstanceByIdKey() throws HttpException, IOException {
     HttpClient client = new HttpClient();
     GetMethod get = new GetMethod(TEST_INSTANCES_SERVICE_URL_VALID);
-    get.setQueryString("api_key=" + API_KEY_VALID + "&id_key=" + test_id_key);
+    get.setQueryString("api_key=" + API_KEY_VALID + "&id_key=" + TEST_ID_KEY);
     client.executeMethod(get);
     int code = get.getStatusCode();
     assertEquals(200, code);
@@ -111,7 +165,7 @@ public class WidgetInstancesControllerTe
       IOException {
     HttpClient client = new HttpClient();
     GetMethod get = new GetMethod(TEST_INSTANCES_SERVICE_URL_VALID + "/"
-        + test_id_key);
+        + TEST_ID_KEY);
     get.setQueryString("api_key=" + API_KEY_VALID);
     client.executeMethod(get);
     int code = get.getStatusCode();
@@ -132,7 +186,7 @@ public class WidgetInstancesControllerTe
     HttpClient client = new HttpClient();
     PostMethod post = new PostMethod(TEST_INSTANCES_SERVICE_URL_VALID);
     post.setQueryString("api_key=" + API_KEY_VALID + "&widgetid="
-        + LOCALIZED_WIDGET
+        + WIDGET_ID_LOCALIZED
         + 
"&userid=localetest1b&shareddatakey=localetest1b&locale=fr-1694acad");
     client.executeMethod(post);
     int code = post.getStatusCode();
@@ -155,7 +209,7 @@ public class WidgetInstancesControllerTe
     HttpClient client = new HttpClient();
     PostMethod post = new PostMethod(TEST_INSTANCES_SERVICE_URL_VALID);
     post.setQueryString("api_key=" + API_KEY_VALID + "&widgetid="
-        + LOCALIZED_WIDGET
+        + WIDGET_ID_LOCALIZED
         + "&userid=localetest2&shareddatakey=localetest2&locale=bu");
     client.executeMethod(post);
     int code = post.getStatusCode();
@@ -181,7 +235,7 @@ public class WidgetInstancesControllerTe
     HttpClient client = new HttpClient();
     PostMethod post = new PostMethod(TEST_INSTANCES_SERVICE_URL_VALID);
     post.setQueryString("api_key=" + API_KEY_VALID + "&widgetid="
-        + LOCALIZED_WIDGET + "&userid=localetest3&shareddatakey=localetest3");
+        + WIDGET_ID_LOCALIZED + 
"&userid=localetest3&shareddatakey=localetest3");
     client.executeMethod(post);
     int code = post.getStatusCode();
     assertEquals(201, code);
@@ -366,5 +420,14 @@ public class WidgetInstancesControllerTe
     assertEquals("garfield", resp);
     post.releaseConnection();
   }
+  
+  @Test
+  public void TestDeleteInstance() throws HttpException, IOException {
+    HttpClient client = new HttpClient();
+    setAuthenticationCredentials(client);
+    DeleteMethod delete = new DeleteMethod(TEST_INSTANCES_SERVICE_URL_VALID + 
"?api_key=" + API_KEY_VALID + "&id_key=" + TEST_ID_KEY);
+    client.executeMethod(delete);
+    delete.releaseConnection();      
+  }
 
 }

Modified: 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/WidgetsControllerTest.java
URL: 
http://svn.apache.org/viewvc/incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/WidgetsControllerTest.java?rev=1298486&r1=1298485&r2=1298486&view=diff
==============================================================================
--- 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/WidgetsControllerTest.java
 (original)
+++ 
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/WidgetsControllerTest.java
 Thu Mar  8 17:53:23 2012
@@ -14,11 +14,11 @@
 
 package org.apache.wookie.tests.functional;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import java.io.File;
 import java.io.IOException;
-import java.net.URLEncoder;
 
 import org.apache.commons.httpclient.HttpClient;
 import org.apache.commons.httpclient.HttpException;
@@ -43,14 +43,18 @@ import org.junit.Test;
  */
 public class WidgetsControllerTest extends AbstractControllerTest {
   
+  private static String WIDGET_ID_ACCESS_TEST = 
"http://wookie.apache.org/widgets/access-test";;
+  private static String WIDGET_ID_DELETE_TEST = "http://deletetest";;
+  private static String WIDGET_ID_NOT_SUPPORTED = "http://notsupported";;
+  private static String WIDGET_ID_UPLOAD_TEST = "http://uploadtest";;
   
   @AfterClass
   public static void tearDown() throws HttpException, IOException{
     HttpClient client = new HttpClient();
     setAuthenticationCredentials(client);
-    DeleteMethod delete = new DeleteMethod(TEST_WIDGETS_SERVICE_URL_VALID + 
"/http%3A%2F%2Fwookie.apache.org%2Fwidgets%2Faccess-test");
+    DeleteMethod delete = new DeleteMethod(TEST_WIDGETS_SERVICE_URL_VALID + 
encodeString("/" + WIDGET_ID_ACCESS_TEST));
     client.executeMethod(delete);
-    delete = new DeleteMethod(TEST_WIDGETS_SERVICE_URL_VALID + 
"/http%3A%2F%2Fuploadtest");
+    delete = new DeleteMethod(TEST_WIDGETS_SERVICE_URL_VALID + 
encodeString("/" + WIDGET_ID_UPLOAD_TEST));
     client.executeMethod(delete);
   }
        
@@ -97,7 +101,7 @@ public class WidgetsControllerTest exten
   @Test
   public void getSpecificWidgetByUri() throws HttpException, IOException{
           HttpClient client = new HttpClient();
-          GetMethod get = new 
GetMethod(TEST_WIDGETS_SERVICE_URL_VALID+"/"+URLEncoder.encode("http://notsupported","UTF-8";));
+          GetMethod get = new GetMethod(TEST_WIDGETS_SERVICE_URL_VALID + 
encodeString("/" + WIDGET_ID_NOT_SUPPORTED));
           client.executeMethod(get);
           int code = get.getStatusCode();
           assertEquals(200,code);
@@ -113,7 +117,7 @@ public class WidgetsControllerTest exten
   @Test
   public void getSpecificWidgetByUri2() throws HttpException, IOException{
           HttpClient client = new HttpClient();
-          GetMethod get = new 
GetMethod(TEST_WIDGETS_SERVICE_URL_VALID+"/http://notsupported";);
+          GetMethod get = new GetMethod(TEST_WIDGETS_SERVICE_URL_VALID + "/" + 
WIDGET_ID_NOT_SUPPORTED);
           client.executeMethod(get);
           int code = get.getStatusCode();
           assertEquals(200,code);
@@ -182,7 +186,7 @@ public class WidgetsControllerTest exten
        @Test
        public void downloadWidgetPackage() throws BadWidgetZipFileException, 
BadManifestException, Exception{
     HttpClient client = new HttpClient();      
-    GetMethod get = new 
GetMethod(TEST_WIDGETS_SERVICE_URL_VALID+"/http://notsupported";);
+    GetMethod get = new GetMethod(TEST_WIDGETS_SERVICE_URL_VALID + "/" + 
WIDGET_ID_NOT_SUPPORTED);
     get.setRequestHeader("accept", "application/widget");
     get.setFollowRedirects(true);
     client.executeMethod(get);
@@ -290,14 +294,14 @@ public class WidgetsControllerTest exten
     //
     // Delete the widget
     //
-    DeleteMethod delete = new DeleteMethod(TEST_WIDGETS_SERVICE_URL_VALID + 
"/http%3A%2F%2Fdeletetest");
+    DeleteMethod delete = new DeleteMethod(TEST_WIDGETS_SERVICE_URL_VALID + 
encodeString("/" + WIDGET_ID_DELETE_TEST)); 
     client.executeMethod(delete);
     assertEquals(200, delete.getStatusCode());
     
     //
     // Check it was deleted
     //
-    GetMethod get = new GetMethod(TEST_WIDGETS_SERVICE_URL_VALID + 
"/http%3A%2F%2Fdeletetest");
+    GetMethod get = new GetMethod(TEST_WIDGETS_SERVICE_URL_VALID + 
encodeString("/" + WIDGET_ID_DELETE_TEST)); 
     client.executeMethod(get);
     assertEquals(404, get.getStatusCode());
        }
@@ -316,7 +320,7 @@ public class WidgetsControllerTest exten
     //
     setAuthenticationCredentials(client);
     
-    PostMethod post = new 
PostMethod(TEST_WIDGETS_SERVICE_URL_VALID+"/http%3A%2F%2Fuploadtest");
+    PostMethod post = new PostMethod(TEST_WIDGETS_SERVICE_URL_VALID + 
encodeString("/" + WIDGET_ID_UPLOAD_TEST)); 
     
     //
     // Use upload test widget
@@ -349,7 +353,7 @@ public class WidgetsControllerTest exten
     //
     setAuthenticationCredentials(client);
     
-    PutMethod put = new 
PutMethod(TEST_WIDGETS_SERVICE_URL_VALID+"/http%3A%2F%2Fuploadtest");
+    PutMethod put = new PutMethod(TEST_WIDGETS_SERVICE_URL_VALID + 
encodeString("/" + WIDGET_ID_UPLOAD_TEST));
     
     //
     // Use upload test widget
@@ -378,7 +382,7 @@ public class WidgetsControllerTest exten
        public void updateWidgetUnauthorized() throws HttpException, 
IOException{
           HttpClient client = new HttpClient();
     
-          PutMethod post = new 
PutMethod(TEST_WIDGETS_SERVICE_URL_VALID+"/http%3A%2F%2Fuploadtest");
+          PutMethod post = new PutMethod(TEST_WIDGETS_SERVICE_URL_VALID + 
encodeString("/" + WIDGET_ID_UPLOAD_TEST));
            
            //
            // Use upload test widget
@@ -410,8 +414,8 @@ public class WidgetsControllerTest exten
            //
            setAuthenticationCredentials(client);
            
-           PutMethod post = new 
PutMethod(TEST_WIDGETS_SERVICE_URL_VALID+"/http%3A%2F%2Fnosuchwidget");
-           
+           PutMethod post = new PutMethod(TEST_WIDGETS_SERVICE_URL_VALID + 
encodeString("/" + WIDGET_ID_INVALID));
+          
            //
            // Use upload test widget
            //
@@ -484,7 +488,7 @@ public class WidgetsControllerTest exten
            //
       HttpClient client = new HttpClient();
       setAuthenticationCredentials(client);
-           GetMethod get = new 
GetMethod(TEST_POLICIES_SERVICE_URL_VALID+"/http%3A%2F%2Fwookie.apache.org%2Fwidgets%2Faccess-test");
+           GetMethod get = new GetMethod(TEST_POLICIES_SERVICE_URL_VALID + 
encodeString("/" + WIDGET_ID_ACCESS_TEST));
            get.setRequestHeader("accepts","text/xml");
            client.executeMethod(get);
            
assertEquals(1,PoliciesControllerTest.processPolicies(get.getResponseBodyAsStream()).getChildren("policy").size());


Reply via email to