From 30f406de954bac1da5fef7cdd753c0af16f11051 Mon Sep 17 00:00:00 2001 From: Azul Date: Wed, 23 Jan 2013 13:13:41 +0100 Subject: added unit tests for user presenter changed the way the presenter works. Will need functional testing --- .../unit/webfinger/.user_presenter_test.rb.swp | Bin 0 -> 12288 bytes users/test/unit/webfinger/user_presenter_test.rb | 49 +++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 users/test/unit/webfinger/.user_presenter_test.rb.swp create mode 100644 users/test/unit/webfinger/user_presenter_test.rb (limited to 'users/test') diff --git a/users/test/unit/webfinger/.user_presenter_test.rb.swp b/users/test/unit/webfinger/.user_presenter_test.rb.swp new file mode 100644 index 0000000..5b92867 Binary files /dev/null and b/users/test/unit/webfinger/.user_presenter_test.rb.swp differ diff --git a/users/test/unit/webfinger/user_presenter_test.rb b/users/test/unit/webfinger/user_presenter_test.rb new file mode 100644 index 0000000..7f7a0d4 --- /dev/null +++ b/users/test/unit/webfinger/user_presenter_test.rb @@ -0,0 +1,49 @@ +require 'test_helper' +require 'webfinger' +require 'json' + +class Webfinger::UserPresenterTest < ActiveSupport::TestCase + + + setup do + @user = stub( + username: 'testuser', + email_address: "testuser@#{APP_CONFIG[:domain]}" + ) + @request = stub( + host: APP_CONFIG[:domain] + ) + end + + test "user without key has no links" do + @user.stubs :public_key => nil + presenter = Webfinger::UserPresenter.new(@user, @request) + assert_equal Hash.new, presenter.links + end + + test "user with key has corresponding link" do + @user.stubs :public_key => "here's a key" + presenter = Webfinger::UserPresenter.new(@user, @request) + assert_equal [:public_key], presenter.links.keys + assert_equal "PGP", presenter.links[:public_key][:type] + assert_equal presenter.send(:key), presenter.links[:public_key][:href] + end + + test "key is base64 encoded" do + @user.stubs :public_key => "here's a key" + presenter = Webfinger::UserPresenter.new(@user, @request) + assert_equal Base64.encode64(@user.public_key), presenter.send(:key) + end + + test "creates proper json representation" do + @user.stubs :public_key => "here's a key" + presenter = Webfinger::UserPresenter.new(@user, @request) + hash = JSON.parse presenter.to_json + assert_equal ["subject", "links", "aliases"].sort, hash.keys.sort + hash.each do |key, value| + assert_equal presenter.send(key.to_sym).to_json, value.to_json + end + end + + +end -- cgit v1.2.3 From efb9f511f426b9d6f3af63608e77f80c4b823fb0 Mon Sep 17 00:00:00 2001 From: Azul Date: Wed, 23 Jan 2013 15:52:38 +0100 Subject: added a small test for HostMetaPresenter and using links hash in xml view --- .../unit/webfinger/.user_presenter_test.rb.swp | Bin 12288 -> 0 bytes .../unit/webfinger/host_meta_presenter_test.rb | 24 +++++++++++++++++++++ 2 files changed, 24 insertions(+) delete mode 100644 users/test/unit/webfinger/.user_presenter_test.rb.swp create mode 100644 users/test/unit/webfinger/host_meta_presenter_test.rb (limited to 'users/test') diff --git a/users/test/unit/webfinger/.user_presenter_test.rb.swp b/users/test/unit/webfinger/.user_presenter_test.rb.swp deleted file mode 100644 index 5b92867..0000000 Binary files a/users/test/unit/webfinger/.user_presenter_test.rb.swp and /dev/null differ diff --git a/users/test/unit/webfinger/host_meta_presenter_test.rb b/users/test/unit/webfinger/host_meta_presenter_test.rb new file mode 100644 index 0000000..af86404 --- /dev/null +++ b/users/test/unit/webfinger/host_meta_presenter_test.rb @@ -0,0 +1,24 @@ +require 'test_helper' +require 'webfinger' +require 'json' + +class Webfinger::HostMetaPresenterTest < ActiveSupport::TestCase + + setup do + @request = stub( + url: "https://#{APP_CONFIG[:domain]}/.well-known/host-meta" + ) + @meta = Webfinger::HostMetaPresenter.new(@request) + end + + test "creates proper json" do + hash = JSON.parse @meta.to_json + assert_equal ["subject", "links"].sort, hash.keys.sort + hash.each do |key, value| + assert_equal @meta.send(key.to_sym).to_json, value.to_json + end + end + +end + + -- cgit v1.2.3 From c7de46aba95085baaba3775671a47182d781221a Mon Sep 17 00:00:00 2001 From: Azul Date: Wed, 23 Jan 2013 16:18:38 +0100 Subject: functional test for webfinger --- users/test/functional/webfinger_controller_test.rb | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 users/test/functional/webfinger_controller_test.rb (limited to 'users/test') diff --git a/users/test/functional/webfinger_controller_test.rb b/users/test/functional/webfinger_controller_test.rb new file mode 100644 index 0000000..6597b69 --- /dev/null +++ b/users/test/functional/webfinger_controller_test.rb @@ -0,0 +1,33 @@ +require 'test_helper' + +class WebfingerControllerTest < ActionController::TestCase + + test "get host meta xml" do + get :host_meta, :format => :xml + assert_response :success + assert_equal "application/xml", response.content_type + end + + test "get host meta json" do + get :host_meta, :format => :json + assert_response :success + assert_equal "application/json", response.content_type + end + + test "get user webfinger xml" do + @user = stub_record :user, :public_key => 'my public key' + User.stubs(:find_by_login).with(@user.login).returns(@user) + get :search, :q => @user.email_address.to_s, :format => :xml + assert_response :success + assert_equal "application/xml", response.content_type + end + + test "get user webfinger json" do + @user = stub_record :user, :public_key => 'my public key' + User.stubs(:find_by_login).with(@user.login).returns(@user) + get :search, :q => @user.email_address.to_s, :format => :json + assert_response :success + assert_equal "application/json", response.content_type + end + +end -- cgit v1.2.3 From 9d053b6c9b61c68bf11f95bcb37631a518f1fba4 Mon Sep 17 00:00:00 2001 From: jessib Date: Thu, 24 Jan 2013 11:38:11 -0800 Subject: Removing aliases from webfinger as the link wouldn't work anyway, and don't want to leak ID information. --- users/test/unit/webfinger/user_presenter_test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'users/test') diff --git a/users/test/unit/webfinger/user_presenter_test.rb b/users/test/unit/webfinger/user_presenter_test.rb index 7f7a0d4..04aeb22 100644 --- a/users/test/unit/webfinger/user_presenter_test.rb +++ b/users/test/unit/webfinger/user_presenter_test.rb @@ -39,7 +39,7 @@ class Webfinger::UserPresenterTest < ActiveSupport::TestCase @user.stubs :public_key => "here's a key" presenter = Webfinger::UserPresenter.new(@user, @request) hash = JSON.parse presenter.to_json - assert_equal ["subject", "links", "aliases"].sort, hash.keys.sort + assert_equal ["subject", "links"].sort, hash.keys.sort hash.each do |key, value| assert_equal presenter.send(key.to_sym).to_json, value.to_json end -- cgit v1.2.3