File: itunes_user_agent_spec.rb

package info (click to toggle)
ruby-useragent 0.16.8-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 368 kB
  • sloc: ruby: 4,824; makefile: 2
file content (143 lines) | stat: -rw-r--r-- 4,758 bytes parent folder | download | duplicates (3)
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
require 'user_agent'

shared_examples "iTunes" do
  it "should return 'iTunes' as its browser" do
    expect(@useragent.browser).to eq("iTunes")
  end

  it "should return nil as its security" do
    expect(@useragent.security).to be_nil
  end
end

shared_examples "iTunes runs on" do |platform, os|
  it "should return '#{platform}' as its platform" do
    expect(@useragent.platform).to eq(platform)
  end

  it "should return '#{os}' as its OS" do
    expect(@useragent.os).to eq(os)
  end
end

shared_examples "iTunes has version number" do |version|
  it "should return '#{version}' as its version" do
    expect(@useragent.version).to eq(version)
  end
end

shared_examples "iTunes has WebKit build number" do |version|
  it "should return '#{version}' as its WebKit build number" do
    expect(@useragent.build).to eq(version)
  end
end

describe "UserAgent: iTunes/10.6.1 (Macintosh; Intel Mac OS X 10.7.3) AppleWebKit/534.53.11" do
  before do
    @useragent = UserAgent.parse("iTunes/10.6.1 (Macintosh; Intel Mac OS X 10.7.3) AppleWebKit/534.53.11")
  end

  it_behaves_like "iTunes"
  it_behaves_like "iTunes runs on", "Macintosh", "OS X 10.7.3"
  it_behaves_like "iTunes has version number", "10.6.1"
  it_behaves_like "iTunes has WebKit build number", "534.53.11"
end

describe "UserAgent: iTunes/12.0.1 (Macintosh; OS X 10.10) AppleWebKit/0600.1.25" do
  before do
    @useragent = UserAgent.parse("iTunes/12.0.1 (Macintosh; OS X 10.10) AppleWebKit/0600.1.25")
  end

  it_behaves_like "iTunes"
  it_behaves_like "iTunes runs on", "Macintosh", "OS X 10.10"
  it_behaves_like "iTunes has version number", "12.0.1"
  it_behaves_like "iTunes has WebKit build number", "0600.1.25"

  # this really only needs tested once since we're fixing the parse error for Windows only
  it "should return 'OS X 10.10' as its full OS" do
    expect(@useragent.full_os).to eq("OS X 10.10")
  end
end

describe "UserAgent: iTunes/11.1.5 (Windows; Microsoft Windows 7 x64 Business Edition Service Pack 1 (Build 7601)) AppleWebKit/537.60.15" do
  before do
    @useragent = UserAgent.parse("iTunes/11.1.5 (Windows; Microsoft Windows 7 x64 Business Edition Service Pack 1 (Build 7601)) AppleWebKit/537.60.15")
  end

  it_behaves_like "iTunes"
  it_behaves_like "iTunes runs on", "Windows", "Windows 7"
  it_behaves_like "iTunes has version number", "11.1.5"
  it_behaves_like "iTunes has WebKit build number", "537.60.15"

  it "should return 'Microsoft Windows 7 x64 Business Edition Service Pack 1 (Build 7601)' as its full OS" do
    expect(@useragent.full_os).to eq("Microsoft Windows 7 x64 Business Edition Service Pack 1 (Build 7601)")
  end
end

describe "UserAgent: iTunes/12.0.1 (Windows; Microsoft Windows 8 x64 Home Premium Edition (Build 9200)) AppleWebKit/7600.1017.0.24" do
  before do
    @useragent = UserAgent.parse("iTunes/12.0.1 (Windows; Microsoft Windows 8 x64 Home Premium Edition (Build 9200)) AppleWebKit/7600.1017.0.24")
  end

  it_behaves_like "iTunes"
  it_behaves_like "iTunes runs on", "Windows", "Windows 8"
  it_behaves_like "iTunes has version number", "12.0.1"
  it_behaves_like "iTunes has WebKit build number", "7600.1017.0.24"

  it "should return 'Microsoft Windows 8 x64 Home Premium Edition (Build 9200)' as its full OS" do
    expect(@useragent.full_os).to eq("Microsoft Windows 8 x64 Home Premium Edition (Build 9200)")
  end
end

describe "UserAgent: iTunes/12.0.1 (Macintosh; OS X 10.10.1) AppleWebKit/0600.1.25" do
  before do
    @useragent = UserAgent.parse("iTunes/12.0.1 (Macintosh; OS X 10.10.1) AppleWebKit/0600.1.25")
  end

  it_behaves_like "iTunes"
  it_behaves_like "iTunes runs on", "Macintosh", "OS X 10.10.1"
  it_behaves_like "iTunes has version number", "12.0.1"
  it_behaves_like "iTunes has WebKit build number", "0600.1.25"
end

describe "UserAgent: iTunes/9.1.1" do
  before do
    @useragent = UserAgent.parse("iTunes/9.1.1")
  end

  it_behaves_like "iTunes"
  it_behaves_like "iTunes has version number", "9.1.1"

  it "should return nil for WebKit build number" do
    expect(@useragent.build).to be_nil
  end

  it "should return nil for the OS" do
    expect(@useragent.os).to be_nil
  end

  it "should return nil for the platform" do
    expect(@useragent.platform).to be_nil
  end
end

describe "UserAgent: iTunes/10.7 Downcast/2.8.26.1005" do
  before do
    @useragent = UserAgent.parse("iTunes/10.7 Downcast/2.8.26.1005")
  end

  it_behaves_like "iTunes"
  it_behaves_like "iTunes has version number", "10.7"

  it "should return nil for WebKit build number" do
    expect(@useragent.build).to be_nil
  end

  it "should return nil for the OS" do
    expect(@useragent.os).to be_nil
  end

  it "should return nil for the platform" do
    expect(@useragent.platform).to be_nil
  end
end