describe "split screen functionality" do

  def master_screen
    @master_screen ||= MasterScreen.new nav_bar: true
  end

  def detail_screen
    @detail_screen ||= DetailScreen.new # no nav_bar on this one
  end

  def app
    @app ||= TestDelegate.new
  end

  def split_screen
    @split_screen ||= app.open_split_screen master_screen, detail_screen
  end

  after do
    split_screen.delegate = nil # dereference to avoid memory issue
  end

  it "should have created a split screen" do
    split_screen.should != nil
    split_screen.is_a?(UISplitViewController).should == true
  end

  it "should have two viewControllers" do
    split_screen.viewControllers.length.should == 2
  end

  it "should set the root view to the UISplitScreenViewController" do
    app.window.rootViewController.should == split_screen
  end

  it "should set the first viewController to MasterScreen" do
    split_screen.master_screen.should == master_screen
    split_screen.viewControllers.first.should == (master_screen.navigationController || master_screen)
  end

  it "should set the second viewController to DetailScreen" do
    split_screen.detail_screen.should == detail_screen
    split_screen.viewControllers.last.should == (detail_screen.navigationController || detail_screen)
  end

  it "should set the title on both screens" do
    master_screen.class.title.should == "Master"
    master_screen.title.should == "Master"
    detail_screen.class.title.should == "Detail"
    detail_screen.title.should == "Detail"
  end
end

# Regression test for https://github.com/clearsightstudio/ProMotion/issues/74
describe "split screen with UIViewControllers with ScreenModule" do

  before do
    @app = TestDelegate.new

    @master_screen = ScreenModuleViewController.new
    @detail_screen = DetailScreen.new(nav_bar: true)

    @split_screen = @app.open_split_screen @master_screen, @detail_screen
  end

  it "should set the title on both screens" do
    @master_screen.class.title.should == "Test Title"
    @master_screen.title.should == "Test Title"
    @detail_screen.class.title.should == "Detail"
    @detail_screen.title.should == "Detail"
  end

end

