Sha256: 5e35f6aa7dc744316358d8104241cc92cf2f2adb55fcd15840867b39a77e008c

Contents?: true

Size: 1.56 KB

Versions: 1

Compression:

Stored size: 1.56 KB

Contents

require 'spec_helper'

describe 'Drops' do

  def render_page(current_page, page = nil)
    request = ActionController::TestRequest.new
    request.env["rack.url_scheme"] = "http"
    request.host = 'test.com'
    request.port = 80
    request.path = "/#{current_page.location}"
    current_page.render 'self' => PufferPages::Liquid::PageDrop.new(current_page, current_page, request),
      'page' => (PufferPages::Liquid::PageDrop.new(page, current_page, request) if page)
  end

  describe 'page drop' do

    before :each do
      @root = Fabricate :page, :layout_name => 'foo_layout'
      @foo = Fabricate :page, :slug => 'hello', :parent => @root
      @bar = Fabricate :page, :slug => 'world', :parent => @foo
      @root.reload
      @foo.reload
      @bar.reload
    end

    it 'should render proper url and path' do
      @layout = Fabricate :layout, :name => 'foo_layout', :body => "{{ self.path }} {{ self.url }}"

      render_page(@bar).should == '/hello/world http://test.com/hello/world'
    end

    it 'should render proper current?' do
      @layout = Fabricate :layout, :name => 'foo_layout', :body => "{{ page.current? }}"

      render_page(@foo, @foo).should == 'true'
      render_page(@foo, @root).should == 'false'
      render_page(@foo, @bar).should ==  'false'
    end

    it 'should render proper ancestor?' do
      @layout = Fabricate :layout, :name => 'foo_layout', :body => "{{ page.ancestor? }}"

      render_page(@foo, @foo).should == 'false'
      render_page(@foo, @root).should == 'true'
      render_page(@foo, @bar).should ==  'false'
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
puffer_pages-0.0.14 spec/lib/drops_spec.rb