| 
					
				 | 
			
			
				@@ -150,20 +150,21 @@ class SessionTest < Test::Unit::TestCase 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     assert_equal(ShopifyAPI::ApiVersion.new(handle: '2019-01'), ShopifyAPI::Base.api_version) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  test "create_permission_url returns correct url with single scope no redirect uri" do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ShopifyAPI::Session.setup(:api_key => "My_test_key", :secret => "My test secret") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  test "create_permission_url requires redirect_uri" do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ShopifyAPI::Session.setup(api_key: "My_test_key", secret: "My test secret") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     session = ShopifyAPI::Session.new( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       domain: 'http://localhost.myshopify.com', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       token: 'any-token', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       api_version: any_api_version 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     scope = ["write_products"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    permission_url = session.create_permission_url(scope) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    assert_equal "https://localhost.myshopify.com/admin/oauth/authorize?client_id=My_test_key&scope=write_products", permission_url 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert_raises(ArgumentError) do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      session.create_permission_url(scope) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   test "create_permission_url returns correct url with single scope and redirect uri" do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ShopifyAPI::Session.setup(:api_key => "My_test_key", :secret => "My test secret") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ShopifyAPI::Session.setup(api_key: "My_test_key", secret: "My test secret") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     session = ShopifyAPI::Session.new( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       domain: 'http://localhost.myshopify.com', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       token: 'any-token', 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -174,28 +175,40 @@ class SessionTest < Test::Unit::TestCase 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     assert_equal "https://localhost.myshopify.com/admin/oauth/authorize?client_id=My_test_key&scope=write_products&redirect_uri=http://my_redirect_uri.com", permission_url 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  test "create_permission_url returns correct url with dual scope no redirect uri" do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ShopifyAPI::Session.setup(:api_key => "My_test_key", :secret => "My test secret") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  test "create_permission_url returns correct url with dual scope" do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ShopifyAPI::Session.setup(api_key: "My_test_key", secret: "My test secret") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     session = ShopifyAPI::Session.new( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       domain: 'http://localhost.myshopify.com', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       token: 'any-token', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       api_version: any_api_version 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     scope = ["write_products","write_customers"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    permission_url = session.create_permission_url(scope) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    assert_equal "https://localhost.myshopify.com/admin/oauth/authorize?client_id=My_test_key&scope=write_products,write_customers", permission_url 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    permission_url = session.create_permission_url(scope, "http://my_redirect_uri.com") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert_equal "https://localhost.myshopify.com/admin/oauth/authorize?client_id=My_test_key&scope=write_products,write_customers&redirect_uri=http://my_redirect_uri.com", permission_url 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  test "create_permission_url returns correct url with no scope" do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ShopifyAPI::Session.setup(api_key: "My_test_key", secret: "My test secret") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    session = ShopifyAPI::Session.new( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      domain: 'http://localhost.myshopify.com', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      token: 'any-token', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      api_version: any_api_version 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    scope = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    permission_url = session.create_permission_url(scope, "http://my_redirect_uri.com") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert_equal "https://localhost.myshopify.com/admin/oauth/authorize?client_id=My_test_key&scope=&redirect_uri=http://my_redirect_uri.com", permission_url 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  test "create_permission_url returns correct url with no scope no redirect uri" do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ShopifyAPI::Session.setup(:api_key => "My_test_key", :secret => "My test secret") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  test "create_permission_url returns correct url with state" do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ShopifyAPI::Session.setup(api_key: "My_test_key", secret: "My test secret") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     session = ShopifyAPI::Session.new( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       domain: 'http://localhost.myshopify.com', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       token: 'any-token', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       api_version: any_api_version 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     scope = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    permission_url = session.create_permission_url(scope) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    assert_equal "https://localhost.myshopify.com/admin/oauth/authorize?client_id=My_test_key&scope=", permission_url 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    permission_url = session.create_permission_url(scope, "http://my_redirect_uri.com", state: "My nonce") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert_equal "https://localhost.myshopify.com/admin/oauth/authorize?client_id=My_test_key&scope=&redirect_uri=http://my_redirect_uri.com&state=My%20nonce", permission_url 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   test "raise exception if code invalid in request token" do 
			 |