require "test_helper" class DmcasControllerTest < ActionDispatch::IntegrationTest context "show action" do should "work for anonymous users" do get dmca_path assert_response :success end end context "create action" do should "work" do dmca = { name: "John Doe", email: "test@gmail.com", address: "123 Fake Street", infringing_urls: "https://example.com/1.html\nhttps://example.com/2.html", original_urls: "https://google.com/1.html\nhttps://google.com/2.html", proof: "source: me", signature: "John Doe", } create(:owner_user) post dmca_path, params: { dmca: dmca } assert_response :success assert_emails 2 assert_equal("DMCA Complaint from John Doe", Dmail.last.title) assert_match(/test@gmail.com/, Dmail.last.body) assert_match(%r{https://example\.com/1\.html}, Dmail.last.body) end should "not send an email to fake addresses" do dmca = { name: "John Doe", email: "fake@example.com", address: "123 Fake Street", infringing_urls: "https://example.com/1.html\nhttps://example.com/2.html", original_urls: "https://google.com/1.html\nhttps://google.com/2.html", proof: "source: me", signature: "John Doe", } create(:owner_user) post dmca_path, params: { dmca: dmca } assert_response :success assert_emails 1 assert_equal("DMCA Complaint from John Doe", Dmail.last.title) assert_match(/fake@example.com/, Dmail.last.body) assert_match(%r{https://example\.com/1\.html}, Dmail.last.body) end end end