Remove deprecated mb_chars
method (#34039)
This commit is contained in:
parent
43f616a1c8
commit
d90d68bddf
11 changed files with 69 additions and 11 deletions
|
@ -30,6 +30,22 @@ RSpec.describe NoteLengthValidator do
|
|||
expect(account.errors).to have_received(:add)
|
||||
end
|
||||
|
||||
it 'counts multi byte emoji as single character' do
|
||||
text = '✨' * 500
|
||||
account = instance_double(Account, note: text, errors: activemodel_errors)
|
||||
|
||||
subject.validate_each(account, 'note', text)
|
||||
expect(account.errors).to_not have_received(:add)
|
||||
end
|
||||
|
||||
it 'counts ZWJ sequence emoji as single character' do
|
||||
text = '🏳️⚧️' * 500
|
||||
account = instance_double(Account, note: text, errors: activemodel_errors)
|
||||
|
||||
subject.validate_each(account, 'note', text)
|
||||
expect(account.errors).to_not have_received(:add)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def starting_string
|
||||
|
|
|
@ -41,5 +41,31 @@ RSpec.describe PollOptionsValidator do
|
|||
expect(errors).to have_received(:add)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'character length of poll options' do
|
||||
context 'when poll has acceptable length options' do
|
||||
let(:options) { %w(test this) }
|
||||
|
||||
it 'has no errors' do
|
||||
expect(errors).to_not have_received(:add)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when poll has multibyte and ZWJ emoji options' do
|
||||
let(:options) { ['✨' * described_class::MAX_OPTION_CHARS, '🏳️⚧️' * described_class::MAX_OPTION_CHARS] }
|
||||
|
||||
it 'has no errors' do
|
||||
expect(errors).to_not have_received(:add)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when poll has options that are too long' do
|
||||
let(:options) { ['ok', 'a' * (described_class::MAX_OPTION_CHARS**2)] }
|
||||
|
||||
it 'has errors' do
|
||||
expect(errors).to have_received(:add)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -80,6 +80,22 @@ RSpec.describe StatusLengthValidator do
|
|||
subject.validate(status)
|
||||
expect(status.errors).to have_received(:add)
|
||||
end
|
||||
|
||||
it 'counts multi byte emoji as single character' do
|
||||
text = '✨' * 500
|
||||
status = status_double(text: text)
|
||||
|
||||
subject.validate(status)
|
||||
expect(status.errors).to_not have_received(:add)
|
||||
end
|
||||
|
||||
it 'counts ZWJ sequence emoji as single character' do
|
||||
text = '🏳️⚧️' * 500
|
||||
status = status_double(text: text)
|
||||
|
||||
subject.validate(status)
|
||||
expect(status.errors).to_not have_received(:add)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue