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 50 51 52 53 54 55 56 57
|
# frozen_string_literal: true
require "test_helper"
class MetaTest < Minitest::Test
class CustomRule < Browser::Meta::Base
def meta
"custom" if /Custom/.match?(browser.ua)
end
end
test "extend rules" do
Browser::Meta.rules.unshift(CustomRule)
browser = Browser.new("Custom")
assert browser.meta.include?("custom")
browser = Browser.new("Safari")
refute browser.meta.include?("custom")
Browser::Meta.rules.shift
browser = Browser.new("Custom")
refute browser.meta.include?("custom")
end
test "sets meta" do
browser = Browser.new(Browser["CHROME"])
assert_kind_of Array, browser.meta
end
test "returns string representation" do
browser = Browser.new(Browser["CHROME"])
meta = browser.to_s
assert meta.include?("chrome")
assert meta.include?("webkit")
assert meta.include?("mac")
end
test "returns string representation for mobile" do
browser = Browser.new(Browser["BLACKBERRY"])
meta = browser.to_s
assert meta.include?("blackberry")
assert meta.include?("mobile")
end
test "returns string representation for unknown platform/device/browser" do
browser = Browser.new("Unknown")
meta = browser.to_s
assert meta.include?("unknown_platform")
assert meta.include?("unknown_device")
assert meta.include?("unknown_browser")
end
end
|