From c1a7d9b7c2c848aedda0efd113567b049590323e Mon Sep 17 00:00:00 2001
From: Andreas Stephanides
Date: Tue, 1 Sep 2015 10:03:01 +0200
Subject: [PATCH] AutoCommit Die Sep 1 10:03:01 CEST 2015
---
app/models/fetprofile.rb | 2 +
app/views/fetprofiles/_fetprofile.html.erb | 1 +
app/views/fetprofiles/show.html.erb | 1 +
config/routes.rb | 22 +++++---
spec/spec_helper.rb | 3 ++
.../fetprofiles/fetprofile.html.erb_spec.rb | 20 +++++--
spec/views/fetprofiles/show.html.erb_spec.rb | 53 +++++++++++++++++--
7 files changed, 87 insertions(+), 15 deletions(-)
diff --git a/app/models/fetprofile.rb b/app/models/fetprofile.rb
index 19bbd0e..fbabb4d 100644
--- a/app/models/fetprofile.rb
+++ b/app/models/fetprofile.rb
@@ -78,3 +78,5 @@ class Fetprofile < ActiveRecord::Base
end
end
+
+
diff --git a/app/views/fetprofiles/_fetprofile.html.erb b/app/views/fetprofiles/_fetprofile.html.erb
index b934e62..e96a277 100644
--- a/app/views/fetprofiles/_fetprofile.html.erb
+++ b/app/views/fetprofiles/_fetprofile.html.erb
@@ -2,3 +2,4 @@
<%= link_to fetprofile, {class: :linkbox} do %>
<%= render :partial=>"fetprofiles/compact", :locals=>{:fetprofile=>fetprofile} %>
<% end %>
+<%= root_path() %>
diff --git a/app/views/fetprofiles/show.html.erb b/app/views/fetprofiles/show.html.erb
index be47657..de3d203 100644
--- a/app/views/fetprofiles/show.html.erb
+++ b/app/views/fetprofiles/show.html.erb
@@ -51,6 +51,7 @@ end
<%= @fetprofile.desc %>
<%= render partial: "interninfo", object: @fetprofile if can?(:seeintern, @fetprofile) %>
+
<% @memberships.each do |m| %>
-
diff --git a/config/routes.rb b/config/routes.rb
index 6dc5c56..8b404e4 100755
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -8,7 +8,15 @@
resources :comments, contstraints: {id: /[0-9]+/}, only: :show
-
+## Inserted for testing tests
+ resources :members , controller: :fetprofiles , as: :fetprofiles do
+ collection do
+ get 'verwalten'
+ get 'internlist'
+ end
+ end
+
+ # #-------------------------
namespace :survey do
resources :questions do
@@ -130,12 +138,12 @@ end
get 'verwalten'
end
end
- resources :fetprofiles, as: :fetprofiles_bak do
- collection do
- get 'verwalten'
- get 'internlist'
- end
- end
+# resources :fetprofiles, as: :fetprofiles_bak do
+# collection do
+# get 'verwalten'
+# get 'internlist'
+# end
+# end
resources :members , controller: :fetprofiles , as: :fetprofiles do
collection do
get 'verwalten'
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index b9dd90f..1fcbb8b 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -14,6 +14,9 @@ Dir[Rails.root.join("spec/controllers/shared_examples/**/*.rb")].each {|f| requi
RSpec.configure do |config|
config.include Devise::TestHelpers, :type => :controller
config.extend ControllerMacros, :type => :controller
+ config.include Devise::TestHelpers, :type => :view
+config.include RSpecHtmlMatchers, :type => :view
+
end
diff --git a/spec/views/fetprofiles/fetprofile.html.erb_spec.rb b/spec/views/fetprofiles/fetprofile.html.erb_spec.rb
index f69cb8a..12c992f 100644
--- a/spec/views/fetprofiles/fetprofile.html.erb_spec.rb
+++ b/spec/views/fetprofiles/fetprofile.html.erb_spec.rb
@@ -1,8 +1,10 @@
require 'spec_helper'
-describe "fetprofiles/show", :type => :view do
+describe "fetprofiles/_fetprofile", :type => :view do
include RSpecHtmlMatchers
- before(:each) do
+include Devise::TestHelpers
+include Rails.application.routes.url_helpers
+ before(:each) do
# @fetprofile =
#assign(:fetprofile, stub_model(Fetprofile, FactoryGirl.attributes_for(:fetprofile)))
default_url_options[:locale] = :de
@@ -10,8 +12,20 @@ describe "fetprofiles/show", :type => :view do
# assign(:fetprofile,@fetprofile)
# assign(:memberships, [])
end
+
+ it "has access to url_helpers" do
+ expect(fetprofile_path(@fetprofile,locale: "de",theme: nil)).to match /#{@fetprofile.id}/
+ end
+
+ it "has access to url_helpers without setting nil params" do
+ expect(fetprofile_path(@fetprofile)).to match /#{@fetprofile.id}/
+ end
it "renders a link" do
- render partial: "fetprofiles/fetprofile"
+ allow(view).to receive(:default_url_options).and_return({locale: "de"})
+# allow(view).to receive(:fetprofile_path).and_return("")
+
+# view.stub!(:fetprofile_path).and_return("path")
+ render partial: "fetprofiles/fetprofile", locals: {fetprofile: @fetprofile}
expect(rendered).to have_tag("a.linkbox")
end
end
diff --git a/spec/views/fetprofiles/show.html.erb_spec.rb b/spec/views/fetprofiles/show.html.erb_spec.rb
index c0a3d81..7ddec66 100644
--- a/spec/views/fetprofiles/show.html.erb_spec.rb
+++ b/spec/views/fetprofiles/show.html.erb_spec.rb
@@ -1,22 +1,41 @@
require 'spec_helper'
describe "fetprofiles/show", :type => :view do
- include RSpecHtmlMatchers
+# include RSpecHtmlMatchers
before(:each) do
# @fetprofile =
#assign(:fetprofile, stub_model(Fetprofile, FactoryGirl.attributes_for(:fetprofile)))
default_url_options[:locale] = :de
- @fetprofile = FactoryGirl.create(:fetprofile)
+ @fetprofile = FactoryGirl.create(:fetprofile,:street => "secret adress")
assign(:fetprofile,@fetprofile)
assign(:memberships, [])
+ assign(:gremientabs, [])
+ end
+ def self.login_fet_user
+ before(:each) do
+ @request.env["devise.mapping"] = Devise.mappings[:user]
+ user = FactoryGirl.build(:user)
+ user = User.find_by_email(user.email) || user
+ user.save
+ user.add_role(:fetuser)
+ # user.confirm!
+ @user=user
+ @ability=Ability.new(@user)
+ sign_in user
+ end
end
- it "renders attributes in
" do
+ it "renders public attributes" do
render
# Run the generator again with the --webrat flag if you want to use webrat matchers
- puts rendered
-# expect(rendered).to include_text @fetprofile.vorname
+# puts rendered
+ expect(rendered).to match(/#{@fetprofile.vorname}/)
+ expect(rendered).to match(/#{@fetprofile.nachname}/)
+ expect(rendered).to match(/#{@fetprofile.desc}/)
+ expect(rendered).to match(/#{@fetprofile.fetmail}/)
+
expect(rendered).to have_tag('div')
+
# rendered.should match(/Nachname/)
# rendered.should match(/Short/)
# rendered.should match(/Fetmailalias/)
@@ -24,4 +43,28 @@ describe "fetprofiles/show", :type => :view do
# rendered.should match(/false/)
end
+ it "doesn't render secrets" do
+ render
+ expect(rendered).not_to match(/#{@fetprofile.street}/)
+ end
+ describe "with fet user" do
+ login_fet_user
+ it "can see intern" do
+ @ability = Object.new
+ @ability.extend(CanCan::Ability)
+ controller.stub(:current_ability) { @ability }
+
+
+ allow(view).to receive(:current_ability).and_return(@ability)
+# view.stub!(:current_ability).and_return(@ability)
+ expect(current_ability.can?(:seeintern,@fetprofile)).to be true
+ end
+ it "renders secrets" do
+ @ability.can(:seeintern,@fetprofile)
+ allow(view).to receive(:current_ability).and_return(@ability)
+
+ expect(rendered).to match(/#{@fetprofile.street}/)
+
+ end
+ end
end