-
Notifications
You must be signed in to change notification settings - Fork 68
Support deeper levels of subdomains from RFC 6265 #35
base: master
Are you sure you want to change the base?
Conversation
@@ -211,6 +211,9 @@ | |||
it 'should return nil for a root domain' do | |||
expect(CookieValidation.hostname_reach('github.com')).to be_nil | |||
end | |||
it 'should return nil for a two part tld' do | |||
expect(CookieValidation.hostname_reach('co.nz')).to be_nil |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Style/StringLiterals: Prefer double-quoted strings unless you need single quotes to avoid extra backslashes for escaping.
@@ -211,6 +211,9 @@ | |||
it 'should return nil for a root domain' do | |||
expect(CookieValidation.hostname_reach('github.com')).to be_nil | |||
end | |||
it 'should return nil for a two part tld' do |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Style/StringLiterals: Prefer double-quoted strings unless you need single quotes to avoid extra backslashes for escaping.
it 'should not match superdomains, or illegal domains' do | ||
expect(CookieValidation.domains_match('.z.foo.com', 'x.y.z.foo.com')).to be_nil | ||
it 'should not match tlds, or illegal domains' do | ||
expect(CookieValidation.domains_match('.com', 'x.y.z.foo.com')).to be_nil |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Style/StringLiterals: Prefer double-quoted strings unless you need single quotes to avoid extra backslashes for escaping.
end | ||
it 'should not match superdomains, or illegal domains' do | ||
expect(CookieValidation.domains_match('.z.foo.com', 'x.y.z.foo.com')).to be_nil | ||
it 'should not match tlds, or illegal domains' do |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Style/StringLiterals: Prefer double-quoted strings unless you need single quotes to avoid extra backslashes for escaping.
@@ -190,9 +189,10 @@ | |||
it 'should handle matching a superdomain' do | |||
expect(CookieValidation.domains_match('.foo.com', 'auth.foo.com')).to eq '.foo.com' | |||
expect(CookieValidation.domains_match('.y.z.foo.com', 'x.y.z.foo.com')).to eq '.y.z.foo.com' | |||
expect(CookieValidation.domains_match('.z.foo.com', 'x.y.z.foo.com')).to eq '.z.foo.com' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Style/StringLiterals: Prefer double-quoted strings unless you need single quotes to avoid extra backslashes for escaping.
Metrics/LineLength: Line is too long. [94/80]
@@ -129,6 +124,10 @@ | |||
expect(CookieValidation.compute_search_domains('http://zero/')).to eq( | |||
['zero.local', '.zero.local', '.local']) | |||
end | |||
it 'should handle multi-part tlds' do | |||
expect(CookieValidation.compute_search_domains('http://foo.co.nz/')).to eq( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Style/StringLiterals: Prefer double-quoted strings unless you need single quotes to avoid extra backslashes for escaping.
Metrics/LineLength: Line is too long. [81/80]
@@ -129,6 +124,10 @@ | |||
expect(CookieValidation.compute_search_domains('http://zero/')).to eq( | |||
['zero.local', '.zero.local', '.local']) | |||
end | |||
it 'should handle multi-part tlds' do |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Style/StringLiterals: Prefer double-quoted strings unless you need single quotes to avoid extra backslashes for escaping.
@@ -111,7 +106,7 @@ | |||
describe '#compute_search_domains' do | |||
it 'should handle subdomains' do | |||
expect(CookieValidation.compute_search_domains('http://www.auth.foo.com/')).to eq( | |||
['www.auth.foo.com', '.www.auth.foo.com', '.auth.foo.com']) | |||
['www.auth.foo.com', '.www.auth.foo.com', '.auth.foo.com', '.foo.com']) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Style/StringLiterals: Prefer double-quoted strings unless you need single quotes to avoid extra backslashes for escaping.
Layout/MultilineMethodCallBraceLayout: Closing method call brace must be on the line after the last argument when opening brace is on a separate line from the first argument.
@@ -107,7 +108,7 @@ def self.hostname_reach(hostname) | |||
host = to_domain hostname | |||
host = host.downcase | |||
match = BASE_HOSTNAME.match host | |||
match[1] if match | |||
match[1] if match && (PublicSuffix.valid?(match[1]) || match[1] == 'local') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Style/StringLiterals: Prefer double-quoted strings unless you need single quotes to avoid extra backslashes for escaping.
Metrics/LineLength: Line is too long. [81/80]
@@ -1,6 +1,7 @@ | |||
# frozen_string_literal: true | |||
require 'cgi' | |||
require 'uri' | |||
require 'public_suffix' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Style/StringLiterals: Prefer double-quoted strings unless you need single quotes to avoid extra backslashes for escaping.
@dwaite Can I do anything to help get this merged? |
Possible to get this one merged? |
Closes #25