summaryrefslogtreecommitdiffstats
path: root/test/functional/repositories_filesystem_controller_test.rb
blob: 0a1f7da36a39e449b889e4c0faa82584ce4d1a5b (plain)
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
# Redmine - project management software
# 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
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

require File.expand_path('../../test_helper', __FILE__)

class RepositoriesFilesystemControllerTest < ActionController::TestCase
  tests RepositoriesController

  fixtures :projects, :users, :roles, :members, :member_roles,
           :repositories, :enabled_modules

  REPOSITORY_PATH = Rails.root.join('tmp/test/filesystem_repository').to_s
  PRJ_ID = 3

  def setup
    @ruby19_non_utf8_pass =
        (RUBY_VERSION >= '1.9' && Encoding.default_external.to_s != 'UTF-8')
    User.current = nil
    Setting.enabled_scm << 'Filesystem' unless Setting.enabled_scm.include?('Filesystem')
    @project = Project.find(PRJ_ID)
    @repository = Repository::Filesystem.create(
                      :project       => @project,
                      :url           => REPOSITORY_PATH,
                      :path_encoding => ''
                      )
    assert @repository
  end

  if File.directory?(REPOSITORY_PATH)
    def test_get_new
      @request.session[:user_id] = 1
      @project.repository.destroy
      get :new, :project_id => 'subproject1', :repository_scm => 'Filesystem'
      assert_response :success
      assert_template 'new'
      assert_kind_of Repository::Filesystem, assigns(:repository)
      assert assigns(:repository).new_record?
    end

    def test_browse_root
      @repository.fetch_changesets
      @repository.reload
      get :show, :id => PRJ_ID
      assert_response :success
      assert_template 'show'
      assert_not_nil assigns(:entries)
      assert assigns(:entries).size > 0
      assert_not_nil assigns(:changesets)
      assert assigns(:changesets).size == 0

      assert_no_tag 'input', :attributes => {:name => 'rev'}
      assert_no_tag 'a', :content => 'Statistics'
      assert_no_tag 'a', :content => 'Atom'
    end

    def test_show_no_extension
      get :entry, :id => PRJ_ID, :path => repository_path_hash(['test'])[:param]
      assert_response :success
      assert_template 'entry'
      assert_tag :tag => 'th',
                 :content => '1',
                 :attributes => { :class => 'line-num' },
                 :sibling => { :tag => 'td', :content => /TEST CAT/ }
    end

    def test_entry_download_no_extension
      get :raw, :id => PRJ_ID, :path => repository_path_hash(['test'])[:param]
      assert_response :success
      assert_equal 'application/octet-stream', @response.content_type
    end

    def test_show_non_ascii_contents
      with_settings :repositories_encodings => 'UTF-8,EUC-JP' do
        get :entry, :id => PRJ_ID,
            :path => repository_path_hash(['japanese', 'euc-jp.txt'])[:param]
        assert_response :success
        assert_template 'entry'
        assert_tag :tag => 'th',
                   :content => '2',
                   :attributes => { :class => 'line-num' },
                   :sibling => { :tag => 'td', :content => /japanese/ }
        if @ruby19_non_utf8_pass
          puts "TODO: show repository file contents test fails in Ruby 1.9 " +
               "and Encoding.default_external is not UTF-8. " +
               "Current value is '#{Encoding.default_external.to_s}'"
        else
          str_japanese = "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e"
          str_japanese.force_encoding('UTF-8') if str_japanese.respond_to?(:force_encoding)
          assert_tag :tag => 'th',
                     :content => '3',
                     :attributes => { :class => 'line-num' },
                     :sibling => { :tag => 'td', :content => /#{str_japanese}/ }
        end
      end
    end

    def test_show_utf16
      enc = (RUBY_VERSION == "1.9.2" ? 'UTF-16LE' : 'UTF-16')
      with_settings :repositories_encodings => enc do
        get :entry, :id => PRJ_ID,
            :path => repository_path_hash(['japanese', 'utf-16.txt'])[:param]
        assert_response :success
        assert_tag :tag => 'th',
                   :content => '2',
                   :attributes => { :class => 'line-num' },
                   :sibling => { :tag => 'td', :content => /japanese/ }
      end
    end

    def test_show_text_file_should_send_if_too_big
      with_settings :file_max_size_displayed => 1 do
        get :entry, :id => PRJ_ID,
            :path => repository_path_hash(['japanese', 'big-file.txt'])[:param]
        assert_response :success
        assert_equal 'text/plain', @response.content_type
      end
    end

    def test_destroy_valid_repository
      @request.session[:user_id] = 1 # admin

      assert_difference 'Repository.count', -1 do
        delete :destroy, :id => @repository.id
      end
      assert_response 302
      @project.reload
      assert_nil @project.repository
    end

    def test_destroy_invalid_repository
      @request.session[:user_id] = 1 # admin
      @project.repository.destroy
      @repository = Repository::Filesystem.create!(
                      :project       => @project,
                      :url           => "/invalid",
                      :path_encoding => ''
                      )

      assert_difference 'Repository.count', -1 do
        delete :destroy, :id => @repository.id
      end
      assert_response 302
      @project.reload
      assert_nil @project.repository
    end
  else
    puts "Filesystem test repository NOT FOUND. Skipping functional tests !!!"
    def test_fake; assert true end
  end
end
49237/stable30 Nextcloud server, a safe home for all your data: https://github.com/nextcloud/serverwww-data
aboutsummaryrefslogtreecommitdiffstats
path: root/apps/updatenotification/l10n/ca.js
blob: 93e0bc82bc955bf6a2cc52b403566a283b914e51 (plain)
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
49
50
51
OC.L10N.register(
    "updatenotification",
    {
    "{version} is available. Get more information on how to update." : "Hi ha disponible la versió {version}. Obtingueu més informació sobre com actualitzar.",
    "Update notifications" : "Notificacions d'actualització",
    "Channel updated" : "Canal actualitzat",
    "The update server could not be reached since %d days to check for new updates." : "No s’ha pogut accedir al servidor d’actualitzacions des de fa %d dies per comprovar si hi ha actualitzacions noves.",
    "Please check the Nextcloud and server log files for errors." : "Si us plau, comproveu els fitxers de registre del servidor i del Nextcloud per detectar errors.",
    "Update to %1$s is available." : "Hi ha disponible l'actualització per %1$s.",
    "Update for %1$s to version %2$s is available." : "Hi ha disponible l'actualització a la versió %2$s per %1$s.",
    "Update for {app} to version %s is available." : "Hi ha disponible l'actualització a la versió %s per {app}.",
    "Update notification" : "Notificació d'actualització",
    "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Mostra les notificacions d’actualització de Nextcloud i proporciona l’SSO de l’actualitzador.",
    "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versió que esteu executant ja no es manté. Assegureu-vos d’actualitzar el més aviat possible a una versió suportada.",
    "Apps missing updates" : "Les aplicacions no tenen actualitzacions",
    "View in store" : "Mostra-ho al magatzem",
    "Apps with available updates" : "Aplicacions amb actualitzacions disponibles",
    "Open updater" : "Obre l'actualitzador",
    "Download now" : "Descarrega-ho ara",
    "What's new?" : "Quines novetats hi ha?",
    "The update check is not yet finished. Please refresh the page." : "La comprovació de l’actualització encara no ha finalitzat. Si us plau, actualitzeu la pàgina.",
    "Your version is up to date." : "La vostra versió està actualitzada.",
    "A non-default update server is in use to be checked for updates:" : "Es fa servir un servidor d’actualització no predeterminat per comprovar si hi ha actualitzacions:",
    "Update channel:" : "Actualitza el canal:",
    "You can always update to a newer version. But you can never downgrade to a more stable version." : "Sempre podeu actualitzar a una versió més recent. Però mai no podeu baixar a una versió més estable.",
    "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Tingueu en compte que després d'un nou llançament, pot trigar un temps abans que aparegui aquí. Despleguem noves versions distribuïdes amb el temps als nostres usuaris i, de vegades, ometem una versió quan es detecten problemes.",
    "Notify members of the following groups about available updates:" : "Notifica als membres dels següents grups sobre les actualitzacions disponibles:",
    "Only notification for app updates are available." : "Només hi ha disponible notificacions per actualitzacions d’aplicacions.",
    "The selected update channel makes dedicated notifications for the server obsolete." : "El canal d'actualització seleccionat deixa obsoletes les notificacions específiques del servidor.",
    "The selected update channel does not support updates of the server." : "El canal d'actualització seleccionat no admet actualitzacions del servidor.",
    "A new version is available: <strong>{newVersionString}</strong>" : "Hi ha una nova versió disponible: <strong>{newVersionString}</strong>",
    "Checked on {lastCheckedDate}" : "Verificat el {lastCheckedDate}",
    "Checking apps for compatible updates" : "S'estàn comprovant aplicacions per a actualitzacions compatibles",
    "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Si us plau, assegureu-vos que en el vostre config.php no s'ha establert <samp>appstoreenabled</samp> com a fals.",
    "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No s’ha pogut connectar amb el magatzem d’aplicacions o aquest no ha retornat cap actualització. Cerqueu manualment actualitzacions o assegureu-vos que el vostre servidor tingui accés a Internet i es pugui connectar al magatzem d'aplicacions.",
    "<strong>All</strong> apps have an update for this version available" : "<strong>Totes</strong> les aplicacions tenen una actualització disponible per aquesta versió",
    "View changelog" : "Mostra el registre de canvis",
    "Stable" : "Estable",
    "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La versió estable més recent. És adequat per un ús normal i sempre s'actualitzarà a la versió més recent.",
    "Beta" : "Beta",
    "A pre-release version only for testing new features, not for production environments." : "Una versió prèvia a la publicació només per provar noves funcions, no per a entorns de producció.",
    "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicació no té cap actualització disponible per aquesta versió.","<strong>%n</strong> aplicacions no tenen cap actualització disponible per aquesta versió."],
    "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Sempre podeu actualitzar a una versió més recent / canal experimental. Però mai no es pot fer un \"downgrade\" a un canal més estable.",
    "<strong>production</strong> will always provide the latest patch level, but not update to the next major release immediately. That update usually happens with the second minor release (x.0.2)." : "<strong>producció</strong> sempre proporcionarà el nivell de pedaç més recent, però no s'actualitzarà immediatament a la propera versió principal. Aquesta actualització sol passar amb el llençament de la segona versió menor (x.0.2).",
    "<strong>stable</strong> is the most recent stable version. It is suited for regular use and will always update to the latest major version." : "<strong>estable</strong> és la versió estable més recent. És adequada per un ús normal i sempre s'actualitzarà a la versió principal més recent.",
    "<strong>beta</strong> is a pre-release version only for testing new features, not for production environments." : "<strong>beta</strong> és una versió prèvia a la publicació només per provar noves funcions, no pas per a entorns de producció.",
    "Could not start updater, please try the manual update" : "No s'ha pogut iniciar actualitzador, si us plau proveu l'actualització manual",
    "Production" : "Producció",
    "Will always provide the latest patch level, but not update to the next major release immediately. That update usually happens with the second minor release (x.0.2) and only if the instance is already on the latest minor version." : "Sempre proporcionarà el nivell de pedaç més recent, però no s'actualitzarà immediatament a la propera versió principal. Aquesta actualització sol passar amb la segona versió menor (x.0.2) i només si la instància ja és a la darrera versió menor."
},
"nplurals=2; plural=(n != 1);");