You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wookie.apache.org by sc...@apache.org on 2011/05/03 10:51:41 UTC
svn commit: r1098970 - in
/incubator/wookie/trunk/src-tests/org/apache/wookie/tests/conformance:
AbstractFunctionalConformanceTest.java PackagingAndConfiguration.java
WidgetInterface.java WidgetUpdates.java
Author: scottbw
Date: Tue May 3 08:51:41 2011
New Revision: 1098970
URL: http://svn.apache.org/viewvc?rev=1098970&view=rev
Log:
Added conformance tests for Widget Updates (see WOOKIE-103) and refactored the conformance tests to reuse a common set of utility methods
Added:
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/conformance/AbstractFunctionalConformanceTest.java
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/conformance/WidgetUpdates.java
Modified:
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/conformance/PackagingAndConfiguration.java
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/conformance/WidgetInterface.java
Added: incubator/wookie/trunk/src-tests/org/apache/wookie/tests/conformance/AbstractFunctionalConformanceTest.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src-tests/org/apache/wookie/tests/conformance/AbstractFunctionalConformanceTest.java?rev=1098970&view=auto
==============================================================================
--- incubator/wookie/trunk/src-tests/org/apache/wookie/tests/conformance/AbstractFunctionalConformanceTest.java (added)
+++ incubator/wookie/trunk/src-tests/org/apache/wookie/tests/conformance/AbstractFunctionalConformanceTest.java Tue May 3 08:51:41 2011
@@ -0,0 +1,111 @@
+/*
+ * 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.conformance;
+
+import static org.junit.Assert.fail;
+
+import java.io.IOException;
+import java.io.Reader;
+import java.io.StringReader;
+
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.apache.commons.io.IOUtils;
+import org.apache.wookie.tests.functional.AbstractControllerTest;
+import org.apache.wookie.tests.helpers.WidgetUploader;
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.input.SAXBuilder;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+
+/**
+ * Abstract superclass for conformance tests including utility functions
+ * for working with widgets and outputting results
+ */
+public abstract class AbstractFunctionalConformanceTest extends
+AbstractControllerTest {
+
+ protected static String html = "";
+
+ @BeforeClass
+ public static void setup(){
+ html = "<html><body>";
+ }
+
+ @AfterClass
+ public static void finish(){
+ html += "</body></html>";
+ System.out.println(html);
+ }
+
+ //// Utility methods
+ protected static void doTest(String widget){
+ String url;
+ try {
+ url = getWidgetUrl(widget);
+ html += "<iframe src=\""+url+"\"></iframe>";
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ protected static void outputInstance(String widgetId){
+ String url;
+ String response = instantiateWidget(widgetId);
+ url = getStartFile(response);
+ html += "<iframe src=\""+url+"\"></iframe>";
+ }
+
+ protected static String getWidgetUrl(String widgetfname) throws IOException{
+ WidgetUploader.uploadWidget(widgetfname);
+ Element widget = WidgetUploader.getLastWidget();
+ String response = instantiateWidget(widget);
+ return getStartFile(response);
+ }
+
+ protected static String instantiateWidget(Element widget){
+ return instantiateWidget(widget.getAttributeValue("identifier"));
+ }
+
+ protected static String instantiateWidget(String identifier){
+ String response = null;
+ // instantiate widget and parse results
+ try {
+ HttpClient client = new HttpClient();
+ PostMethod post = new PostMethod(TEST_INSTANCES_SERVICE_URL_VALID);
+ post.setQueryString("api_key="+API_KEY_VALID+"&widgetid="+identifier+"&userid=test&shareddatakey=test");
+ client.executeMethod(post);
+ response = IOUtils.toString(post.getResponseBodyAsStream());
+ post.releaseConnection();
+ }
+ catch (Exception e) {
+ fail("failed to instantiate widget");
+ }
+ return response;
+ }
+
+ protected static String getStartFile(String response){
+ SAXBuilder builder = new SAXBuilder();
+ Reader in = new StringReader(response);
+ Document doc;
+ try {
+ doc = builder.build(in);
+ } catch (Exception e) {
+ return null;
+ }
+ return doc.getRootElement().getChild("url").getText();
+ }
+
+}
Modified: incubator/wookie/trunk/src-tests/org/apache/wookie/tests/conformance/PackagingAndConfiguration.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src-tests/org/apache/wookie/tests/conformance/PackagingAndConfiguration.java?rev=1098970&r1=1098969&r2=1098970&view=diff
==============================================================================
--- incubator/wookie/trunk/src-tests/org/apache/wookie/tests/conformance/PackagingAndConfiguration.java (original)
+++ incubator/wookie/trunk/src-tests/org/apache/wookie/tests/conformance/PackagingAndConfiguration.java Tue May 3 08:51:41 2011
@@ -19,23 +19,16 @@ import static org.junit.Assert.assertNot
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import java.io.Reader;
-import java.io.StringReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.GetMethod;
-import org.apache.commons.httpclient.methods.PostMethod;
-import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
-import org.apache.wookie.tests.functional.AbstractControllerTest;
import org.apache.wookie.tests.helpers.WidgetUploader;
import org.apache.wookie.w3c.util.WidgetPackageUtils;
-import org.jdom.Document;
import org.jdom.Element;
-import org.jdom.input.SAXBuilder;
import org.junit.Ignore;
import org.junit.Test;
@@ -50,7 +43,7 @@ import org.junit.Test;
* @author scott
*
*/
-public class PackagingAndConfiguration extends AbstractControllerTest {
+public class PackagingAndConfiguration extends AbstractFunctionalConformanceTest {
// 1 files
@Test
public void b5(){
@@ -1195,7 +1188,7 @@ public class PackagingAndConfiguration e
*/
// Utility methods
- private Element processWidgetNoErrors(String widgetfname){
+ protected Element processWidgetNoErrors(String widgetfname){
try {
//File file = new File("src-tests/testdata/conformance/"+widgetfname);
String error = WidgetUploader.uploadWidget(widgetfname);
@@ -1213,37 +1206,6 @@ public class PackagingAndConfiguration e
return null;
}
- private String instantiateWidget(Element widget){
- String response = null;
- String widgetUri = widget.getAttributeValue("identifier");
- // instantiate widget and parse results
- try {
- HttpClient client = new HttpClient();
- PostMethod post = new PostMethod(TEST_INSTANCES_SERVICE_URL_VALID);
- post.setQueryString("api_key="+API_KEY_VALID+"&widgetid="+widgetUri+"&userid=test&shareddatakey=test");
- client.executeMethod(post);
- response = IOUtils.toString(post.getResponseBodyAsStream());
- post.releaseConnection();
- }
- catch (Exception e) {
- //e.printStackTrace();
- fail("failed to instantiate widget");
- }
- return response;
- }
-
- private String getStartFile(String response){
- SAXBuilder builder = new SAXBuilder();
- Reader in = new StringReader(response);
- Document doc;
- try {
- doc = builder.build(in);
- } catch (Exception e) {
- return null;
- }
- return doc.getRootElement().getChild("url").getText();
- }
-
private String getStartFileEncoding(Element widget){
String response = instantiateWidget(widget);
String startFile = getStartFile(response);
Modified: incubator/wookie/trunk/src-tests/org/apache/wookie/tests/conformance/WidgetInterface.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src-tests/org/apache/wookie/tests/conformance/WidgetInterface.java?rev=1098970&r1=1098969&r2=1098970&view=diff
==============================================================================
--- incubator/wookie/trunk/src-tests/org/apache/wookie/tests/conformance/WidgetInterface.java (original)
+++ incubator/wookie/trunk/src-tests/org/apache/wookie/tests/conformance/WidgetInterface.java Tue May 3 08:51:41 2011
@@ -13,22 +13,6 @@
*/
package org.apache.wookie.tests.conformance;
-import static org.junit.Assert.fail;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.io.StringReader;
-
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.methods.PostMethod;
-import org.apache.commons.io.IOUtils;
-import org.apache.wookie.tests.functional.AbstractControllerTest;
-import org.apache.wookie.tests.helpers.WidgetUploader;
-import org.jdom.Document;
-import org.jdom.Element;
-import org.jdom.input.SAXBuilder;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
import org.junit.Test;
/**
@@ -38,20 +22,7 @@ import org.junit.Test;
* Currently this just outputs HTML that you need to paste into a text file and view
* in your browser to "eyeball" the results. But at least its a start
*/
-public class WidgetInterface extends AbstractControllerTest{
-
- private static String html = "";
-
- @BeforeClass
- public static void setup(){
- html = "<html><body>";
- }
-
- @AfterClass
- public static void finish(){
- html += "</body></html>";
- System.out.println(html);
- }
+public class WidgetInterface extends AbstractFunctionalConformanceTest{
@Test
public void taza(){
@@ -207,55 +178,4 @@ public class WidgetInterface extends Abs
doTest("http://dev.w3.org/2006/waf/widgets-api/test-suite/test-cases/ta-aa/au/au.wgt");
}
-
- //// Utility methods
- private void doTest(String widget){
- String url;
- try {
- url = getWidgetUrl(widget);
- html += "<iframe src=\""+url+"\"></iframe>";
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- private String getWidgetUrl(String widgetfname) throws IOException{
- WidgetUploader.uploadWidget(widgetfname);
- Element widget = WidgetUploader.getLastWidget();
- String response = instantiateWidget(widget);
- return getStartFile(response);
- }
-
- /// Reused from PackagingAndConfiguration - consider refactoring these
- private String instantiateWidget(Element widget){
- String response = null;
- String widgetUri = widget.getAttributeValue("identifier");
- // instantiate widget and parse results
- try {
- HttpClient client = new HttpClient();
- PostMethod post = new PostMethod(TEST_INSTANCES_SERVICE_URL_VALID);
- post.setQueryString("api_key="+API_KEY_VALID+"&widgetid="+widgetUri+"&userid=test&shareddatakey=test");
- client.executeMethod(post);
- response = IOUtils.toString(post.getResponseBodyAsStream());
- post.releaseConnection();
- }
- catch (Exception e) {
- //e.printStackTrace();
- fail("failed to instantiate widget");
- }
- return response;
- }
-
- private String getStartFile(String response){
- SAXBuilder builder = new SAXBuilder();
- Reader in = new StringReader(response);
- Document doc;
- try {
- doc = builder.build(in);
- } catch (Exception e) {
- return null;
- }
- return doc.getRootElement().getChild("url").getText();
- }
-
}
Added: incubator/wookie/trunk/src-tests/org/apache/wookie/tests/conformance/WidgetUpdates.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src-tests/org/apache/wookie/tests/conformance/WidgetUpdates.java?rev=1098970&view=auto
==============================================================================
--- incubator/wookie/trunk/src-tests/org/apache/wookie/tests/conformance/WidgetUpdates.java (added)
+++ incubator/wookie/trunk/src-tests/org/apache/wookie/tests/conformance/WidgetUpdates.java Tue May 3 08:51:41 2011
@@ -0,0 +1,93 @@
+/*
+ * 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.conformance;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import java.io.IOException;
+
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.apache.wookie.tests.helpers.WidgetUploader;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * Test cases for Widget Updates
+ */
+public class WidgetUpdates extends AbstractFunctionalConformanceTest{
+
+ protected static final String TEST_UPDATES_URL_VALID = TEST_SERVER_LOCATION+"updates";
+
+ @BeforeClass
+ public static void setup(){
+ html = "<html><body>";
+
+ // Install all the test widgets
+ try {
+ 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
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Test
+ public void update(){
+ // Install all updates by calling POST /updates
+ try {
+ HttpClient client = new HttpClient();
+ PostMethod post = new PostMethod(TEST_UPDATES_URL_VALID);
+ post.setQueryString("api_key="+API_KEY_VALID+"&widgetid="+WIDGET_ID_VALID+"&userid=test&shareddatakey=propstest");
+ setAuthenticationCredentials(client);
+ client.executeMethod(post);
+ int code = post.getStatusCode();
+ assertEquals(201,code);
+ post.releaseConnection();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ fail("post failed");
+ }
+
+ // Instantiate and output
+ outputInstance("ta-acquisition11:1");
+ outputInstance("ta-acquisition13:1");
+ outputInstance("http://a.net/widget/ta-xx/042");
+ outputInstance("ta-processing2:8");
+ outputInstance("ta-processing2:9");
+ outputInstance("ta-processing2:10");
+ outputInstance("ta-processing2:11");
+ outputInstance("ta-processing2:12");
+ outputInstance("ta-processing2:13");
+ outputInstance("ta-processing2:15");
+ outputInstance("ta-processing2:16");
+
+ }
+
+
+
+
+
+}