Sha256: 803e6e69c3ecef29dd66a342001c2aef2d1f6d8c6b8a132be8d403287b18af0f

Contents?: true

Size: 1.73 KB

Versions: 2

Compression:

Stored size: 1.73 KB

Contents

require "assert"
require "undies/element"

require 'test/support/element'

module Undies::Element

  class ClosedBasicTests < Assert::Context
    desc 'a closed element'
    before do
      @ec = Undies::Element::Closed.new(:br)
    end
    subject { @ec }

    should have_instance_methods :__start_tag, :__content, :__build, :__end_tag
    should have_instance_methods :to_s

    should "know its name and store it as a string" do
      assert_equal "br", subject.instance_variable_get("@name")
    end

    should "have no attrs by default" do
      assert_empty subject.instance_variable_get("@attrs")
    end

  end

  class ClosedCSSProxyTests < ClosedBasicTests
    extend TestHelpers

    should proxy_css_methods
  end

  class ClosedSerializeTests < ClosedBasicTests

    should "serialize with no attrs" do
      elem = Undies::Element::Closed.new(:br)
      assert_equal "<br />", elem.to_s
    end

    should "serialize with attrs" do
      elem = Undies::Element::Closed.new(:br, :class => 'big')
      assert_equal "<br class=\"big\" />", elem.to_s
    end

    should "serialize with attrs that have double-quotes" do
      elem = Undies::Element::Closed.new(:br, :class => '"this" is double-quoted')
      assert_equal "<br class=\"&quot;this&quot; is double-quoted\" />", elem.to_s
    end

    should "serialize element proxy id call" do
      elem = Undies::Element::Closed.new(:br).thing1!
      assert_equal "<br id=\"thing1\" />", elem.to_s
    end

    should "serialize element proxy class call" do
      # calling a private method as public to test private methods not
      # polluting public method_missing scope
      elem = Undies::Element::Closed.new(:br).proxy
      assert_equal "<br class=\"proxy\" />", elem.to_s
    end

  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
undies-3.1.0 test/unit/element_closed_tests.rb
undies-3.0.0 test/unit/element_closed_tests.rb