Sha256: 3f9944f52552e53cc2d591b0c6217aaae5d24a76417c8eb19e615cbeb6fbd574

Contents?: true

Size: 999 Bytes

Versions: 2

Compression:

Stored size: 999 Bytes

Contents

require 'test_helper'

class LinkValidatorTest < ActiveSupport::TestCase
  class Dummy
    include Mongoid::Document

    field "body", type: String
    GOVSPEAK_FIELDS = [:body]

    validates_with LinkValidator
  end

  context "links" do
    should "start with http[s]://, mailto: or /" do
      doc = Dummy.new(body: "abc [external](external.com)")
      assert doc.invalid?
      assert_includes doc.errors.keys, :body

      doc = Dummy.new(body: "abc [external](http://external.com)")
      assert doc.valid?

      doc = Dummy.new(body: "abc [internal](/internal)")
      assert doc.valid?
    end
    should "start not contain hover text" do
      doc = Dummy.new(body: 'abc [foobar](foobar.com "hover")')
      assert doc.invalid?
      assert_includes doc.errors.keys, :body
    end
    should "start not set rel=external" do
      doc = Dummy.new(body: 'abc [foobar](foobar.com){:rel="external"}')
      assert doc.invalid?
      assert_includes doc.errors.keys, :body
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
govuk_content_models-12.2.0 test/validators/link_validator_test.rb
govuk_content_models-12.1.0 test/validators/link_validator_test.rb