+require "test_helper"
+
+class ClientApplicationTest < ActiveSupport::TestCase
+ fixtures :client_applications
+
+ def test_url_valid
+ ok = ["http://example.com/test", "https://example.com/test"]
+ bad = ["", "ftp://example.com/test", "myapp://somewhere"]
+
+ ok.each do |url|
+ app = client_applications(:normal_user_app).dup
+ app.url = url
+ assert app.valid?, "#{url} is invalid, when it should be"
+ end
+
+ bad.each do |url|
+ app = client_applications(:normal_user_app)
+ app.url = url
+ assert !app.valid?, "#{url} is valid when it shouldn't be"
+ end
+ end
+
+ def test_support_url_valid
+ ok = ["", "http://example.com/test", "https://example.com/test"]
+ bad = ["ftp://example.com/test", "myapp://somewhere", "gibberish"]
+
+ ok.each do |url|
+ app = client_applications(:normal_user_app)
+ app.support_url = url
+ assert app.valid?, "#{url} is invalid, when it should be"
+ end
+
+ bad.each do |url|
+ app = client_applications(:normal_user_app)
+ app.support_url = url
+ assert !app.valid?, "#{url} is valid when it shouldn't be"
+ end
+ end
+
+ def test_callback_url_valid
+ ok = ["", "http://example.com/test", "https://example.com/test", "ftp://example.com/test", "myapp://somewhere"]
+ bad = ["gibberish"]
+
+ ok.each do |url|
+ app = client_applications(:normal_user_app)
+ app.callback_url = url
+ assert app.valid?, "#{url} is invalid, when it should be"
+ end
+
+ bad.each do |url|
+ app = client_applications(:normal_user_app)
+ app.callback_url = url
+ assert !app.valid?, "#{url} is valid when it shouldn't be"
+ end
+ end
+end