epp-client 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 593b7e211a6bc863d15336709228708ce22368d2
4
- data.tar.gz: 8cacbdd420ff80c12238956fba39510219f66a82
3
+ metadata.gz: 647990ec77baa9d7c30a81821f7a3a13908ccf1a
4
+ data.tar.gz: 47c5fe61eeb149e4b04c903c908724351bc1b3e1
5
5
  SHA512:
6
- metadata.gz: d7df5c50e3af2f3db322e3c8ec211ac64c191cb4641e8774c8a089bc16da3ca1820a76357eb05095581a127546ba1b18090a3c1616ed854154cd4c39cbc37905
7
- data.tar.gz: b698287a84811a9305236a1113bd74d553280512c4baa920fb6a7548566807de6efa42ec4cf7c34b81110153792f0dcdbd9170ebdb9feaef008b8b41caac6f84
6
+ metadata.gz: 38ae880ae1595ebe6f8931e26360f94a7a21f075c30e284d7043a7533fef8288a0534c61657cb8e9b2dc882a486133cafa2fea4388c48009b560f520ec4d8101
7
+ data.tar.gz: c0711203d7872ff0f0585d39f343aa0953c98434ea365ce3f786e43baadc1f6401c7b2467a377451cc4bbfcc4fadef72b8e4ef6b6f0ca88de318972c51599f11
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- epp-client (2.0.0)
4
+ epp-client (2.1.0)
5
5
  libxml-ruby
6
6
 
7
7
  GEM
@@ -32,15 +32,15 @@ module EPP
32
32
  return @namespaces['domain'] if @namespaces.has_key?('domain')
33
33
  @namespaces['domain'] = xml_namespace(node, 'domain', NAMESPACE)
34
34
  end
35
-
36
- def period_to_xml(period)
37
- unit = period[-1,1]
38
- val = period.to_i.to_s
39
-
40
- p = domain_node('period', val)
41
- p['unit'] = unit
42
-
43
- p
35
+
36
+ def validate_period(period)
37
+ unit = period[-1,1].downcase
38
+ val = period.to_i
39
+
40
+ raise ArgumentError, "period suffix must either be 'm' or 'y'" unless %w(m y).include?(unit)
41
+ raise ArgumentError, "period value must be in the range 1-99" if val < 1 || val > 99
42
+
43
+ return val.to_s, unit
44
44
  end
45
45
 
46
46
  def auth_info_to_xml(auth_info)
@@ -21,6 +21,8 @@ module EPP
21
21
  @registrant = options.delete(:registrant)
22
22
  @contacts = options.delete(:contacts)
23
23
  @auth_info = options.delete(:auth_info)
24
+
25
+ @period_val, @period_unit = validate_period(@period)
24
26
  end
25
27
 
26
28
  def name
@@ -30,7 +32,13 @@ module EPP
30
32
  def to_xml
31
33
  node = super
32
34
  node << domain_node('name', @name)
33
- node << period_to_xml(@period) if @period
35
+
36
+ if @period_val && @period_unit
37
+ p = domain_node('period', @period_val)
38
+ p['unit'] = @period_unit
39
+
40
+ node << p
41
+ end
34
42
 
35
43
  unless @nameservers.empty?
36
44
  node << nameservers_to_xml(@nameservers)
@@ -3,14 +3,16 @@ require File.expand_path('../command', __FILE__)
3
3
  module EPP
4
4
  module Domain
5
5
  class Renew < Command
6
+ # @param [String] name Domain name to renew
7
+ # @param [Time,String] exp_date Expiration date of the domain
8
+ # @param [String] period Renewal period in XXy years or XXm months. XX must be between 1 and 99.
6
9
  def initialize(name, exp_date, period = nil)
7
10
  @name, @exp_date = name, exp_date
8
11
  @exp_date = Time.parse(exp_date) if exp_date.kind_of?(String)
9
12
 
10
- @period_unit = period[-1,1]
11
- @period_val = period.to_i.to_s
12
-
13
- raise ArgumentError, "period suffix must either be 'm' or 'y'" unless %w(m y).include?(@period_unit)
13
+ if period
14
+ @period_val, @period_unit = validate_period(period)
15
+ end
14
16
  end
15
17
 
16
18
  def name
@@ -22,10 +24,12 @@ module EPP
22
24
  node << domain_node('name', @name)
23
25
  node << domain_node('curExpDate', @exp_date.strftime("%Y-%m-%d"))
24
26
 
25
- p = domain_node('period', @period_val)
26
- p['unit'] = @period_unit
27
+ if @period_val && @period_unit
28
+ p = domain_node('period', @period_val)
29
+ p['unit'] = @period_unit
27
30
 
28
- node << p
31
+ node << p
32
+ end
29
33
 
30
34
  node
31
35
  end
@@ -6,8 +6,11 @@ module EPP
6
6
  # @auth_info[:ext] should be an XML::Node with whatever is required
7
7
  def initialize(name, period = nil, auth_info = {})
8
8
  @name = name
9
- @period = period
10
9
  @auth_info = auth_info
10
+
11
+ if period
12
+ @period_val, @period_unit = validate_period(period)
13
+ end
11
14
  end
12
15
 
13
16
  def name
@@ -17,7 +20,14 @@ module EPP
17
20
  def to_xml
18
21
  node = super
19
22
  node << domain_node('name', @name)
20
- node << period_to_xml(@period) if @period
23
+
24
+ if @period_val && @period_unit
25
+ p = domain_node('period', @period_val)
26
+ p['unit'] = @period_unit
27
+
28
+ node << p
29
+ end
30
+
21
31
  node << auth_info_to_xml(@auth_info) unless @auth_info.empty?
22
32
 
23
33
  node
@@ -1,3 +1,3 @@
1
1
  module EPP
2
- VERSION = '2.0.0'
2
+ VERSION = '2.1.0'
3
3
  end
@@ -50,4 +50,59 @@ class TestEppDomainCreateCommand < Test::Unit::TestCase
50
50
  assert_equal '2381728348', xpath_find('//domain:authInfo/domain:pw')
51
51
  end
52
52
  end
53
+
54
+ # Outside context for Ruby 1.8
55
+ def create_period(period)
56
+ EPP::Domain::Create.new('example.com',
57
+ :period => period, :registrant => 'UK-2349723',
58
+ :nameservers => %w(ns1.test.host ns2.test.host),
59
+ :auth_info => {:pw => '2381728348'})
60
+ end
61
+ context 'EPP::Domain::Create period' do
62
+ should 'accept 1m' do
63
+ assert_nothing_raised do
64
+ create_period '1m'
65
+ end
66
+ end
67
+ should 'accept 1y' do
68
+ assert_nothing_raised do
69
+ create_period '1m'
70
+ end
71
+ end
72
+ should 'accept 99m' do
73
+ assert_nothing_raised do
74
+ create_period '1m'
75
+ end
76
+ end
77
+ should 'accept 99y' do
78
+ assert_nothing_raised do
79
+ create_period '1m'
80
+ end
81
+ end
82
+ should 'reject 0m' do
83
+ assert_raises ArgumentError do
84
+ create_period '0m'
85
+ end
86
+ end
87
+ should 'reject 100m' do
88
+ assert_raises ArgumentError do
89
+ create_period '100m'
90
+ end
91
+ end
92
+ should 'reject 0y' do
93
+ assert_raises ArgumentError do
94
+ create_period '0y'
95
+ end
96
+ end
97
+ should 'reject 100y' do
98
+ assert_raises ArgumentError do
99
+ create_period '100y'
100
+ end
101
+ end
102
+ should 'reject 12c' do
103
+ assert_raises ArgumentError do
104
+ create_period '12c'
105
+ end
106
+ end
107
+ end
53
108
  end
@@ -36,4 +36,56 @@ class TestEppDomainRenewCommand < Test::Unit::TestCase
36
36
  assert_equal 'm', xpath_find('//domain:period/@unit')
37
37
  end
38
38
  end
39
+
40
+ # Outside context for Ruby 1.8
41
+ def renew_period(period)
42
+ EPP::Domain::Renew.new('example.com', Time.now, period)
43
+ end
44
+ context 'EPP::Domain::Renew period' do
45
+ should 'accept 1m' do
46
+ assert_nothing_raised do
47
+ renew_period '1m'
48
+ end
49
+ end
50
+ should 'accept 1y' do
51
+ assert_nothing_raised do
52
+ renew_period '1m'
53
+ end
54
+ end
55
+ should 'accept 99m' do
56
+ assert_nothing_raised do
57
+ renew_period '1m'
58
+ end
59
+ end
60
+ should 'accept 99y' do
61
+ assert_nothing_raised do
62
+ renew_period '1m'
63
+ end
64
+ end
65
+ should 'reject 0m' do
66
+ assert_raises ArgumentError do
67
+ renew_period '0m'
68
+ end
69
+ end
70
+ should 'reject 100m' do
71
+ assert_raises ArgumentError do
72
+ renew_period '100m'
73
+ end
74
+ end
75
+ should 'reject 0y' do
76
+ assert_raises ArgumentError do
77
+ renew_period '0y'
78
+ end
79
+ end
80
+ should 'reject 100y' do
81
+ assert_raises ArgumentError do
82
+ renew_period '100y'
83
+ end
84
+ end
85
+ should 'reject 12c' do
86
+ assert_raises ArgumentError do
87
+ renew_period '12c'
88
+ end
89
+ end
90
+ end
39
91
  end
@@ -34,4 +34,56 @@ class TestEppDomainTransferCommand < Test::Unit::TestCase
34
34
  assert_equal '2381728348', xpath_find('//domain:authInfo/domain:pw')
35
35
  end
36
36
  end
37
+
38
+ # Outside context for Ruby 1.8
39
+ def transfer_period(period)
40
+ EPP::Domain::Transfer.new('example.com', period, :pw => '2381728348')
41
+ end
42
+ context 'EPP::Domain::Transfer period' do
43
+ should 'accept 1m' do
44
+ assert_nothing_raised do
45
+ transfer_period '1m'
46
+ end
47
+ end
48
+ should 'accept 1y' do
49
+ assert_nothing_raised do
50
+ transfer_period '1m'
51
+ end
52
+ end
53
+ should 'accept 99m' do
54
+ assert_nothing_raised do
55
+ transfer_period '1m'
56
+ end
57
+ end
58
+ should 'accept 99y' do
59
+ assert_nothing_raised do
60
+ transfer_period '1m'
61
+ end
62
+ end
63
+ should 'reject 0m' do
64
+ assert_raises ArgumentError do
65
+ transfer_period '0m'
66
+ end
67
+ end
68
+ should 'reject 100m' do
69
+ assert_raises ArgumentError do
70
+ transfer_period '100m'
71
+ end
72
+ end
73
+ should 'reject 0y' do
74
+ assert_raises ArgumentError do
75
+ transfer_period '0y'
76
+ end
77
+ end
78
+ should 'reject 100y' do
79
+ assert_raises ArgumentError do
80
+ transfer_period '100y'
81
+ end
82
+ end
83
+ should 'reject 12c' do
84
+ assert_raises ArgumentError do
85
+ transfer_period '12c'
86
+ end
87
+ end
88
+ end
37
89
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: epp-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geoff Garside