mirror of
https://github.com/discourse/discourse.git
synced 2024-12-15 19:03:40 +08:00
4ea21fa2d0
This change both speeds up specs (less strings to allocate) and helps catch cases where methods in Discourse are mutating inputs. Overall we will be migrating everything to use #frozen_string_literal: true it will take a while, but this is the first and safest move in this direction
35 lines
1.3 KiB
Ruby
35 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
||
|
||
require 'rails_helper'
|
||
|
||
describe Encodings do
|
||
def to_utf8(filename)
|
||
string = File.read("#{Rails.root}/spec/fixtures/encodings/#{filename}").chomp
|
||
Encodings.to_utf8(string)
|
||
end
|
||
|
||
context "unicode" do
|
||
let(:expected) { 'Το σύστημα γραφής είναι ένα συμβολικό, οπτικό σύστημα καταγραφής της γλώσσας.' }
|
||
|
||
it "correctly encodes UTF-8 as UTF-8" do
|
||
expect(to_utf8('utf-8.txt')).to eq(expected)
|
||
end
|
||
|
||
it "correctly encodes UTF-8 with BOM as UTF-8" do
|
||
expect(to_utf8('utf-8-bom.txt')).to eq(expected)
|
||
end
|
||
|
||
it "correctly encodes UTF-16LE with BOM as UTF-8" do
|
||
expect(to_utf8('utf-16le.txt')).to eq(expected)
|
||
end
|
||
|
||
it "correctly encodes UTF-16BE with BOM as UTF-8" do
|
||
expect(to_utf8('utf-16be.txt')).to eq(expected)
|
||
end
|
||
end
|
||
|
||
it "correctly encodes ISO-8859-5 as UTF-8" do
|
||
expect(to_utf8('iso-8859-5.txt')).to eq('Письменность отличается от других существующих или возможных систем символической коммуникации тем, что всегда ассоциируется с некоторым языком и устной речью на этом языке')
|
||
end
|
||
end
|