File: meta_test.rb

package info (click to toggle)
ruby-browser 5.3.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 872 kB
  • sloc: ruby: 4,752; makefile: 13
file content (57 lines) | stat: -rw-r--r-- 1,372 bytes parent folder | download
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