Defect #29259 » allow-preview-for-any-text-files-v2.diff
app/models/attachment.rb (working copy) | ||
---|---|---|
235 | 235 |
end |
236 | 236 | |
237 | 237 |
def is_text? |
238 |
Redmine::MimeType.is_type?('text', filename) |
|
238 |
Redmine::MimeType.is_type?('text', filename) || |
|
239 |
! Redmine::Utils.binary?(File.read(diskfile, 4096)) rescue false |
|
239 | 240 |
end |
240 | 241 | |
241 | 242 |
def is_image? |
app/views/projects/settings/_versions.html.erb (working copy) | ||
---|---|---|
16 | 16 |
<table class="list versions"> |
17 | 17 |
<thead><tr> |
18 | 18 |
<th><%= l(:label_version) %></th> |
19 |
<th><%= l(:field_default_version) %></th> |
|
20 | 19 |
<th><%= l(:field_effective_date) %></th> |
21 | 20 |
<th><%= l(:field_description) %></th> |
22 | 21 |
<th><%= l(:field_status) %></th> |
... | ... | |
28 | 27 |
<% @versions.sort.each do |version| %> |
29 | 28 |
<tr class="version <%=h version.status %> <%= 'shared' if version.project != @project %>"> |
30 | 29 |
<td class="name <%= 'icon icon-shared' if version.project != @project %>"><%= link_to_version version %></td> |
31 |
<td class="tick"><%= checked_image(version.id == @project.default_version_id) %></td> |
|
32 | 30 |
<td class="date"><%= format_date(version.effective_date) %></td> |
33 | 31 |
<td class="description"><%= version.description %></td> |
34 | 32 |
<td class="status"><%= l("version_status_#{version.status}") %></td> |
lib/redmine/scm/adapters/abstract_adapter.rb (working copy) | ||
---|---|---|
425 | 425 | |
426 | 426 |
module ScmData |
427 | 427 |
def self.binary?(data) |
428 |
unless data.empty? |
|
429 |
data.count( "^ -~", "^\r\n" ).fdiv(data.size) > 0.3 || data.index( "\x00" ) |
|
430 |
end |
|
428 |
Redmine::Utils.binary?(data) |
|
431 | 429 |
end |
432 | 430 |
end |
433 | 431 |
end |
lib/redmine/utils.rb (working copy) | ||
---|---|---|
61 | 61 |
end |
62 | 62 |
end |
63 | 63 |
end |
64 | ||
65 |
def binary?(data) |
|
66 |
unless data.empty? |
|
67 |
data.count( "^ -~", "^\r\n" ).fdiv(data.size) > 0.3 || data.index( "\x00" ) |
|
68 |
end |
|
69 |
end |
|
64 | 70 |
end |
65 | 71 | |
66 | 72 |
module Shell |
test/fixtures/files/hello.go (working copy) | ||
---|---|---|
1 |
package main |
|
2 |
|
|
3 |
import "fmt" |
|
4 |
|
|
5 |
func main() { |
|
6 |
fmt.Println("Hello, world!") |
|
7 |
} |
|
8 |
package main |
|
9 |
|
|
10 |
import "fmt" |
|
11 |
|
|
12 |
func main() { |
|
13 |
fmt.Println("Hello, world!") |
|
14 |
} |
test/functional/my_controller_test.rb (working copy) | ||
---|---|---|
208 | 208 | |
209 | 209 |
assert_select 'div#block-activity' do |
210 | 210 |
assert_select 'h3' do |
211 |
assert_select 'a[href=?]', activity_path(from: Date.current, user_id: user.id), :text => 'Activity'
|
|
211 |
assert_select 'a[href=?]', activity_path(from: Date.today, user_id: user.id), :text => 'Activity'
|
|
212 | 212 |
end |
213 | 213 |
assert_select 'div#activity' do |
214 | 214 |
assert_select 'dt', 10 |
test/functional/projects_controller_test.rb (working copy) | ||
---|---|---|
641 | 641 |
assert_select 'a#tab-versions[href=?]', '/projects/ecookbook/settings/versions?version_name=.1&version_status=' |
642 | 642 |
end |
643 | 643 | |
644 |
def test_settings_should_show_default_version_in_versions_tab |
|
645 |
project = Project.find(1) |
|
646 |
project.default_version_id = 3 |
|
647 |
project.save! |
|
648 | ||
649 |
@request.session[:user_id] = 2 |
|
650 | ||
651 |
get :settings, :params => { |
|
652 |
:id => 'ecookbook', |
|
653 |
:tab => 'versions', |
|
654 |
} |
|
655 |
assert_response :success |
|
656 | ||
657 |
assert_select 'table.versions tbody' do |
|
658 |
# asserts that only one version is marked as default |
|
659 |
assert_select 'td.tick span.icon-checked', 1 |
|
660 |
# asserts which version is marked as default |
|
661 |
assert_select 'tr:first-child td.tick span.icon-checked', 1 |
|
662 |
end |
|
663 |
end |
|
664 | ||
665 | 644 |
def test_settings_should_show_locked_members |
666 | 645 |
user = User.generate! |
667 | 646 |
member = User.add_to_project(user, Project.find(1)) |
test/unit/attachment_test.rb (working copy) | ||
---|---|---|
444 | 444 |
puts '(ImageMagick convert not available)' |
445 | 445 |
end |
446 | 446 | |
447 |
def test_is_text |
|
448 |
files = [ |
|
449 |
{:name => 'testfile.txt', :type => 'text/plain'}, |
|
450 |
{:name => 'hello.go', :type => 'text/plain'}, |
|
451 |
{:name => '2006/07/060719210727_archive.zip', :type => 'application/octet-stream'} |
|
452 |
] |
|
453 | ||
454 |
a_text, a_go, a_bin = files.map do |f| |
|
455 |
a = Attachment.new(:container => Issue.find(1), |
|
456 |
:file => uploaded_test_file(f[:name], f[:type]), |
|
457 |
:author => User.find(1)) |
|
458 |
a.save! |
|
459 |
a |
|
460 |
end |
|
461 | ||
462 |
assert a_text.is_text? |
|
463 |
assert a_go.is_text? |
|
464 |
assert_not a_bin.is_text? |
|
465 |
end |
|
466 | ||
447 | 467 |
end |