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
|