# frozen_string_literal: true
require File.expand_path("../helper", __FILE__)

class TestRake < Rake::TestCase
  def test_each_dir_parent
    assert_equal ["a"], alldirs("a")
    assert_equal ["a/b", "a"], alldirs("a/b")
    assert_equal ["/a/b", "/a", "/"], alldirs("/a/b")
    if File.dirname("c:/foo") == "c:"
      # Under Unix
      assert_equal ["c:/a/b", "c:/a", "c:"], alldirs("c:/a/b")
      assert_equal ["c:a/b", "c:a"], alldirs("c:a/b")
    else
      # Under Windows
      assert_equal ["c:/a/b", "c:/a", "c:/"], alldirs("c:/a/b")
      assert_equal ["c:a/b", "c:a"], alldirs("c:a/b")
    end
  end

  def alldirs(fn)
    result = []
    Rake.each_dir_parent(fn) { |d| result << d }
    result
  end

  def test_can_override_application
    old_app = Rake.application
    fake_app = Object.new
    Rake.application = fake_app

    assert_equal fake_app, Rake.application

  ensure
    Rake.application = old_app
  end

  def test_original_dir_reports_current_dir
    assert_equal @tempdir, Rake.original_dir
  end

end
