111 lines
3.2 KiB
Ruby
111 lines
3.2 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe "fetprofiles/show", :type => :view do
|
|
# include RSpecHtmlMatchers
|
|
include ThemesForRails::CommonMethods
|
|
include ThemesForRails::UrlHelpers
|
|
# include ThemesForRails::ActionController
|
|
|
|
include ::ThemesForRails::ActionView
|
|
include ::ActionView::Helpers::AssetTagHelper
|
|
include ::ERB::Util
|
|
include ::ActionView::Helpers::TagHelper
|
|
include ::ActionView::Helpers::FormTagHelper
|
|
def theme_name
|
|
'blue2'
|
|
end
|
|
|
|
before(:each) do
|
|
view.view_paths.push 'app/views/themes/blue2'
|
|
self.lookup_context.prefixes = ['app/views/themes/blue2']
|
|
view.lookup_context.prefixes.push 'app/views/'
|
|
view= find("fetprofiles/show")
|
|
# view.view_paths.insert 0, ::ActionView::FileSystemResolver.new(theme_view_path_for(name))
|
|
|
|
# @fetprofile =
|
|
#assign(:fetprofile, stub_model(Fetprofile, FactoryGirl.attributes_for(:fetprofile)))
|
|
default_url_options[:locale] = :de
|
|
@fetprofile = FactoryGirl.create(:fetprofile,:street => "secret adress")
|
|
assign(:fetprofile,@fetprofile)
|
|
assign(:memberships, [])
|
|
assign(:gremientabs, [])
|
|
# view.theme "blue2"
|
|
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)
|
|
# controller.stub(:current_ability) { @ability }
|
|
allow(view).to receive(:current_ability).and_return(@ability)
|
|
sign_in user
|
|
end
|
|
end
|
|
it "has working filters" do
|
|
expect(true).to be true
|
|
end
|
|
it "calls vorname on fetprofile" do
|
|
expect(@fetprofile).to receive(:vorname).at_least(1).times
|
|
|
|
render
|
|
end
|
|
|
|
it "doesn't call users" do
|
|
Fetprofile.any_instance.should_not_receive(:users)
|
|
# expect(Fetprofile.any_instance).to receive(:vorname)
|
|
render
|
|
end
|
|
|
|
it "doesn't call memberships" do
|
|
Fetprofile.any_instance.should_not_receive(:memberships)
|
|
render
|
|
end
|
|
|
|
it "doesn't call gremien" do
|
|
Fetprofile.any_instance.should_not_receive(:gremien)
|
|
render
|
|
end
|
|
|
|
it "renders public attributes" do
|
|
render
|
|
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/)
|
|
# rendered.should match(/MyText/)
|
|
|
|
# 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
|
|
|
|
expect(@ability.can?(:seeintern,@fetprofile)).to be true
|
|
end
|
|
let(:current_ability) {@ability}
|
|
it "renders secrets" do
|
|
render
|
|
expect(rendered).to match(/#{@fetprofile.street}/)
|
|
end
|
|
pending "renders edit path" do
|
|
render
|
|
expect(rendered).to match(/#{edit_fetprofile_path(@fetprofile)}/)
|
|
end
|
|
end
|
|
end
|