aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorJack Nagel2014-06-29 00:55:56 -0500
committerJack Nagel2014-06-29 00:55:56 -0500
commite2e5839a9a9d12c7b801593445b3b8c144bd4063 (patch)
tree00ef5391c01fb7341ac04b7dc5bbb165d72c6cb0 /Library
parentfde884e31926d38a4e3dfa977339fc2c68a538b4 (diff)
downloadbrew-e2e5839a9a9d12c7b801593445b3b8c144bd4063.tar.bz2
Get the Tab class under test
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/test/fixtures/receipt.json17
-rw-r--r--Library/Homebrew/test/test_tab.rb87
2 files changed, 104 insertions, 0 deletions
diff --git a/Library/Homebrew/test/fixtures/receipt.json b/Library/Homebrew/test/fixtures/receipt.json
new file mode 100644
index 000000000..955d56b47
--- /dev/null
+++ b/Library/Homebrew/test/fixtures/receipt.json
@@ -0,0 +1,17 @@
+{
+ "used_options": [
+ "--with-foo",
+ "--without-bar"
+ ],
+ "unused_options": [
+ "--with-baz",
+ "--without-qux"
+ ],
+ "built_as_bottle": false,
+ "poured_from_bottle": true,
+ "tapped_from": "Homebrew/homebrew",
+ "time": 1403827774,
+ "HEAD": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
+ "stdlib": "libcxx",
+ "compiler": "clang"
+}
diff --git a/Library/Homebrew/test/test_tab.rb b/Library/Homebrew/test/test_tab.rb
new file mode 100644
index 000000000..4cc00818a
--- /dev/null
+++ b/Library/Homebrew/test/test_tab.rb
@@ -0,0 +1,87 @@
+require "testing_env"
+require "tab"
+
+class TabTests < Homebrew::TestCase
+ def setup
+ @used, @unused = Options.new, Options.new
+ @used << Option.new("with-foo") << Option.new("without-bar")
+ @unused << Option.new("with-baz") << Option.new("without-qux")
+
+ @tab = Tab.new({
+ :used_options => @used,
+ :unused_options => @unused,
+ :build_as_bottle => false,
+ :poured_from_bottle => true,
+ :tapped_from => "Homebrew/homebrew",
+ :time => nil,
+ :HEAD => TEST_SHA1,
+ :compiler => :clang,
+ :stdlib => :libcxx,
+ })
+ end
+
+ def test_defaults
+ tab = Tab.dummy_tab
+ assert_empty tab.unused_options
+ assert_empty tab.used_options
+ assert_empty tab.options
+ refute tab.built_as_bottle
+ refute tab.poured_from_bottle
+ assert_empty tab.tapped_from
+ assert_nil tab.time
+ assert_nil tab.HEAD
+ assert_equal MacOS.default_compiler, tab.cxxstdlib.compiler
+ assert_nil tab.cxxstdlib.type
+ end
+
+ def test_include?
+ assert_includes @tab, "with-foo"
+ assert_includes @tab, "without-bar"
+ end
+
+ def test_with?
+ assert @tab.with?("foo")
+ assert @tab.with?("qux")
+ refute @tab.with?("bar")
+ refute @tab.with?("baz")
+ end
+
+ def test_universal?
+ refute_predicate @tab, :universal?
+ @used << "universal"
+ assert_predicate @tab, :universal?
+ end
+
+ def test_options
+ assert_equal (@used + @unused).to_a, @tab.options.to_a
+ end
+
+ def test_cxxstdlib
+ assert_equal :clang, @tab.cxxstdlib.compiler
+ assert_equal :libcxx, @tab.cxxstdlib.type
+ end
+
+ def test_other_attributes
+ assert_equal TEST_SHA1, @tab.HEAD
+ assert_equal "Homebrew/homebrew", @tab.tapped_from
+ assert_nil @tab.time
+ refute_predicate @tab, :built_as_bottle
+ assert_predicate @tab, :poured_from_bottle
+ end
+
+ def test_from_file
+ path = Pathname.new(TEST_DIRECTORY).join("fixtures", "receipt.json")
+ tab = Tab.from_file(path)
+
+ assert_equal @used.to_a, tab.used_options.to_a
+ assert_equal @unused.to_a, tab.unused_options.to_a
+ assert_equal (@used + @unused).to_a, tab.options.to_a
+ refute_predicate tab, :built_as_bottle
+ assert_predicate tab, :poured_from_bottle
+ assert_equal "Homebrew/homebrew", tab.tapped_from
+ refute_nil tab.time
+ assert_equal TEST_SHA1, tab.HEAD
+ assert_equal :clang, tab.cxxstdlib.compiler
+ assert_equal :libcxx, tab.cxxstdlib.type
+ end
+end