2014-07-15 01:36:31 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								@image @project
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								Feature: Manage images
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  <% providers = @formatter.get_fixture('providers/without_static') %>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  <% providers.each do |provider| %>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    <% other_providers = providers.clone - [provider] %>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    <% other_providers.each do |oprovider| %>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  @<%= provider %>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  Scenario: Create <%= provider %> image with '<%= oprovider %>' provider (invalid image id for provider)
							 | 
						
					
						
							
								
									
										
										
										
											2014-07-15 01:36:31 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    When I send POST '/v2.0/image' query with JSON body
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    """
							 | 
						
					
						
							
								
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    <%= @formatter.json(provider + '/image', {value: {"provider" => oprovider}}) %>
							 | 
						
					
						
							
								
									
										
										
										
											2014-07-15 01:36:31 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    """
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    Then response should be '400'
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    <% end #other providers%>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    <% image = @formatter.get_fixture(provider + '/image') %>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    <% image.keys.each do |key| %>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    <% [[], {}].each do |invalid_value| %>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  @<%= provider %>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  Scenario: Create <%= provider %> image with invalid <%= key %> value: '<%= invalid_value %>'
							 | 
						
					
						
							
								
									
										
										
										
											2014-07-15 01:36:31 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    When I send POST '/v2.0/image' query with JSON body
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    """
							 | 
						
					
						
							
								
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    <%= @formatter.json(provider + '/image', {value: {key => invalid_value}}) %>
							 | 
						
					
						
							
								
									
										
										
										
											2014-07-15 01:36:31 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    """
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    Then response should be '400'
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    <% end #invalid values%>
							 | 
						
					
						
							
								
									
										
										
										
											2014-07-15 01:36:31 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    <% end # keys%>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    <% (image.keys - ["bootstrap_template"]).each do |key| %>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  @<%= provider %>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  Scenario: Create <%= provider %> image with invalid <%= key %> value: 'nil'
							 | 
						
					
						
							
								
									
										
										
										
											2014-07-15 01:36:31 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    When I send POST '/v2.0/image' query with JSON body
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    """
							 | 
						
					
						
							
								
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    <%= @formatter.json(provider + '/image', {value: {key => nil}}) %>
							 | 
						
					
						
							
								
									
										
										
										
											2014-07-15 01:36:31 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    """
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    Then response should be '400'
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    <% end %>
							 | 
						
					
						
							
								
									
										
										
										
											2014-07-15 01:36:31 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    <% (image.keys - ["name", "remote_user"]).each do |key| %>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  @<%= provider %>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  Scenario: Create <%= provider %> image with invalid <%= key %> value: 'foo'
							 | 
						
					
						
							
								
									
										
										
										
											2014-07-15 01:36:31 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    When I send POST '/v2.0/image' query with JSON body
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    """
							 | 
						
					
						
							
								
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    <%= @formatter.json(provider + '/image', {value: {key => "foo"}}) %>
							 | 
						
					
						
							
								
									
										
										
										
											2014-07-15 01:36:31 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    """
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    Then response should be '400'
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    <% end %>
							 | 
						
					
						
							
								
									
										
										
										
											2014-07-15 01:36:31 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  @<%= provider %>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  Scenario: Create <%= provider %> image
							 | 
						
					
						
							
								
									
										
										
										
											2014-07-15 01:36:31 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    When I send POST '/v2.0/image' query with JSON body
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    """
							 | 
						
					
						
							
								
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    <%= @formatter.json(provider + '/image') %>
							 | 
						
					
						
							
								
									
										
										
										
											2014-07-15 01:36:31 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    """
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    Then response should be '201'
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    And the Content-Type header should include 'application/json'
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  @<%= provider %>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  Scenario: Check new <%= provider %> image
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    When I send GET '/v2.0/image/<%= image["id"] %>' query
							 | 
						
					
						
							
								
									
										
										
										
											2014-07-15 01:36:31 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    Then response should be '200'
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    And the Content-Type header should include 'application/json'
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    And the JSON response should be an object
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    And response should be JSON object like:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    """
							 | 
						
					
						
							
								
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    <%= @formatter.json(provider + '/image') %>
							 | 
						
					
						
							
								
									
										
										
										
											2014-07-15 01:36:31 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    """
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  @<%= provider %>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  Scenario: Get <%= provider %> image without privileges
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    When I send GET '/v2.0/image/<%= image["id"] %>' query with user without privileges
							 | 
						
					
						
							
								
									
										
										
										
											2014-07-15 01:36:31 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    Then response should be '401'
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  @<%= provider %>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  Scenario: Get list of <%= provider %> images with header 'Accept' value is not 'application/json'
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    When I send GET '/v2.0/image/<%= image["id"] %>' query with header 'Accept' value 'application/xml'
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    Then response should be '406'
							 | 
						
					
						
							
								
									
										
										
										
											2014-07-15 01:36:31 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  <% end %>
							 | 
						
					
						
							
								
									
										
										
										
											2014-07-15 01:36:31 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 |