cirandas.net

ref: master

test/unit/layout_helper_test.rb


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
require_relative "../test_helper"

class LayoutHelperTest < ActionView::TestCase
  include ApplicationHelper

  should 'append logged-in class in body when user is logged-in' do
    expects(:logged_in?).returns(true)
    expects(:profile).returns(nil).at_least_once
    expects(:environment).returns(fast_create(Environment)).at_least_once
    assert_includes body_classes.split, 'logged-in'
  end

  should 'not append logged-in class when user is not logged-in' do
    expects(:logged_in?).returns(false)
    expects(:profile).returns(nil).at_least_once
    expects(:environment).returns(fast_create(Environment)).at_least_once
    assert_not_includes body_classes.split, 'logged-in'
  end

  should 'add global.css to noosfero_stylesheets if env theme has it' do
    env = fast_create Environment
    env.theme = 'my-theme'
    @plugins = []
    expects(:profile).returns(nil).at_least_once
    expects(:environment).returns(env).at_least_once
    expects(:theme_option).with(:jquery_theme).returns(nil)
    expects(:theme_option).with(:icon_theme).returns(['my-icons']).at_least_once
    global_css = Rails.root.join "public/designs/themes/#{env.theme}/global.css"
    File.stubs(:exists?).returns(false)
    File.expects(:exists?).with(global_css).returns(true).at_least_once
    css = noosfero_stylesheets
    assert_match /<link [^<]*href="\/designs\/themes\/my-theme\/global.css"/, css
  end

  should 'append javascript files of enabled plugins in noosfero javascripts' do
    plugin1 = Noosfero::Plugin.new
    plugin1.expects(:js_files).returns(['plugin1.js'])
    plugin2 = Noosfero::Plugin.new
    plugin2.expects(:js_files).returns('plugin2.js')
    @plugins = [plugin1, plugin2]
    expects(:environment).returns(Environment.default).at_least_once
    expects(:profile).returns(nil).at_least_once
    js_tag = noosfero_javascript
    assert_match /plugin1\.js/, js_tag
    assert_match /plugin2\.js/, js_tag
  end

end