aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test/test_build_options.rb
blob: 02f4be0fa507028aa480d90c3c5d7e7795921a57 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
require "testing_env"
require "build_options"
require "options"

class BuildOptionsTests < Homebrew::TestCase
  def setup
    args = Options.create(%w[--with-foo --with-bar --without-qux])
    opts = Options.create(%w[--with-foo --with-bar --without-baz --without-qux])
    @build = BuildOptions.new(args, opts)
    bad_args = Options.create(%w[--with-foo --with-bar --without-bas --without-qux --without-abc])
    @bad_build = BuildOptions.new(bad_args, opts)
  end

  def test_include
    assert_includes @build, "with-foo"
    refute_includes @build, "with-qux"
    refute_includes @build, "--with-foo"
  end

  def test_with_without
    assert @build.with?("foo")
    assert @build.with?("bar")
    assert @build.with?("baz")
    assert @build.without?("qux")
    assert @build.without?("xyz")
  end

  def test_used_options
    assert_includes @build.used_options, "--with-foo"
    assert_includes @build.used_options, "--with-bar"
  end

  def test_unused_options
    assert_includes @build.unused_options, "--without-baz"
  end

  def test_invalid_options
    assert_empty @build.invalid_options
    assert_includes @bad_build.invalid_options, "--without-bas"
    assert_includes @bad_build.invalid_options, "--without-abc"
    refute_includes @bad_build.invalid_options, "--with-foo"
    refute_includes @bad_build.invalid_options, "--with-baz"
  end

  def test_invalid_opt_names
    assert_empty @build.invalid_opt_names
    assert_equal @bad_build.invalid_opt_names, %w[--without-abc --without-bas]
  end
end