ruby-oembed 0.14.0 → 0.14.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2ce690eea65c79e7df55ec323c59bf8c2ec43c9b94c1f084ad558b70c392cef9
4
- data.tar.gz: b964d57ad3902a1dc99911aecc7f7f566a89ce2b6fdaa22ab34763c01a4e8aba
3
+ metadata.gz: 98b11115f745309211d4fdd9856ee88d281e22b15bfd86facf82caaff3e9b6e3
4
+ data.tar.gz: 83386c348c75465abc60fc57cb866355e7d07f65b5770090440d2a3512e4a3f1
5
5
  SHA512:
6
- metadata.gz: 5e694d02b886ff90fa2d14afcbaefeda99ab258e632d8126e0e2d61c308edb0eb3001cd517ce1342e3eea033d31eeca1a8016068392e406689ffb08c95242c02
7
- data.tar.gz: 3aba0c2994ae8fa2b87a172e03dfb4a529eec7ccfabd393b2182a91822bb4856ae2409983d0cb3755a092a191729d0af84c755f14e384a3cd5a2ce9c80b814f6
6
+ metadata.gz: a39256713d10577bca4888c6dbdb53c849cb4e9e6bd79b21c8692842091d634b71bd9f151eb46adbb71af6c5b4ae463d676a5e1b72da2ac8a72c0f933bc0ac40
7
+ data.tar.gz: f7d2ad213770c02f235925e234d89158ac3ec3cf6b94aa5e926eb539fd5cce67759a5a4a6ca56a8ae483fd0bb997d6ffe90f8884369238d2b9073b8e5fd95e7f
@@ -1,11 +1,15 @@
1
1
  = CHANGELOG
2
2
 
3
- == Unreleased (0.14.1)
3
+ == Unreleased (0.14.2)
4
4
 
5
5
 
6
+ == 0.14.1 - 28 December 2020
7
+
8
+ * Fix the YouTube provider when given a private video; Issue #79 (Sebastian Schulze)
9
+
6
10
  == 0.14.0 - 5 November 2020
7
11
 
8
- * Add support for Facebook/Instragram access tokens; Pull #75 (Inge Jørgensen)
12
+ * Add support for Facebook/Instagram access tokens; Pull #75 (Inge Jørgensen)
9
13
 
10
14
  == 0.13.1 - 25 May 2020
11
15
 
data/README.md CHANGED
@@ -50,8 +50,8 @@ OEmbed::Providers.register_all
50
50
 
51
51
  #### Currently supported access tokens
52
52
 
53
- | access_token | environment variable | Associaed Providers |
54
- |--------------|-------------------------|---------------------|
53
+ | access_token | environment variable | Associated Providers |
54
+ |--------------|-------------------------|----------------------|
55
55
  | `:facebook` | `OEMBED_FACEBOOK_TOKEN` | `FacebookPost`, `FacebookVideo`, `Instagram` |
56
56
 
57
57
  ## Custom Providers
@@ -157,7 +157,7 @@ module OEmbed
157
157
  # OEmbed::Providers::Youtube.endpoint += "?iframe=0"
158
158
  # * To require https embed code
159
159
  # OEmbed::Providers::Youtube.endpoint += "?scheme=https"
160
- Youtube = OEmbed::Provider.new("https://www.youtube.com/oembed?scheme=https")
160
+ Youtube = OEmbed::Provider.new("https://www.youtube.com/oembed/?scheme=https")
161
161
  Youtube << "http://*.youtube.com/*"
162
162
  Youtube << "https://*.youtube.com/*"
163
163
  Youtube << "http://*.youtu.be/*"
@@ -2,7 +2,7 @@ module OEmbed
2
2
  class Version
3
3
  MAJOR = 0
4
4
  MINOR = 14
5
- PATCH = 0
5
+ PATCH = 1
6
6
  STRING = "#{MAJOR}.#{MINOR}.#{PATCH}"
7
7
 
8
8
  class << self
@@ -0,0 +1,211 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://www.youtube.com/oembed/?format=json&scheme=https&url=https://www.youtube.com/watch?v=pO5L6vXtxsI
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Mozilla/5.0 (compatible; ruby-oembed/0.14.0)
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Strict-Transport-Security:
22
+ - max-age=31536000
23
+ Cache-Control:
24
+ - no-cache
25
+ Content-Type:
26
+ - application/json
27
+ P3p:
28
+ - CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en
29
+ for more info."
30
+ Expires:
31
+ - Tue, 27 Apr 1971 19:44:06 GMT
32
+ X-Content-Type-Options:
33
+ - nosniff
34
+ Date:
35
+ - Mon, 28 Dec 2020 15:32:04 GMT
36
+ Server:
37
+ - YouTube Frontend Proxy
38
+ X-Xss-Protection:
39
+ - '0'
40
+ Alt-Svc:
41
+ - h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443";
42
+ ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
43
+ Accept-Ranges:
44
+ - none
45
+ Vary:
46
+ - Accept-Encoding
47
+ Transfer-Encoding:
48
+ - chunked
49
+ body:
50
+ encoding: UTF-8
51
+ string: '{"title":"CKEditor 4.5 - Embedding Media Resources with oEmbed","author_name":"CKEditor
52
+ Ecosystem","author_url":"https://www.youtube.com/c/CKEditor","type":"video","height":270,"width":480,"version":"1.0","provider_name":"YouTube","provider_url":"https://www.youtube.com/","thumbnail_height":360,"thumbnail_width":480,"thumbnail_url":"https://i.ytimg.com/vi/pO5L6vXtxsI/hqdefault.jpg","html":"\u003ciframe
53
+ width=\u0022480\u0022 height=\u0022270\u0022 src=\u0022https://www.youtube.com/embed/pO5L6vXtxsI?feature=oembed\u0022
54
+ frameborder=\u00220\u0022 allow=\u0022accelerometer; autoplay; clipboard-write;
55
+ encrypted-media; gyroscope; picture-in-picture\u0022 allowfullscreen\u003e\u003c/iframe\u003e"}'
56
+ recorded_at: Mon, 28 Dec 2020 15:32:04 GMT
57
+ - request:
58
+ method: get
59
+ uri: https://www.youtube.com/oembed/?format=json&scheme=https&url=http://www.youtube.com/watch?v=pO5L6vXtxsI
60
+ body:
61
+ encoding: US-ASCII
62
+ string: ''
63
+ headers:
64
+ Accept-Encoding:
65
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
66
+ Accept:
67
+ - "*/*"
68
+ User-Agent:
69
+ - Mozilla/5.0 (compatible; ruby-oembed/0.14.0)
70
+ response:
71
+ status:
72
+ code: 200
73
+ message: OK
74
+ headers:
75
+ P3p:
76
+ - CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en
77
+ for more info."
78
+ Cache-Control:
79
+ - no-cache
80
+ Content-Type:
81
+ - application/json
82
+ Strict-Transport-Security:
83
+ - max-age=31536000
84
+ Expires:
85
+ - Tue, 27 Apr 1971 19:44:06 GMT
86
+ X-Content-Type-Options:
87
+ - nosniff
88
+ Date:
89
+ - Mon, 28 Dec 2020 15:32:04 GMT
90
+ Server:
91
+ - YouTube Frontend Proxy
92
+ X-Xss-Protection:
93
+ - '0'
94
+ Alt-Svc:
95
+ - h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443";
96
+ ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
97
+ Accept-Ranges:
98
+ - none
99
+ Vary:
100
+ - Accept-Encoding
101
+ Transfer-Encoding:
102
+ - chunked
103
+ body:
104
+ encoding: UTF-8
105
+ string: '{"title":"CKEditor 4.5 - Embedding Media Resources with oEmbed","author_name":"CKEditor
106
+ Ecosystem","author_url":"https://www.youtube.com/c/CKEditor","type":"video","height":270,"width":480,"version":"1.0","provider_name":"YouTube","provider_url":"https://www.youtube.com/","thumbnail_height":360,"thumbnail_width":480,"thumbnail_url":"https://i.ytimg.com/vi/pO5L6vXtxsI/hqdefault.jpg","html":"\u003ciframe
107
+ width=\u0022480\u0022 height=\u0022270\u0022 src=\u0022https://www.youtube.com/embed/pO5L6vXtxsI?feature=oembed\u0022
108
+ frameborder=\u00220\u0022 allow=\u0022accelerometer; autoplay; clipboard-write;
109
+ encrypted-media; gyroscope; picture-in-picture\u0022 allowfullscreen\u003e\u003c/iframe\u003e"}'
110
+ recorded_at: Mon, 28 Dec 2020 15:32:04 GMT
111
+ - request:
112
+ method: get
113
+ uri: https://www.youtube.com/oembed/?format=json&scheme=https&url=https://youtu.be/pO5L6vXtxsI
114
+ body:
115
+ encoding: US-ASCII
116
+ string: ''
117
+ headers:
118
+ Accept-Encoding:
119
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
120
+ Accept:
121
+ - "*/*"
122
+ User-Agent:
123
+ - Mozilla/5.0 (compatible; ruby-oembed/0.14.0)
124
+ response:
125
+ status:
126
+ code: 200
127
+ message: OK
128
+ headers:
129
+ Expires:
130
+ - Tue, 27 Apr 1971 19:44:06 GMT
131
+ P3p:
132
+ - CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en
133
+ for more info."
134
+ Content-Type:
135
+ - application/json
136
+ Cache-Control:
137
+ - no-cache
138
+ X-Content-Type-Options:
139
+ - nosniff
140
+ Strict-Transport-Security:
141
+ - max-age=31536000
142
+ Date:
143
+ - Mon, 28 Dec 2020 15:32:04 GMT
144
+ Server:
145
+ - YouTube Frontend Proxy
146
+ X-Xss-Protection:
147
+ - '0'
148
+ Alt-Svc:
149
+ - h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443";
150
+ ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
151
+ Accept-Ranges:
152
+ - none
153
+ Vary:
154
+ - Accept-Encoding
155
+ Transfer-Encoding:
156
+ - chunked
157
+ body:
158
+ encoding: UTF-8
159
+ string: '{"title":"CKEditor 4.5 - Embedding Media Resources with oEmbed","author_name":"CKEditor
160
+ Ecosystem","author_url":"https://www.youtube.com/c/CKEditor","type":"video","height":270,"width":480,"version":"1.0","provider_name":"YouTube","provider_url":"https://www.youtube.com/","thumbnail_height":360,"thumbnail_width":480,"thumbnail_url":"https://i.ytimg.com/vi/pO5L6vXtxsI/hqdefault.jpg","html":"\u003ciframe
161
+ width=\u0022480\u0022 height=\u0022270\u0022 src=\u0022https://www.youtube.com/embed/pO5L6vXtxsI?feature=oembed\u0022
162
+ frameborder=\u00220\u0022 allow=\u0022accelerometer; autoplay; clipboard-write;
163
+ encrypted-media; gyroscope; picture-in-picture\u0022 allowfullscreen\u003e\u003c/iframe\u003e"}'
164
+ recorded_at: Mon, 28 Dec 2020 15:32:04 GMT
165
+ - request:
166
+ method: get
167
+ uri: https://www.youtube.com/oembed/?format=json&scheme=https&url=https://youtu.be/NHriYTkvd0g
168
+ body:
169
+ encoding: US-ASCII
170
+ string: ''
171
+ headers:
172
+ Accept-Encoding:
173
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
174
+ Accept:
175
+ - "*/*"
176
+ User-Agent:
177
+ - Mozilla/5.0 (compatible; ruby-oembed/0.14.0)
178
+ response:
179
+ status:
180
+ code: 403
181
+ message: Forbidden
182
+ headers:
183
+ Strict-Transport-Security:
184
+ - max-age=31536000
185
+ Content-Length:
186
+ - '9'
187
+ X-Content-Type-Options:
188
+ - nosniff
189
+ Content-Type:
190
+ - text/html; charset=utf-8
191
+ Cache-Control:
192
+ - no-cache
193
+ P3p:
194
+ - CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en
195
+ for more info."
196
+ Expires:
197
+ - Tue, 27 Apr 1971 19:44:06 GMT
198
+ Date:
199
+ - Mon, 28 Dec 2020 15:32:04 GMT
200
+ Server:
201
+ - YouTube Frontend Proxy
202
+ X-Xss-Protection:
203
+ - '0'
204
+ Alt-Svc:
205
+ - h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443";
206
+ ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
207
+ body:
208
+ encoding: UTF-8
209
+ string: Forbidden
210
+ recorded_at: Mon, 28 Dec 2020 15:32:04 GMT
211
+ recorded_with: VCR 6.0.0
@@ -49,108 +49,108 @@ describe OEmbed::Provider do
49
49
  end
50
50
 
51
51
  it "should allow no URI schema to be given" do
52
- provier = OEmbed::Provider.new("http://foo.com/oembed")
53
-
54
- expect(provier).to include("http://foo.com/1")
55
- expect(provier).to include("http://bar.foo.com/1")
56
- expect(provier).to include("http://bar.foo.com/show/1")
57
- expect(provier).to include("https://bar.foo.com/1")
58
- expect(provier).to include("http://asdf.com/1")
59
- expect(provier).to include("asdf")
52
+ provider = OEmbed::Provider.new("http://foo.com/oembed")
53
+
54
+ expect(provider).to include("http://foo.com/1")
55
+ expect(provider).to include("http://bar.foo.com/1")
56
+ expect(provider).to include("http://bar.foo.com/show/1")
57
+ expect(provider).to include("https://bar.foo.com/1")
58
+ expect(provider).to include("http://asdf.com/1")
59
+ expect(provider).to include("asdf")
60
60
  end
61
61
 
62
62
  it "should allow a String as a URI schema" do
63
- provier = OEmbed::Provider.new("http://foo.com/oembed")
64
- provier << "http://bar.foo.com/*"
63
+ provider = OEmbed::Provider.new("http://foo.com/oembed")
64
+ provider << "http://bar.foo.com/*"
65
65
 
66
- expect(provier).to include("http://bar.foo.com/1")
67
- expect(provier).to include("http://bar.foo.com/show/1")
66
+ expect(provider).to include("http://bar.foo.com/1")
67
+ expect(provider).to include("http://bar.foo.com/show/1")
68
68
 
69
- expect(provier).to_not include("https://bar.foo.com/1")
70
- expect(provier).to_not include("http://foo.com/1")
69
+ expect(provider).to_not include("https://bar.foo.com/1")
70
+ expect(provider).to_not include("http://foo.com/1")
71
71
  end
72
72
 
73
73
  it "should allow multiple path wildcards in a String URI schema" do
74
- provier = OEmbed::Provider.new("http://foo.com/oembed")
75
- provier << "http://bar.foo.com/*/show/*"
74
+ provider = OEmbed::Provider.new("http://foo.com/oembed")
75
+ provider << "http://bar.foo.com/*/show/*"
76
76
 
77
- expect(provier).to include("http://bar.foo.com/photo/show/1")
78
- expect(provier).to include("http://bar.foo.com/video/show/2")
79
- expect(provier).to include("http://bar.foo.com/help/video/show/2")
77
+ expect(provider).to include("http://bar.foo.com/photo/show/1")
78
+ expect(provider).to include("http://bar.foo.com/video/show/2")
79
+ expect(provider).to include("http://bar.foo.com/help/video/show/2")
80
80
 
81
- expect(provier).to_not include("https://bar.foo.com/photo/show/1")
82
- expect(provier).to_not include("http://foo.com/video/show/2")
83
- expect(provier).to_not include("http://bar.foo.com/show/1")
84
- expect(provier).to_not include("http://bar.foo.com/1")
81
+ expect(provider).to_not include("https://bar.foo.com/photo/show/1")
82
+ expect(provider).to_not include("http://foo.com/video/show/2")
83
+ expect(provider).to_not include("http://bar.foo.com/show/1")
84
+ expect(provider).to_not include("http://bar.foo.com/1")
85
85
  end
86
86
 
87
87
  it "should NOT allow multiple domain wildcards in a String URI schema", :pending => true do
88
- provier = OEmbed::Provider.new("http://foo.com/oembed")
88
+ provider = OEmbed::Provider.new("http://foo.com/oembed")
89
89
 
90
- expect { provier << "http://*.com/*" }.
90
+ expect { provider << "http://*.com/*" }.
91
91
  to raise_error(ArgumentError)
92
92
 
93
- expect(provier).to_not include("http://foo.com/1")
93
+ expect(provider).to_not include("http://foo.com/1")
94
94
  end
95
95
 
96
96
  it "should allow a sub-domain wildcard in String URI schema" do
97
- provier = OEmbed::Provider.new("http://foo.com/oembed")
98
- provier << "http://*.foo.com/*"
97
+ provider = OEmbed::Provider.new("http://foo.com/oembed")
98
+ provider << "http://*.foo.com/*"
99
99
 
100
- expect(provier).to include("http://bar.foo.com/1")
101
- expect(provier).to include("http://foo.foo.com/2")
102
- expect(provier).to include("http://foo.com/3")
100
+ expect(provider).to include("http://bar.foo.com/1")
101
+ expect(provider).to include("http://foo.foo.com/2")
102
+ expect(provider).to include("http://foo.com/3")
103
103
 
104
- expect(provier).to_not include("https://bar.foo.com/1")
105
- expect(provier).to_not include("http://my.bar.foo.com/1")
104
+ expect(provider).to_not include("https://bar.foo.com/1")
105
+ expect(provider).to_not include("http://my.bar.foo.com/1")
106
106
 
107
- provier << "http://my.*.foo.com/*"
107
+ provider << "http://my.*.foo.com/*"
108
108
  end
109
109
 
110
110
  it "should allow multiple sub-domain wildcards in a String URI schema" do
111
- provier = OEmbed::Provider.new("http://foo.com/oembed")
112
- provier << "http://*.my.*.foo.com/*"
111
+ provider = OEmbed::Provider.new("http://foo.com/oembed")
112
+ provider << "http://*.my.*.foo.com/*"
113
113
 
114
- expect(provier).to include("http://my.bar.foo.com/1")
115
- expect(provier).to include("http://my.foo.com/2")
116
- expect(provier).to include("http://bar.my.bar.foo.com/3")
114
+ expect(provider).to include("http://my.bar.foo.com/1")
115
+ expect(provider).to include("http://my.foo.com/2")
116
+ expect(provider).to include("http://bar.my.bar.foo.com/3")
117
117
 
118
- expect(provier).to_not include("http://bar.foo.com/1")
119
- expect(provier).to_not include("http://foo.bar.foo.com/1")
118
+ expect(provider).to_not include("http://bar.foo.com/1")
119
+ expect(provider).to_not include("http://foo.bar.foo.com/1")
120
120
  end
121
121
 
122
122
  it "should NOT allow a scheme wildcard in a String URI schema", :pending => true do
123
- provier = OEmbed::Provider.new("http://foo.com/oembed")
123
+ provider = OEmbed::Provider.new("http://foo.com/oembed")
124
124
 
125
- expect { provier << "*://foo.com/*" }.
125
+ expect { provider << "*://foo.com/*" }.
126
126
  to raise_error(ArgumentError)
127
127
 
128
- expect(provier).to_not include("http://foo.com/1")
128
+ expect(provider).to_not include("http://foo.com/1")
129
129
  end
130
130
 
131
131
  it "should allow a scheme other than http in a String URI schema" do
132
- provier = OEmbed::Provider.new("http://foo.com/oembed")
133
- provier << "https://foo.com/*"
132
+ provider = OEmbed::Provider.new("http://foo.com/oembed")
133
+ provider << "https://foo.com/*"
134
134
 
135
- expect(provier).to include("https://foo.com/1")
135
+ expect(provider).to include("https://foo.com/1")
136
136
 
137
137
  gopher_url = "gopher://foo.com/1"
138
- expect(provier).to_not include(gopher_url)
139
- provier << "gopher://foo.com/*"
140
- expect(provier).to include(gopher_url)
138
+ expect(provider).to_not include(gopher_url)
139
+ provider << "gopher://foo.com/*"
140
+ expect(provider).to include(gopher_url)
141
141
  end
142
142
 
143
143
  it "should allow a Regexp as a URI schema" do
144
- provier = OEmbed::Provider.new("http://foo.com/oembed")
145
- provier << %r{^https?://([^\.]*\.)?foo.com/(show/)?\d+}
144
+ provider = OEmbed::Provider.new("http://foo.com/oembed")
145
+ provider << %r{^https?://([^\.]*\.)?foo.com/(show/)?\d+}
146
146
 
147
- expect(provier).to include("http://bar.foo.com/1")
148
- expect(provier).to include("http://bar.foo.com/show/1")
149
- expect(provier).to include("http://foo.com/1")
150
- expect(provier).to include("https://bar.foo.com/1")
147
+ expect(provider).to include("http://bar.foo.com/1")
148
+ expect(provider).to include("http://bar.foo.com/show/1")
149
+ expect(provider).to include("http://foo.com/1")
150
+ expect(provider).to include("https://bar.foo.com/1")
151
151
 
152
- expect(provier).to_not include("http://bar.foo.com/video/1")
153
- expect(provier).to_not include("gopher://foo.com/1")
152
+ expect(provider).to_not include("http://bar.foo.com/video/1")
153
+ expect(provider).to_not include("gopher://foo.com/1")
154
154
  end
155
155
 
156
156
  it "should by default use OEmbed::Formatter.default" do
@@ -35,7 +35,7 @@ describe 'OEmbed::Providers::Slideshare' do
35
35
  )
36
36
 
37
37
  it_should_behave_like(
38
- "an OEmbed::Proviers instance",
38
+ "an OEmbed::Providers instance",
39
39
  expected_valid_urls,
40
40
  expected_invalid_urls
41
41
  )
@@ -23,7 +23,7 @@ describe 'OEmbed::Providers::Twitter' do
23
23
  )
24
24
 
25
25
  it_should_behave_like(
26
- "an OEmbed::Proviers instance",
26
+ "an OEmbed::Providers instance",
27
27
  expected_valid_urls,
28
28
  expected_invalid_urls
29
29
  )
@@ -0,0 +1,42 @@
1
+ require File.join(File.dirname(__FILE__), '../spec_helper')
2
+
3
+ describe 'OEmbed::Providers::Youtube' do
4
+ before(:all) do
5
+ VCR.insert_cassette('OEmbed_Providers_Youtube')
6
+ end
7
+ after(:all) do
8
+ VCR.eject_cassette
9
+ end
10
+
11
+ include OEmbedSpecHelper
12
+
13
+ let(:provider_class) { OEmbed::Providers::Youtube }
14
+
15
+ expected_valid_urls = %w(
16
+ https://www.youtube.com/watch?v=pO5L6vXtxsI
17
+ http://www.youtube.com/watch?v=pO5L6vXtxsI
18
+ https://youtu.be/pO5L6vXtxsI
19
+ )
20
+ expected_invalid_urls = [
21
+ # Unrecognized hostname
22
+ 'https://www.youtube.co.uk/watch?v=pO5L6vXtxsI',
23
+ ]
24
+
25
+ it_should_behave_like(
26
+ "an OEmbed::Providers instance",
27
+ expected_valid_urls,
28
+ expected_invalid_urls
29
+ )
30
+
31
+ describe ".get" do
32
+ context 'given the URL of a private video' do
33
+ let(:invalid_url) { 'https://youtu.be/NHriYTkvd0g' }
34
+
35
+ it "should throw an UnknownResponse error" do
36
+ expect {
37
+ provider_class.get(invalid_url)
38
+ }.to raise_error(OEmbed::UnknownResponse, /403/)
39
+ end
40
+ end
41
+ end
42
+ end
@@ -1,4 +1,4 @@
1
- RSpec.shared_examples "an OEmbed::Proviers instance" do |expected_valid_urls, expected_invalid_urls|
1
+ RSpec.shared_examples "an OEmbed::Providers instance" do |expected_valid_urls, expected_invalid_urls|
2
2
  expected_valid_urls.each do |valid_url|
3
3
  context "given the valid URL #{valid_url}" do
4
4
  describe ".include?" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-oembed
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 0.14.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Magnus Holm
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2020-11-05 00:00:00.000000000 Z
14
+ date: 2020-12-28 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: xml-simple
@@ -98,6 +98,7 @@ files:
98
98
  - spec/cassettes/OEmbed_ProviderDiscovery.yml
99
99
  - spec/cassettes/OEmbed_Providers_Slideshare.yml
100
100
  - spec/cassettes/OEmbed_Providers_Twitter.yml
101
+ - spec/cassettes/OEmbed_Providers_Youtube.yml
101
102
  - spec/formatter/ducktype_backend_spec.rb
102
103
  - spec/formatter/json/.DS_Store
103
104
  - spec/formatter/json/jsongem_backend_spec.rb
@@ -111,6 +112,7 @@ files:
111
112
  - spec/providers/facebook_spec.rb
112
113
  - spec/providers/slideshare_spec.rb
113
114
  - spec/providers/twitter_spec.rb
115
+ - spec/providers/youtube_spec.rb
114
116
  - spec/providers_spec.rb
115
117
  - spec/response_spec.rb
116
118
  - spec/spec_helper.rb
@@ -125,7 +127,7 @@ rdoc_options:
125
127
  - "--main"
126
128
  - README.rdoc
127
129
  - "--title"
128
- - ruby-oembed-0.14.0
130
+ - ruby-oembed-0.14.1
129
131
  - "--inline-source"
130
132
  - "--exclude"
131
133
  - tasks
@@ -152,6 +154,7 @@ test_files:
152
154
  - spec/cassettes/OEmbed_ProviderDiscovery.yml
153
155
  - spec/cassettes/OEmbed_Providers_Slideshare.yml
154
156
  - spec/cassettes/OEmbed_Providers_Twitter.yml
157
+ - spec/cassettes/OEmbed_Providers_Youtube.yml
155
158
  - spec/formatter/ducktype_backend_spec.rb
156
159
  - spec/formatter/json/.DS_Store
157
160
  - spec/formatter/json/jsongem_backend_spec.rb
@@ -165,6 +168,7 @@ test_files:
165
168
  - spec/providers/facebook_spec.rb
166
169
  - spec/providers/slideshare_spec.rb
167
170
  - spec/providers/twitter_spec.rb
171
+ - spec/providers/youtube_spec.rb
168
172
  - spec/providers_spec.rb
169
173
  - spec/response_spec.rb
170
174
  - spec/spec_helper.rb