mirror of
https://github.com/discourse/discourse.git
synced 2025-05-29 01:31:35 +08:00
DEV: Use proper wording for contexts in specs
This commit is contained in:

committed by
Loïc Guitaut

parent
02987e05d5
commit
3eaac56797
@ -249,12 +249,12 @@ RSpec.describe CookedPostProcessor do
|
||||
end
|
||||
end
|
||||
|
||||
context "processing images" do
|
||||
context "when processing images" do
|
||||
before do
|
||||
SiteSetting.responsive_post_image_sizes = ""
|
||||
end
|
||||
|
||||
context "responsive images" do
|
||||
context "with responsive images" do
|
||||
before { SiteSetting.responsive_post_image_sizes = "1|1.5|3" }
|
||||
|
||||
it "includes responsive images on demand" do
|
||||
@ -361,7 +361,7 @@ RSpec.describe CookedPostProcessor do
|
||||
cpp.post_process
|
||||
end
|
||||
|
||||
context "valid" do
|
||||
context "when valid" do
|
||||
let(:image_sizes) { { "http://foo.bar/image.png" => { "width" => 111, "height" => 222 } } }
|
||||
|
||||
it "uses them" do
|
||||
@ -371,17 +371,17 @@ RSpec.describe CookedPostProcessor do
|
||||
end
|
||||
end
|
||||
|
||||
context "invalid width" do
|
||||
context "with invalid width" do
|
||||
let(:image_sizes) { { "http://foo.bar/image.png" => { "width" => 0, "height" => 222 } } }
|
||||
include_examples "leave dimensions alone"
|
||||
end
|
||||
|
||||
context "invalid height" do
|
||||
context "with invalid height" do
|
||||
let(:image_sizes) { { "http://foo.bar/image.png" => { "width" => 111, "height" => 0 } } }
|
||||
include_examples "leave dimensions alone"
|
||||
end
|
||||
|
||||
context "invalid width & height" do
|
||||
context "with invalid width & height" do
|
||||
let(:image_sizes) { { "http://foo.bar/image.png" => { "width" => 0, "height" => 0 } } }
|
||||
include_examples "leave dimensions alone"
|
||||
end
|
||||
@ -433,7 +433,7 @@ RSpec.describe CookedPostProcessor do
|
||||
expect(cpp).to be_dirty
|
||||
end
|
||||
|
||||
describe 'when image is inside onebox' do
|
||||
context 'when image is inside onebox' do
|
||||
let(:url) { 'https://image.com/my-avatar' }
|
||||
let(:post) { Fabricate(:post, raw: url) }
|
||||
|
||||
@ -452,7 +452,7 @@ RSpec.describe CookedPostProcessor do
|
||||
end
|
||||
end
|
||||
|
||||
describe 'when image is an svg' do
|
||||
context 'when image is an svg' do
|
||||
fab!(:post) do
|
||||
Fabricate(:post, raw: "<img src=\"/#{Discourse.store.upload_path}/original/1X/1234567890123456.svg\">")
|
||||
end
|
||||
@ -467,7 +467,7 @@ RSpec.describe CookedPostProcessor do
|
||||
HTML
|
||||
end
|
||||
|
||||
describe 'when image src is an URL' do
|
||||
context 'when image src is an URL' do
|
||||
let(:post) do
|
||||
Fabricate(:post, raw: "<img src=\"http://test.discourse/#{upload_path}/original/1X/1234567890123456.svg?somepamas\">")
|
||||
end
|
||||
@ -482,7 +482,7 @@ RSpec.describe CookedPostProcessor do
|
||||
end
|
||||
end
|
||||
|
||||
context "s3_uploads" do
|
||||
context "with s3_uploads" do
|
||||
let(:upload) { Fabricate(:secure_upload_s3) }
|
||||
|
||||
before do
|
||||
@ -746,7 +746,7 @@ RSpec.describe CookedPostProcessor do
|
||||
|
||||
end
|
||||
|
||||
context "topic image" do
|
||||
context "with topic image" do
|
||||
fab!(:post) { Fabricate(:post_with_uploaded_image) }
|
||||
let(:cpp) { CookedPostProcessor.new(post) }
|
||||
|
||||
@ -822,7 +822,7 @@ RSpec.describe CookedPostProcessor do
|
||||
expect(post.reload.image_upload_id).to eq(upload2.id)
|
||||
end
|
||||
|
||||
context "post image" do
|
||||
context "with post image" do
|
||||
let(:reply) { Fabricate(:post_with_uploaded_image, post_number: 2) }
|
||||
let(:cpp) { CookedPostProcessor.new(reply) }
|
||||
|
||||
@ -838,18 +838,15 @@ RSpec.describe CookedPostProcessor do
|
||||
end
|
||||
|
||||
describe "#extract_images" do
|
||||
|
||||
let(:post) { build(:post_with_plenty_of_images) }
|
||||
let(:cpp) { CookedPostProcessor.new(post) }
|
||||
|
||||
it "does not extract emojis or images inside oneboxes or quotes" do
|
||||
expect(cpp.extract_images.length).to eq(0)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe "#get_size_from_attributes" do
|
||||
|
||||
let(:post) { build(:post) }
|
||||
let(:cpp) { CookedPostProcessor.new(post) }
|
||||
|
||||
@ -879,11 +876,9 @@ RSpec.describe CookedPostProcessor do
|
||||
img = { 'src' => nil, 'height' => 100 }
|
||||
expect(cpp.get_size_from_attributes(img)).to be_nil
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe "#get_size_from_image_sizes" do
|
||||
|
||||
let(:post) { build(:post) }
|
||||
let(:cpp) { CookedPostProcessor.new(post) }
|
||||
|
||||
@ -891,11 +886,9 @@ RSpec.describe CookedPostProcessor do
|
||||
image_sizes = { "http://my.discourse.org/image.png" => { "width" => 111, "height" => 222 } }
|
||||
expect(cpp.get_size_from_image_sizes("/image.png", image_sizes)).to eq([111, 222])
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe "#get_size" do
|
||||
|
||||
let(:post) { build(:post) }
|
||||
let(:cpp) { CookedPostProcessor.new(post) }
|
||||
|
||||
@ -917,7 +910,6 @@ RSpec.describe CookedPostProcessor do
|
||||
end
|
||||
|
||||
describe "#is_valid_image_url?" do
|
||||
|
||||
let(:post) { build(:post) }
|
||||
let(:cpp) { CookedPostProcessor.new(post) }
|
||||
|
||||
@ -936,11 +928,9 @@ RSpec.describe CookedPostProcessor do
|
||||
it "doesn't throw an exception with a bad URI" do
|
||||
expect(cpp.is_valid_image_url?("http://do<main.com")).to eq(nil)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe "#get_filename" do
|
||||
|
||||
let(:post) { build(:post) }
|
||||
let(:cpp) { CookedPostProcessor.new(post) }
|
||||
|
||||
@ -957,7 +947,6 @@ RSpec.describe CookedPostProcessor do
|
||||
upload = build(:upload, original_filename: "blob.png")
|
||||
expect(cpp.get_filename(upload, "http://domain.com/image.png")).to eq(I18n.t('upload.pasted_image_filename'))
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe "#convert_to_link" do
|
||||
@ -995,7 +984,7 @@ RSpec.describe CookedPostProcessor do
|
||||
expect(doc.css('img.animated').size).to eq(1)
|
||||
end
|
||||
|
||||
context "giphy/tenor images" do
|
||||
context "with giphy/tenor images" do
|
||||
before do
|
||||
CookedPostProcessor.any_instance.stubs(:get_size).with("https://media2.giphy.com/media/7Oifk90VrCdNe/giphy.webp").returns([311, 280])
|
||||
CookedPostProcessor.any_instance.stubs(:get_size).with("https://media1.tenor.com/images/20c7ddd5e84c7427954f430439c5209d/tenor.gif").returns([833, 104])
|
||||
@ -1226,7 +1215,6 @@ RSpec.describe CookedPostProcessor do
|
||||
end
|
||||
|
||||
describe "#post_process_oneboxes with square image" do
|
||||
|
||||
it "generates a onebox-avatar class" do
|
||||
url = 'https://square-image.com/onebox'
|
||||
|
||||
@ -1256,11 +1244,9 @@ RSpec.describe CookedPostProcessor do
|
||||
expect(cpp.doc.to_s).not_to include('aspect-image')
|
||||
expect(cpp.doc.to_s).to include('onebox-avatar')
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe "#optimize_urls" do
|
||||
|
||||
let(:post) { build(:post_with_uploads_and_links) }
|
||||
let(:cpp) { CookedPostProcessor.new(post) }
|
||||
|
||||
@ -1277,7 +1263,6 @@ RSpec.describe CookedPostProcessor do
|
||||
end
|
||||
|
||||
context "when CDN is enabled" do
|
||||
|
||||
it "uses schemaless CDN url for http uploads" do
|
||||
Rails.configuration.action_controller.stubs(:asset_host).returns("http://my.cdn.com")
|
||||
cpp.optimize_urls
|
||||
@ -1332,7 +1317,7 @@ RSpec.describe CookedPostProcessor do
|
||||
HTML
|
||||
end
|
||||
|
||||
context "s3_uploads" do
|
||||
context "with s3_uploads" do
|
||||
before do
|
||||
Rails.configuration.action_controller.stubs(:asset_host).returns("https://local.cdn.com")
|
||||
|
||||
@ -1405,7 +1390,7 @@ RSpec.describe CookedPostProcessor do
|
||||
HTML
|
||||
end
|
||||
|
||||
context "media uploads" do
|
||||
context "with media uploads" do
|
||||
fab!(:image_upload) { Fabricate(:upload) }
|
||||
fab!(:audio_upload) { Fabricate(:upload, extension: "ogg") }
|
||||
fab!(:video_upload) { Fabricate(:upload, extension: "mov") }
|
||||
@ -1543,7 +1528,6 @@ RSpec.describe CookedPostProcessor do
|
||||
end
|
||||
|
||||
describe "#is_a_hyperlink?" do
|
||||
|
||||
let(:post) { build(:post) }
|
||||
let(:cpp) { CookedPostProcessor.new(post) }
|
||||
let(:doc) { Nokogiri::HTML5::fragment('<body><div><a><img id="linked_image"></a><p><img id="standard_image"></p></div></body>') }
|
||||
@ -1557,13 +1541,12 @@ RSpec.describe CookedPostProcessor do
|
||||
img = doc.css("img#standard_image").first
|
||||
expect(cpp.is_a_hyperlink?(img)).to eq(false)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context "grant badges" do
|
||||
describe "grant badges" do
|
||||
let(:cpp) { CookedPostProcessor.new(post) }
|
||||
|
||||
context "emoji inside a quote" do
|
||||
context "with emoji inside a quote" do
|
||||
let(:post) { Fabricate(:post, raw: "time to eat some sweet \n[quote]\n:candy:\n[/quote]\n mmmm") }
|
||||
|
||||
it "doesn't award a badge when the emoji is in a quote" do
|
||||
@ -1572,7 +1555,7 @@ RSpec.describe CookedPostProcessor do
|
||||
end
|
||||
end
|
||||
|
||||
context "emoji in the text" do
|
||||
context "with emoji in the text" do
|
||||
let(:post) { Fabricate(:post, raw: "time to eat some sweet :candy: mmmm") }
|
||||
|
||||
it "awards a badge for using an emoji" do
|
||||
@ -1581,7 +1564,7 @@ RSpec.describe CookedPostProcessor do
|
||||
end
|
||||
end
|
||||
|
||||
context "onebox" do
|
||||
context "with onebox" do
|
||||
before do
|
||||
Oneboxer.stubs(:onebox).with(anything, anything).returns(nil)
|
||||
Oneboxer.stubs(:onebox).with('https://discourse.org', anything).returns("<aside class=\"onebox allowlistedgeneric\">the rest of the onebox</aside>")
|
||||
@ -1613,7 +1596,7 @@ RSpec.describe CookedPostProcessor do
|
||||
end
|
||||
end
|
||||
|
||||
context "reply_by_email" do
|
||||
context "with reply_by_email" do
|
||||
let(:post) { Fabricate(:post, raw: "This is a **reply** via email ;)", via_email: true, post_number: 2) }
|
||||
|
||||
it "awards a badge for replying via email" do
|
||||
@ -1624,7 +1607,7 @@ RSpec.describe CookedPostProcessor do
|
||||
|
||||
end
|
||||
|
||||
context "quote processing" do
|
||||
describe "quote processing" do
|
||||
let(:cpp) { CookedPostProcessor.new(cp) }
|
||||
let(:pp) { Fabricate(:post, raw: "This post is ripe for quoting!") }
|
||||
|
||||
@ -1656,7 +1639,7 @@ RSpec.describe CookedPostProcessor do
|
||||
end
|
||||
end
|
||||
|
||||
context "external discourse instance quote" do
|
||||
context "with external discourse instance quote" do
|
||||
let(:external_raw) do
|
||||
<<~RAW.strip
|
||||
[quote="random_guy_not_from_our_discourse, post:2004, topic:401"]
|
||||
@ -1674,7 +1657,7 @@ RSpec.describe CookedPostProcessor do
|
||||
end
|
||||
end
|
||||
|
||||
context "full quote on direct reply" do
|
||||
describe "full quote on direct reply" do
|
||||
fab!(:topic) { Fabricate(:topic) }
|
||||
let!(:post) { Fabricate(:post, topic: topic, raw: 'this is the "first" post') }
|
||||
|
||||
@ -1803,7 +1786,7 @@ RSpec.describe CookedPostProcessor do
|
||||
end
|
||||
end
|
||||
|
||||
context "full quote on direct reply with full name prioritization" do
|
||||
describe "full quote on direct reply with full name prioritization" do
|
||||
fab!(:user) { Fabricate(:user, name: "james, john, the third") }
|
||||
fab!(:topic) { Fabricate(:topic) }
|
||||
let!(:post) { Fabricate(:post, user: user, topic: topic, raw: 'this is the "first" post') }
|
||||
@ -1935,7 +1918,7 @@ RSpec.describe CookedPostProcessor do
|
||||
end
|
||||
end
|
||||
|
||||
context "prioritizes full name in quotes" do
|
||||
describe "prioritizes full name in quotes" do
|
||||
fab!(:user) { Fabricate(:user, name: "james, john, the third") }
|
||||
fab!(:topic) { Fabricate(:topic) }
|
||||
let!(:post) { Fabricate(:post, user: user, topic: topic, raw: 'this is the "first" post') }
|
||||
|
Reference in New Issue
Block a user