Fix incorrect serialization of regional languages in `contentMap` (#27207)
This commit is contained in:
parent
3171afc36a
commit
3262d1f1b6
|
@ -14,6 +14,8 @@ module ActivityPub::CaseTransform
|
||||||
when String
|
when String
|
||||||
camel_lower_cache[value] ||= if value.start_with?('_:')
|
camel_lower_cache[value] ||= if value.start_with?('_:')
|
||||||
"_:#{value.delete_prefix('_:').underscore.camelize(:lower)}"
|
"_:#{value.delete_prefix('_:').underscore.camelize(:lower)}"
|
||||||
|
elsif LanguagesHelper::ISO_639_1_REGIONAL.key?(value.to_sym)
|
||||||
|
value
|
||||||
else
|
else
|
||||||
value.underscore.camelize(:lower)
|
value.underscore.camelize(:lower)
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,7 +7,7 @@ describe ActivityPub::NoteSerializer do
|
||||||
|
|
||||||
let!(:account) { Fabricate(:account) }
|
let!(:account) { Fabricate(:account) }
|
||||||
let!(:other) { Fabricate(:account) }
|
let!(:other) { Fabricate(:account) }
|
||||||
let!(:parent) { Fabricate(:status, account: account, visibility: :public) }
|
let!(:parent) { Fabricate(:status, account: account, visibility: :public, language: 'zh-TW') }
|
||||||
let!(:reply_by_account_first) { Fabricate(:status, account: account, thread: parent, visibility: :public) }
|
let!(:reply_by_account_first) { Fabricate(:status, account: account, thread: parent, visibility: :public) }
|
||||||
let!(:reply_by_account_next) { Fabricate(:status, account: account, thread: parent, visibility: :public) }
|
let!(:reply_by_account_next) { Fabricate(:status, account: account, thread: parent, visibility: :public) }
|
||||||
let!(:reply_by_other_first) { Fabricate(:status, account: other, thread: parent, visibility: :public) }
|
let!(:reply_by_other_first) { Fabricate(:status, account: other, thread: parent, visibility: :public) }
|
||||||
|
@ -18,8 +18,15 @@ describe ActivityPub::NoteSerializer do
|
||||||
@serialization = ActiveModelSerializers::SerializableResource.new(parent, serializer: described_class, adapter: ActivityPub::Adapter)
|
@serialization = ActiveModelSerializers::SerializableResource.new(parent, serializer: described_class, adapter: ActivityPub::Adapter)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has a Note type' do
|
it 'has the expected shape' do
|
||||||
expect(subject['type']).to eql('Note')
|
expect(subject).to include({
|
||||||
|
'@context' => include('https://www.w3.org/ns/activitystreams'),
|
||||||
|
'type' => 'Note',
|
||||||
|
'attributedTo' => ActivityPub::TagManager.instance.uri_for(account),
|
||||||
|
'contentMap' => include({
|
||||||
|
'zh-TW' => a_kind_of(String),
|
||||||
|
}),
|
||||||
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has a replies collection' do
|
it 'has a replies collection' do
|
||||||
|
|
Loading…
Reference in New Issue