Commit f4aa37844caf926fa644ab3109aac54386aa2353

Authored by Antonio Terceiro
1 parent 53a345b6

Running the tests does not depend on compiling translations anymore.

app/models/doc_section.rb
1 1 class DocSection < DocItem
2 2  
  3 + def self.root_dir
  4 + @root_dir ||= File.join(RAILS_ROOT, 'doc', 'noosfero')
  5 + end
  6 +
3 7 def items
4 8 @items ||= load_items
5 9 end
... ... @@ -36,7 +40,7 @@ class DocSection &lt; DocItem
36 40  
37 41 def self.root(language = 'en')
38 42 @root ||= {}
39   - @root[language] ||= load(File.join(RAILS_ROOT, 'doc', 'noosfero'), language)
  43 + @root[language] ||= load(root_dir, language)
40 44 end
41 45  
42 46 private
... ... @@ -44,7 +48,7 @@ class DocSection &lt; DocItem
44 48 attr_accessor :directory
45 49  
46 50 def self.load_dirs(language)
47   - Dir.glob(File.join(RAILS_ROOT, 'doc', 'noosfero', '*')).select {|item| File.directory?(item) }.map do |dir|
  51 + Dir.glob(File.join(root_dir, '*')).select {|item| File.directory?(item) }.map do |dir|
48 52 load(dir, language)
49 53 end
50 54 end
... ...
lib/tasks/doc.rake
... ... @@ -86,18 +86,22 @@ namespace :noosfero do
86 86 end
87 87 end
88 88  
  89 + desc "Build Noosfero online documentation"
89 90 task :build => po4a_conf do
90 91 sh "po4a #{po4a_conf}"
91 92 end
92 93  
  94 + desc "Cleans Noosfero online documentation"
93 95 task :clean do
94 96 sh 'rm -f doc/noosfero/*.xhtml'
95 97 sh 'rm -f doc/noosfero/*/*.xhtml'
96 98 rm_f po4a_conf
97 99 end
98 100  
  101 + desc "Rebuild Noosfero online documentation"
99 102 task :rebuild => [:clean, :build]
100 103  
  104 + desc "Translates Noosfero online documentation (does not touch PO files)"
101 105 task :translate => english_xhtml do
102 106 languages = Noosfero.locales.keys - ['en']
103 107 languages.each do |lang|
... ...
lib/tasks/test.rake
1 1 task :default => [:test, :cucumber, :selenium]
2   -task 'test:units' => 'noosfero:doc:translate'
3   -task 'test:functionals' => 'noosfero:doc:translate'
4 2  
5 3 task :selenium do
6 4 sh 'xvfb-run cucumber -p selenium'
... ...
test/unit/doc_section_test.rb
1 1 require 'test_helper'
2 2  
3 3 class DocSectionTest < ActiveSupport::TestCase
  4 +
  5 + ROOT = File.join(Rails.root, "test", "tmp", "doc")
  6 +
  7 + def create_doc(section, topic, language, title)
  8 + dir = File.join(ROOT, section)
  9 + FileUtils.mkdir_p(dir)
  10 + File.open("#{dir}/#{topic}.#{language}.xhtml", "w") do |f|
  11 + f.puts "<h1>#{title}</h1>"
  12 + end
  13 + end
  14 +
  15 + def setup
  16 + FileUtils.mkdir_p(ROOT)
  17 +
  18 + # root
  19 + create_doc('', 'index', 'en', 'Root')
  20 + create_doc('', 'toc', 'en', 'Root')
  21 + # cms
  22 + create_doc('cms', 'index', 'en', 'Content Management')
  23 + create_doc('cms', 'index', 'pt', 'Gerenciamento de conteúdo')
  24 + create_doc('cms', 'toc', 'en', '')
  25 + create_doc('cms', 'toc', 'pt', '')
  26 + create_doc('cms', 'adding-pictures', 'en', 'Adding pictures to gallery')
  27 + create_doc('cms', 'adding-pictures', 'pt', 'Adicionando fotos na galeria')
  28 + create_doc('cms', 'creating-a-blog', 'en', 'Creating a blog')
  29 + create_doc('cms', 'creating-a-blog', 'pt', 'Criando um blog')
  30 + # user
  31 + create_doc('user', 'index', 'en', 'User features')
  32 + create_doc('user', 'index', 'pt', 'Funcionalidades de Usuário')
  33 + create_doc('user', 'toc', 'en', '')
  34 + create_doc('user', 'toc', 'pt', '')
  35 + create_doc('user', 'accepting-friends', 'en', 'Accepting friends')
  36 +
  37 + DocSection.stubs(:root_dir).returns(ROOT)
  38 + end
  39 +
  40 + def tear_down
  41 + FileUtils.rm_rf(ROOT)
  42 + end
  43 +
4 44 should 'be a DocItem' do
5 45 assert_kind_of DocItem, DocSection.new
6 46 end
... ... @@ -87,7 +127,7 @@ class DocSectionTest &lt; ActiveSupport::TestCase
87 127 should 'load null section (the root)' do
88 128 [nil, ''].each do |key|
89 129 section = DocSection.find(nil)
90   - assert_equal "#{RAILS_ROOT}/doc/noosfero", section.send(:directory)
  130 + assert_equal DocSection.root_dir, section.send(:directory)
91 131 end
92 132 end
93 133  
... ...