diff test/integration/lib/redmine/themes_test.rb @ 1526:404aa68d4227

Merge from live branch
author Chris Cannam
date Thu, 11 Sep 2014 12:46:20 +0100
parents dffacf8a6908
children
line wrap: on
line diff
--- a/test/integration/lib/redmine/themes_test.rb	Mon Mar 17 08:57:04 2014 +0000
+++ b/test/integration/lib/redmine/themes_test.rb	Thu Sep 11 12:46:20 2014 +0100
@@ -1,5 +1,5 @@
 # Redmine - project management software
-# Copyright (C) 2006-2012  Jean-Philippe Lang
+# Copyright (C) 2006-2014  Jean-Philippe Lang
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
@@ -32,16 +32,14 @@
     get '/'
 
     assert_response :success
-    assert_tag :tag => 'link',
-      :attributes => {:href => %r{^/themes/#{@theme.dir}/stylesheets/application.css}}
+    assert_select "link[rel=stylesheet][href^=/themes/#{@theme.dir}/stylesheets/application.css]"
   end
 
   def test_without_theme_js
     get '/'
 
     assert_response :success
-    assert_no_tag :tag => 'script',
-      :attributes => {:src => %r{^/themes/#{@theme.dir}/javascripts/theme.js}}
+    assert_select "script[src^=/themes/#{@theme.dir}/javascripts/theme.js]", 0
   end
 
   def test_with_theme_js
@@ -50,24 +48,51 @@
     get '/'
 
     assert_response :success
-    assert_tag :tag => 'script',
-      :attributes => {:src => %r{^/themes/#{@theme.dir}/javascripts/theme.js}}
-
+    assert_select "script[src^=/themes/#{@theme.dir}/javascripts/theme.js]", 1
   ensure
     @theme.javascripts.delete 'theme'
   end
 
+  def test_use_default_favicon_if_theme_provides_none
+    get '/'
+
+    assert_response :success
+    assert_select 'link[rel=shortcut icon][href^=/favicon.ico]'
+  end
+
+  def test_use_theme_favicon_if_theme_provides_one
+    # Simulate a theme favicon
+    @theme.favicons << 'a.ico'
+    get '/'
+
+    assert_response :success
+    assert_select "link[rel=shortcut icon][href^=/themes/#{@theme.dir}/favicon/a.ico]"
+  ensure
+    @theme.favicons.delete 'a.ico'
+  end
+
+  def test_use_only_one_theme_favicon_if_theme_provides_many
+    @theme.favicons.concat %w{b.ico a.png}
+    get '/'
+
+    assert_response :success
+    assert_select "link[rel=shortcut icon]", 1
+    assert_select "link[rel=shortcut icon][href^=/themes/#{@theme.dir}/favicon/b.ico]"
+  ensure
+    @theme.favicons.delete("b.ico")
+    @theme.favicons.delete("a.png")
+  end
+
   def test_with_sub_uri
     Redmine::Utils.relative_url_root = '/foo'
     @theme.javascripts << 'theme'
+    @theme.favicons << 'a.ico'
     get '/'
 
     assert_response :success
-    assert_tag :tag => 'link',
-      :attributes => {:href => %r{^/foo/themes/#{@theme.dir}/stylesheets/application.css}}
-    assert_tag :tag => 'script',
-      :attributes => {:src => %r{^/foo/themes/#{@theme.dir}/javascripts/theme.js}}
-
+    assert_select "link[rel=stylesheet][href^=/foo/themes/#{@theme.dir}/stylesheets/application.css]"
+    assert_select "script[src^=/foo/themes/#{@theme.dir}/javascripts/theme.js]"
+    assert_select "link[rel=shortcut icon][href^=/foo/themes/#{@theme.dir}/favicon/a.ico]"
   ensure
     Redmine::Utils.relative_url_root = ''
   end