Sha256: f934c23dfb8a8d303dea5485dfa88e13c1752477fd4f87330c8f235b36e8b42a

Contents?: true

Size: 1.92 KB

Versions: 1

Compression:

Stored size: 1.92 KB

Contents

require 'spec_helper'

describe BBCoder do

  subject { BBCoder.new("[p]Text and now [b]bolded.[/b][/p]") }

  context "#configuration" do
    before do
      @tags = BBCoder::Configuration.class_variable_get(:@@tags).clone
    end

    after do
      BBCoder::Configuration.class_variable_set(:@@tags, @tags)
    end

    it "should return the same object for multiple calls" do
      BBCoder.configuration.should == BBCoder.configuration
    end

    it "should allow to clear the configuration" do
      BBCoder.configuration.clear
      BBCoder.configuration[:spoiler].should be_nil
    end
  end

  context "#buffer" do
    it "should return the same object for multiple calls" do
      subject.buffer.should == subject.buffer
    end
  end

  context "#configure" do
    before do
      @tags = BBCoder::Configuration.class_variable_get(:@@tags).clone
    end

    after do
      BBCoder::Configuration.class_variable_set(:@@tags, @tags)
    end

    it "should fail without a block" do
      lambda { BBCoder.configure }.should raise_error
    end

    it "should instance_eval the block onto configuration" do
      block = Proc.new { tag :p }
      mock(BBCoder).configuration.stub!.instance_eval(&block)
      BBCoder.configure(&block)
    end

    it "should be able to remove a tag" do
      BBCoder.configure do
        remove :spoiler
      end
      BBCoder.configuration[:spoiler].should be_nil
    end
  end

  context "#initialize" do
    it "should split tags up properly" do
      subject.raw.should == ["[p]", "Text and now ", "[b]", "bolded.", "[/b]", "[/p]"]
    end

    it "should split tags up properly without content" do
      BBCoder.new("[b][/b][u][/u]").raw.should == ["[b]", "[/b]", "[u]", "[/u]"]
    end
  end

  context "#parse" do
    it "should loop through raw elements and join the buffer" do
      mock(subject).raw.stub!.each {nil}
      mock(subject).buffer.stub!.join {"output"}

      subject.parse
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bbcoder-1.0.1 spec/base_spec.rb