summaryrefslogtreecommitdiff
path: root/spec/ruby/library/net-http/http
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/library/net-http/http')
-rw-r--r--spec/ruby/library/net-http/http/active_spec.rb6
-rw-r--r--spec/ruby/library/net-http/http/get2_spec.rb6
-rw-r--r--spec/ruby/library/net-http/http/head2_spec.rb6
-rw-r--r--spec/ruby/library/net-http/http/is_version_1_1_spec.rb5
-rw-r--r--spec/ruby/library/net-http/http/is_version_1_2_spec.rb5
-rw-r--r--spec/ruby/library/net-http/http/post2_spec.rb6
-rw-r--r--spec/ruby/library/net-http/http/put2_spec.rb6
-rw-r--r--spec/ruby/library/net-http/http/request_get_spec.rb41
-rw-r--r--spec/ruby/library/net-http/http/request_head_spec.rb41
-rw-r--r--spec/ruby/library/net-http/http/request_post_spec.rb41
-rw-r--r--spec/ruby/library/net-http/http/request_put_spec.rb41
-rw-r--r--spec/ruby/library/net-http/http/shared/request_get.rb41
-rw-r--r--spec/ruby/library/net-http/http/shared/request_head.rb41
-rw-r--r--spec/ruby/library/net-http/http/shared/request_post.rb41
-rw-r--r--spec/ruby/library/net-http/http/shared/request_put.rb41
-rw-r--r--spec/ruby/library/net-http/http/shared/started.rb26
-rw-r--r--spec/ruby/library/net-http/http/shared/version_1_1.rb6
-rw-r--r--spec/ruby/library/net-http/http/shared/version_1_2.rb6
-rw-r--r--spec/ruby/library/net-http/http/started_spec.rb26
-rw-r--r--spec/ruby/library/net-http/http/version_1_1_spec.rb6
-rw-r--r--spec/ruby/library/net-http/http/version_1_2_spec.rb6
21 files changed, 209 insertions, 235 deletions
diff --git a/spec/ruby/library/net-http/http/active_spec.rb b/spec/ruby/library/net-http/http/active_spec.rb
index c260274594..ba870b39d2 100644
--- a/spec/ruby/library/net-http/http/active_spec.rb
+++ b/spec/ruby/library/net-http/http/active_spec.rb
@@ -1,8 +1,8 @@
require_relative '../../../spec_helper'
require 'net/http'
-require_relative 'fixtures/http_server'
-require_relative 'shared/started'
describe "Net::HTTP#active?" do
- it_behaves_like :net_http_started_p, :active?
+ it "is an alias of Net::HTTP#started?" do
+ Net::HTTP.instance_method(:active?).should == Net::HTTP.instance_method(:started?)
+ end
end
diff --git a/spec/ruby/library/net-http/http/get2_spec.rb b/spec/ruby/library/net-http/http/get2_spec.rb
index 57c05ec64b..046443d73e 100644
--- a/spec/ruby/library/net-http/http/get2_spec.rb
+++ b/spec/ruby/library/net-http/http/get2_spec.rb
@@ -1,8 +1,8 @@
require_relative '../../../spec_helper'
require 'net/http'
-require_relative 'fixtures/http_server'
-require_relative 'shared/request_get'
describe "Net::HTTP#get2" do
- it_behaves_like :net_http_request_get, :get2
+ it "is an alias of Net::HTTP#request_get" do
+ Net::HTTP.instance_method(:get2).should == Net::HTTP.instance_method(:request_get)
+ end
end
diff --git a/spec/ruby/library/net-http/http/head2_spec.rb b/spec/ruby/library/net-http/http/head2_spec.rb
index 84cfff33d7..19c0cede9f 100644
--- a/spec/ruby/library/net-http/http/head2_spec.rb
+++ b/spec/ruby/library/net-http/http/head2_spec.rb
@@ -1,8 +1,8 @@
require_relative '../../../spec_helper'
require 'net/http'
-require_relative 'fixtures/http_server'
-require_relative 'shared/request_head'
describe "Net::HTTP#head2" do
- it_behaves_like :net_http_request_head, :head2
+ it "is an alias of Net::HTTP#request_head" do
+ Net::HTTP.instance_method(:head2).should == Net::HTTP.instance_method(:request_head)
+ end
end
diff --git a/spec/ruby/library/net-http/http/is_version_1_1_spec.rb b/spec/ruby/library/net-http/http/is_version_1_1_spec.rb
index bdb343f9e0..f4910ef1e4 100644
--- a/spec/ruby/library/net-http/http/is_version_1_1_spec.rb
+++ b/spec/ruby/library/net-http/http/is_version_1_1_spec.rb
@@ -1,7 +1,8 @@
require_relative '../../../spec_helper'
require 'net/http'
-require_relative 'shared/version_1_1'
describe "Net::HTTP.is_version_1_1?" do
- it_behaves_like :net_http_version_1_1_p, :is_version_1_1?
+ it "is an alias of Net::HTTP.version_1_1?" do
+ Net::HTTP.method(:is_version_1_1?).should == Net::HTTP.method(:version_1_1?)
+ end
end
diff --git a/spec/ruby/library/net-http/http/is_version_1_2_spec.rb b/spec/ruby/library/net-http/http/is_version_1_2_spec.rb
index 555bb205dd..555724babe 100644
--- a/spec/ruby/library/net-http/http/is_version_1_2_spec.rb
+++ b/spec/ruby/library/net-http/http/is_version_1_2_spec.rb
@@ -1,7 +1,8 @@
require_relative '../../../spec_helper'
require 'net/http'
-require_relative 'shared/version_1_2'
describe "Net::HTTP.is_version_1_2?" do
- it_behaves_like :net_http_version_1_2_p, :is_version_1_2?
+ it "is an alias of Net::HTTP.version_1_2?" do
+ Net::HTTP.method(:is_version_1_2?).should == Net::HTTP.method(:version_1_2?)
+ end
end
diff --git a/spec/ruby/library/net-http/http/post2_spec.rb b/spec/ruby/library/net-http/http/post2_spec.rb
index abc998709f..68c2a9ea06 100644
--- a/spec/ruby/library/net-http/http/post2_spec.rb
+++ b/spec/ruby/library/net-http/http/post2_spec.rb
@@ -1,8 +1,8 @@
require_relative '../../../spec_helper'
require 'net/http'
-require_relative 'fixtures/http_server'
-require_relative 'shared/request_post'
describe "Net::HTTP#post2" do
- it_behaves_like :net_http_request_post, :post2
+ it "is an alias of Net::HTTP#request_post" do
+ Net::HTTP.instance_method(:post2).should == Net::HTTP.instance_method(:request_post)
+ end
end
diff --git a/spec/ruby/library/net-http/http/put2_spec.rb b/spec/ruby/library/net-http/http/put2_spec.rb
index 7b03a39d0b..237df67e82 100644
--- a/spec/ruby/library/net-http/http/put2_spec.rb
+++ b/spec/ruby/library/net-http/http/put2_spec.rb
@@ -1,8 +1,8 @@
require_relative '../../../spec_helper'
require 'net/http'
-require_relative 'fixtures/http_server'
-require_relative 'shared/request_put'
describe "Net::HTTP#put2" do
- it_behaves_like :net_http_request_put, :put2
+ it "is an alias of Net::HTTP#request_put" do
+ Net::HTTP.instance_method(:put2).should == Net::HTTP.instance_method(:request_put)
+ end
end
diff --git a/spec/ruby/library/net-http/http/request_get_spec.rb b/spec/ruby/library/net-http/http/request_get_spec.rb
index 98025a14a1..1737e62439 100644
--- a/spec/ruby/library/net-http/http/request_get_spec.rb
+++ b/spec/ruby/library/net-http/http/request_get_spec.rb
@@ -1,8 +1,45 @@
require_relative '../../../spec_helper'
require 'net/http'
require_relative 'fixtures/http_server'
-require_relative 'shared/request_get'
describe "Net::HTTP#request_get" do
- it_behaves_like :net_http_request_get, :get2
+ before :each do
+ NetHTTPSpecs.start_server
+ @http = Net::HTTP.start("localhost", NetHTTPSpecs.port)
+ end
+
+ after :each do
+ @http.finish if @http.started?
+ NetHTTPSpecs.stop_server
+ end
+
+ describe "when passed no block" do
+ it "sends a GET request to the passed path and returns the response" do
+ response = @http.request_get("/request")
+ response.body.should == "Request type: GET"
+ end
+
+ it "returns a Net::HTTPResponse object" do
+ response = @http.request_get("/request")
+ response.should.is_a?(Net::HTTPResponse)
+ end
+ end
+
+ describe "when passed a block" do
+ it "sends a GET request to the passed path and returns the response" do
+ response = @http.request_get("/request") {}
+ response.body.should == "Request type: GET"
+ end
+
+ it "yields the response to the passed block" do
+ @http.request_get("/request") do |response|
+ response.body.should == "Request type: GET"
+ end
+ end
+
+ it "returns a Net::HTTPResponse object" do
+ response = @http.request_get("/request") {}
+ response.should.is_a?(Net::HTTPResponse)
+ end
+ end
end
diff --git a/spec/ruby/library/net-http/http/request_head_spec.rb b/spec/ruby/library/net-http/http/request_head_spec.rb
index 8f514d4eee..7c46ebfc53 100644
--- a/spec/ruby/library/net-http/http/request_head_spec.rb
+++ b/spec/ruby/library/net-http/http/request_head_spec.rb
@@ -1,8 +1,45 @@
require_relative '../../../spec_helper'
require 'net/http'
require_relative 'fixtures/http_server'
-require_relative 'shared/request_head'
describe "Net::HTTP#request_head" do
- it_behaves_like :net_http_request_head, :request_head
+ before :each do
+ NetHTTPSpecs.start_server
+ @http = Net::HTTP.start("localhost", NetHTTPSpecs.port)
+ end
+
+ after :each do
+ @http.finish if @http.started?
+ NetHTTPSpecs.stop_server
+ end
+
+ describe "when passed no block" do
+ it "sends a head request to the passed path and returns the response" do
+ response = @http.request_head("/request")
+ response.body.should == nil
+ end
+
+ it "returns a Net::HTTPResponse object" do
+ response = @http.request_head("/request")
+ response.should.is_a?(Net::HTTPResponse)
+ end
+ end
+
+ describe "when passed a block" do
+ it "sends a head request to the passed path and returns the response" do
+ response = @http.request_head("/request") {}
+ response.body.should == nil
+ end
+
+ it "yields the response to the passed block" do
+ @http.request_head("/request") do |response|
+ response.body.should == nil
+ end
+ end
+
+ it "returns a Net::HTTPResponse object" do
+ response = @http.request_head("/request") {}
+ response.should.is_a?(Net::HTTPResponse)
+ end
+ end
end
diff --git a/spec/ruby/library/net-http/http/request_post_spec.rb b/spec/ruby/library/net-http/http/request_post_spec.rb
index 719bd5a7ee..8cfdd3469e 100644
--- a/spec/ruby/library/net-http/http/request_post_spec.rb
+++ b/spec/ruby/library/net-http/http/request_post_spec.rb
@@ -1,8 +1,45 @@
require_relative '../../../spec_helper'
require 'net/http'
require_relative 'fixtures/http_server'
-require_relative 'shared/request_post'
describe "Net::HTTP#request_post" do
- it_behaves_like :net_http_request_post, :request_post
+ before :each do
+ NetHTTPSpecs.start_server
+ @http = Net::HTTP.start("localhost", NetHTTPSpecs.port)
+ end
+
+ after :each do
+ @http.finish if @http.started?
+ NetHTTPSpecs.stop_server
+ end
+
+ describe "when passed no block" do
+ it "sends a post request to the passed path and returns the response" do
+ response = @http.request_post("/request", "test=test")
+ response.body.should == "Request type: POST"
+ end
+
+ it "returns a Net::HTTPResponse object" do
+ response = @http.request_post("/request", "test=test")
+ response.should.is_a?(Net::HTTPResponse)
+ end
+ end
+
+ describe "when passed a block" do
+ it "sends a post request to the passed path and returns the response" do
+ response = @http.request_post("/request", "test=test") {}
+ response.body.should == "Request type: POST"
+ end
+
+ it "yields the response to the passed block" do
+ @http.request_post("/request", "test=test") do |response|
+ response.body.should == "Request type: POST"
+ end
+ end
+
+ it "returns a Net::HTTPResponse object" do
+ response = @http.request_post("/request", "test=test") {}
+ response.should.is_a?(Net::HTTPResponse)
+ end
+ end
end
diff --git a/spec/ruby/library/net-http/http/request_put_spec.rb b/spec/ruby/library/net-http/http/request_put_spec.rb
index 9fcf3a98d6..b7388a21c8 100644
--- a/spec/ruby/library/net-http/http/request_put_spec.rb
+++ b/spec/ruby/library/net-http/http/request_put_spec.rb
@@ -1,8 +1,45 @@
require_relative '../../../spec_helper'
require 'net/http'
require_relative 'fixtures/http_server'
-require_relative 'shared/request_put'
describe "Net::HTTP#request_put" do
- it_behaves_like :net_http_request_put, :request_put
+ before :each do
+ NetHTTPSpecs.start_server
+ @http = Net::HTTP.start("localhost", NetHTTPSpecs.port)
+ end
+
+ after :each do
+ @http.finish if @http.started?
+ NetHTTPSpecs.stop_server
+ end
+
+ describe "when passed no block" do
+ it "sends a put request to the passed path and returns the response" do
+ response = @http.request_put("/request", "test=test")
+ response.body.should == "Request type: PUT"
+ end
+
+ it "returns a Net::HTTPResponse object" do
+ response = @http.request_put("/request", "test=test")
+ response.should.is_a?(Net::HTTPResponse)
+ end
+ end
+
+ describe "when passed a block" do
+ it "sends a put request to the passed path and returns the response" do
+ response = @http.request_put("/request", "test=test") {}
+ response.body.should == "Request type: PUT"
+ end
+
+ it "yields the response to the passed block" do
+ @http.request_put("/request", "test=test") do |response|
+ response.body.should == "Request type: PUT"
+ end
+ end
+
+ it "returns a Net::HTTPResponse object" do
+ response = @http.request_put("/request", "test=test") {}
+ response.should.is_a?(Net::HTTPResponse)
+ end
+ end
end
diff --git a/spec/ruby/library/net-http/http/shared/request_get.rb b/spec/ruby/library/net-http/http/shared/request_get.rb
deleted file mode 100644
index 4f2f152ea4..0000000000
--- a/spec/ruby/library/net-http/http/shared/request_get.rb
+++ /dev/null
@@ -1,41 +0,0 @@
-describe :net_http_request_get, shared: true do
- before :each do
- NetHTTPSpecs.start_server
- @http = Net::HTTP.start("localhost", NetHTTPSpecs.port)
- end
-
- after :each do
- @http.finish if @http.started?
- NetHTTPSpecs.stop_server
- end
-
- describe "when passed no block" do
- it "sends a GET request to the passed path and returns the response" do
- response = @http.send(@method, "/request")
- response.body.should == "Request type: GET"
- end
-
- it "returns a Net::HTTPResponse object" do
- response = @http.send(@method, "/request")
- response.should.is_a?(Net::HTTPResponse)
- end
- end
-
- describe "when passed a block" do
- it "sends a GET request to the passed path and returns the response" do
- response = @http.send(@method, "/request") {}
- response.body.should == "Request type: GET"
- end
-
- it "yields the response to the passed block" do
- @http.send(@method, "/request") do |response|
- response.body.should == "Request type: GET"
- end
- end
-
- it "returns a Net::HTTPResponse object" do
- response = @http.send(@method, "/request") {}
- response.should.is_a?(Net::HTTPResponse)
- end
- end
-end
diff --git a/spec/ruby/library/net-http/http/shared/request_head.rb b/spec/ruby/library/net-http/http/shared/request_head.rb
deleted file mode 100644
index a5fe787d32..0000000000
--- a/spec/ruby/library/net-http/http/shared/request_head.rb
+++ /dev/null
@@ -1,41 +0,0 @@
-describe :net_http_request_head, shared: true do
- before :each do
- NetHTTPSpecs.start_server
- @http = Net::HTTP.start("localhost", NetHTTPSpecs.port)
- end
-
- after :each do
- @http.finish if @http.started?
- NetHTTPSpecs.stop_server
- end
-
- describe "when passed no block" do
- it "sends a head request to the passed path and returns the response" do
- response = @http.send(@method, "/request")
- response.body.should == nil
- end
-
- it "returns a Net::HTTPResponse object" do
- response = @http.send(@method, "/request")
- response.should.is_a?(Net::HTTPResponse)
- end
- end
-
- describe "when passed a block" do
- it "sends a head request to the passed path and returns the response" do
- response = @http.send(@method, "/request") {}
- response.body.should == nil
- end
-
- it "yields the response to the passed block" do
- @http.send(@method, "/request") do |response|
- response.body.should == nil
- end
- end
-
- it "returns a Net::HTTPResponse object" do
- response = @http.send(@method, "/request") {}
- response.should.is_a?(Net::HTTPResponse)
- end
- end
-end
diff --git a/spec/ruby/library/net-http/http/shared/request_post.rb b/spec/ruby/library/net-http/http/shared/request_post.rb
deleted file mode 100644
index 73cfd577cf..0000000000
--- a/spec/ruby/library/net-http/http/shared/request_post.rb
+++ /dev/null
@@ -1,41 +0,0 @@
-describe :net_http_request_post, shared: true do
- before :each do
- NetHTTPSpecs.start_server
- @http = Net::HTTP.start("localhost", NetHTTPSpecs.port)
- end
-
- after :each do
- @http.finish if @http.started?
- NetHTTPSpecs.stop_server
- end
-
- describe "when passed no block" do
- it "sends a post request to the passed path and returns the response" do
- response = @http.send(@method, "/request", "test=test")
- response.body.should == "Request type: POST"
- end
-
- it "returns a Net::HTTPResponse object" do
- response = @http.send(@method, "/request", "test=test")
- response.should.is_a?(Net::HTTPResponse)
- end
- end
-
- describe "when passed a block" do
- it "sends a post request to the passed path and returns the response" do
- response = @http.send(@method, "/request", "test=test") {}
- response.body.should == "Request type: POST"
- end
-
- it "yields the response to the passed block" do
- @http.send(@method, "/request", "test=test") do |response|
- response.body.should == "Request type: POST"
- end
- end
-
- it "returns a Net::HTTPResponse object" do
- response = @http.send(@method, "/request", "test=test") {}
- response.should.is_a?(Net::HTTPResponse)
- end
- end
-end
diff --git a/spec/ruby/library/net-http/http/shared/request_put.rb b/spec/ruby/library/net-http/http/shared/request_put.rb
deleted file mode 100644
index 3b64d7e055..0000000000
--- a/spec/ruby/library/net-http/http/shared/request_put.rb
+++ /dev/null
@@ -1,41 +0,0 @@
-describe :net_http_request_put, shared: true do
- before :each do
- NetHTTPSpecs.start_server
- @http = Net::HTTP.start("localhost", NetHTTPSpecs.port)
- end
-
- after :each do
- @http.finish if @http.started?
- NetHTTPSpecs.stop_server
- end
-
- describe "when passed no block" do
- it "sends a put request to the passed path and returns the response" do
- response = @http.send(@method, "/request", "test=test")
- response.body.should == "Request type: PUT"
- end
-
- it "returns a Net::HTTPResponse object" do
- response = @http.send(@method, "/request", "test=test")
- response.should.is_a?(Net::HTTPResponse)
- end
- end
-
- describe "when passed a block" do
- it "sends a put request to the passed path and returns the response" do
- response = @http.send(@method, "/request", "test=test") {}
- response.body.should == "Request type: PUT"
- end
-
- it "yields the response to the passed block" do
- @http.send(@method, "/request", "test=test") do |response|
- response.body.should == "Request type: PUT"
- end
- end
-
- it "returns a Net::HTTPResponse object" do
- response = @http.send(@method, "/request", "test=test") {}
- response.should.is_a?(Net::HTTPResponse)
- end
- end
-end
diff --git a/spec/ruby/library/net-http/http/shared/started.rb b/spec/ruby/library/net-http/http/shared/started.rb
deleted file mode 100644
index 0ab18a4e83..0000000000
--- a/spec/ruby/library/net-http/http/shared/started.rb
+++ /dev/null
@@ -1,26 +0,0 @@
-describe :net_http_started_p, shared: true do
- before :each do
- NetHTTPSpecs.start_server
- @http = Net::HTTP.new("localhost", NetHTTPSpecs.port)
- end
-
- after :each do
- @http.finish if @http.started?
- NetHTTPSpecs.stop_server
- end
-
- it "returns true when self has been started" do
- @http.start
- @http.send(@method).should == true
- end
-
- it "returns false when self has not been started yet" do
- @http.send(@method).should == false
- end
-
- it "returns false when self has been stopped again" do
- @http.start
- @http.finish
- @http.send(@method).should == false
- end
-end
diff --git a/spec/ruby/library/net-http/http/shared/version_1_1.rb b/spec/ruby/library/net-http/http/shared/version_1_1.rb
deleted file mode 100644
index 84e7264eab..0000000000
--- a/spec/ruby/library/net-http/http/shared/version_1_1.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-describe :net_http_version_1_1_p, shared: true do
- it "returns the state of net/http 1.1 features" do
- Net::HTTP.version_1_2
- Net::HTTP.send(@method).should == false
- end
-end
diff --git a/spec/ruby/library/net-http/http/shared/version_1_2.rb b/spec/ruby/library/net-http/http/shared/version_1_2.rb
deleted file mode 100644
index dcf5419704..0000000000
--- a/spec/ruby/library/net-http/http/shared/version_1_2.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-describe :net_http_version_1_2_p, shared: true do
- it "returns the state of net/http 1.2 features" do
- Net::HTTP.version_1_2
- Net::HTTP.send(@method).should == true
- end
-end
diff --git a/spec/ruby/library/net-http/http/started_spec.rb b/spec/ruby/library/net-http/http/started_spec.rb
index cbb82ceefa..a0b46fcbd2 100644
--- a/spec/ruby/library/net-http/http/started_spec.rb
+++ b/spec/ruby/library/net-http/http/started_spec.rb
@@ -1,8 +1,30 @@
require_relative '../../../spec_helper'
require 'net/http'
require_relative 'fixtures/http_server'
-require_relative 'shared/started'
describe "Net::HTTP#started?" do
- it_behaves_like :net_http_started_p, :started?
+ before :each do
+ NetHTTPSpecs.start_server
+ @http = Net::HTTP.new("localhost", NetHTTPSpecs.port)
+ end
+
+ after :each do
+ @http.finish if @http.started?
+ NetHTTPSpecs.stop_server
+ end
+
+ it "returns true when self has been started" do
+ @http.start
+ @http.started?.should == true
+ end
+
+ it "returns false when self has not been started yet" do
+ @http.started?.should == false
+ end
+
+ it "returns false when self has been stopped again" do
+ @http.start
+ @http.finish
+ @http.started?.should == false
+ end
end
diff --git a/spec/ruby/library/net-http/http/version_1_1_spec.rb b/spec/ruby/library/net-http/http/version_1_1_spec.rb
index 34a4ac8a6b..7f87bf30f9 100644
--- a/spec/ruby/library/net-http/http/version_1_1_spec.rb
+++ b/spec/ruby/library/net-http/http/version_1_1_spec.rb
@@ -1,7 +1,9 @@
require_relative '../../../spec_helper'
require 'net/http'
-require_relative 'shared/version_1_1'
describe "Net::HTTP.version_1_1?" do
- it_behaves_like :net_http_version_1_1_p, :version_1_1?
+ it "returns the state of net/http 1.1 features" do
+ Net::HTTP.version_1_2
+ Net::HTTP.version_1_1?.should == false
+ end
end
diff --git a/spec/ruby/library/net-http/http/version_1_2_spec.rb b/spec/ruby/library/net-http/http/version_1_2_spec.rb
index 4918597234..73ca70ac7b 100644
--- a/spec/ruby/library/net-http/http/version_1_2_spec.rb
+++ b/spec/ruby/library/net-http/http/version_1_2_spec.rb
@@ -1,6 +1,5 @@
require_relative '../../../spec_helper'
require 'net/http'
-require_relative 'shared/version_1_2'
describe "Net::HTTP.version_1_2" do
it "turns on net/http 1.2 features" do
@@ -16,5 +15,8 @@ describe "Net::HTTP.version_1_2" do
end
describe "Net::HTTP.version_1_2?" do
- it_behaves_like :net_http_version_1_2_p, :version_1_2?
+ it "returns the state of net/http 1.2 features" do
+ Net::HTTP.version_1_2
+ Net::HTTP.version_1_2?.should == true
+ end
end