myexperiment-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[myexperiment-hackers] [3098] trunk/test/functional/api_controller_test.


From: noreply
Subject: [myexperiment-hackers] [3098] trunk/test/functional/api_controller_test.rb: added tests for workflow version related parts of the API
Date: Tue, 21 Aug 2012 22:37:13 +0000 (UTC)

Revision
3098
Author
dgc
Date
2012-08-21 22:37:13 +0000 (Tue, 21 Aug 2012)

Log Message

added tests for workflow version related parts of the API

Modified Paths

Diff

Modified: trunk/test/functional/api_controller_test.rb (3097 => 3098)


--- trunk/test/functional/api_controller_test.rb	2012-08-21 22:14:16 UTC (rev 3097)
+++ trunk/test/functional/api_controller_test.rb	2012-08-21 22:37:13 UTC (rev 3098)
@@ -45,7 +45,7 @@
 
     extra_workflows = Workflow.find(:all) - existing_workflows
 
-    assert_equal(extra_workflows.length, 1)
+    assert_equal(1, extra_workflows.length)
 
     @workflow_id = extra_workflows.first.id
 
@@ -94,6 +94,67 @@
     assert_equal(title2,      response.find_first('/workflow/title').inner_xml)
     assert_equal(description, response.find_first('/workflow/description').inner_xml)
 
+    # upload a new version of the workflow
+
+    content2 = Base64.encode64(File.read('test/fixtures/files/workflow_xkcd.t2flow'))
+
+    # post a new version of the workflow
+
+    rest_request(:post, 'workflow', "<?xml version='1.0'?>
+      <workflow>
+        <type>Taverna 2</type>
+        <content>#{content2}</content>
+      </workflow>", "id" => @workflow_id)
+
+    assert_response(:success)
+
+    workflow = Workflow.find(@workflow_id)
+
+    assert_equal(2, workflow.versions.length)
+
+    # get different versions of the workflow
+
+    response = rest_request(:get, 'workflow', nil, "id" => @workflow_id, "version" => "1",
+        "elements" => "title,type,content-type,content,components")
+
+    assert_response(:success)
+  
+    assert_equal(title2, response.find_first('/workflow/title').inner_xml)
+    assert_equal("Taverna 1",  response.find_first('/workflow/type').inner_xml)
+    assert_equal("application/vnd.taverna.scufl+xml", response.find_first('/workflow/content-type').inner_xml)
+    assert_equal(1815, Base64.decode64(response.find_first('/workflow/content').inner_xml).length)
+
+    response = rest_request(:get, 'workflow', nil, "id" => @workflow_id, "version" => "2",
+        "elements" => "title,type,content-type,content,components")
+
+    assert_equal("Fetch today's xkcd comic", response.find_first('/workflow/title').inner_xml)
+    assert_equal("Taverna 2",  response.find_first('/workflow/type').inner_xml)
+    assert_equal("application/vnd.taverna.t2flow+xml", response.find_first('/workflow/content-type').inner_xml)
+    assert_equal(30218, Base64.decode64(response.find_first('/workflow/content').inner_xml).length)
+
+    # edit a particular version of a workflow
+
+    rest_request(:put, 'workflow', "<?xml version='1.0'?>
+      <workflow>
+        <title>Oranges</title>
+      </workflow>", "id" => @workflow_id, "version" => "1")
+
+    assert_response(:success)
+
+    # Verify that only version 1 was changed
+
+    response = rest_request(:get, 'workflow', nil, "id" => @workflow_id, "version" => "1",
+        "elements" => "title")
+
+    assert_response(:success)
+  
+    assert_equal("Oranges", response.find_first('/workflow/title').inner_xml)
+
+    response = rest_request(:get, 'workflow', nil, "id" => @workflow_id, "version" => "2",
+        "elements" => "title")
+
+    assert_equal("Fetch today's xkcd comic", response.find_first('/workflow/title').inner_xml)
+
     # delete the workflow
 
     rest_request(:delete, 'workflow', nil, "id" => @workflow_id)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]