require 'spec_helper'
describe Vienna::View do
describe "#create_element" do
html <<-HTML
HTML
it "returns the Element instance wraping the selector given to Element.element" do
klass = Class.new(Vienna::View) do
element "#simple_element"
end
klass.new.create_element.id.should eq("simple_element")
end
it "creates a new element with specified tag_name in class when no element defined" do
klass = Class.new(Vienna::View) do
def tag_name
'table'
end
end
klass.new.create_element.tag_name.should eq("table")
end
it "creates a new element with specified tag_name with the class method when no element defined" do
klass = Class.new(Vienna::View) do
tag_name 'table'
end
klass.new.create_element.tag_name.should eq("table")
end
it "creates a div element with specified class_name in class when no element defined" do
klass = Class.new(Vienna::View) do
def class_name
'my_class'
end
end
klass.new.create_element.class_name.should eq("my_class")
end
it "creates a div element with specified class_name with the class method when no element defined" do
klass = Class.new(Vienna::View) do
class_name 'my_class'
end
klass.new.create_element.class_name.should eq("my_class")
end
describe "with a parent view" do
it "returns an element found inside the scope of parent element" do
parent = Class.new(Vienna::View) { element "#parent-element" }.new
child = Class.new(Vienna::View) { element "#child-element" }.new
child.parent = parent
child.create_element.class_name.should eq("child")
end
it "returns an empty element if element selector does not exist in parent scope" do
parent = Class.new(Vienna::View) { element "#parent-element" }.new
child = Class.new(Vienna::View) { element "#child-element-missing" }.new
child.parent = parent
child.create_element.size.should eq(0)
end
end
end
end