add support for saved search metatag + tests
This commit is contained in:
5
test/factories/saved_search.rb
Normal file
5
test/factories/saved_search.rb
Normal file
@@ -0,0 +1,5 @@
|
||||
FactoryGirl.define do
|
||||
factory(:saved_search) do
|
||||
tag_query "aaa"
|
||||
end
|
||||
end
|
||||
42
test/fixtures/vcr_cassettes/unit/saved_searches/get-named.yml
vendored
Normal file
42
test/fixtures/vcr_cassettes/unit/saved_searches/get-named.yml
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
http_interactions:
|
||||
- request:
|
||||
method: get
|
||||
uri: http://localhost:3001/users?key=blahblahblah&name=blah&user_id=1
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
headers:
|
||||
Accept-Encoding:
|
||||
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
||||
Accept:
|
||||
- "*/*"
|
||||
User-Agent:
|
||||
- Ruby
|
||||
response:
|
||||
status:
|
||||
code: 200
|
||||
message: 'OK '
|
||||
headers:
|
||||
Content-Type:
|
||||
- text/html;charset=utf-8
|
||||
Content-Length:
|
||||
- '7'
|
||||
X-Xss-Protection:
|
||||
- 1; mode=block
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
X-Frame-Options:
|
||||
- SAMEORIGIN
|
||||
Server:
|
||||
- WEBrick/1.3.1 (Ruby/2.1.3/2014-09-19)
|
||||
Date:
|
||||
- Tue, 24 Nov 2015 20:43:18 GMT
|
||||
Connection:
|
||||
- Keep-Alive
|
||||
body:
|
||||
encoding: UTF-8
|
||||
string: '["1","2","3","4"]'
|
||||
http_version:
|
||||
recorded_at: Tue, 24 Nov 2015 20:43:18 GMT
|
||||
recorded_with: VCR 2.9.3
|
||||
42
test/fixtures/vcr_cassettes/unit/saved_searches/get-unnamed.yml
vendored
Normal file
42
test/fixtures/vcr_cassettes/unit/saved_searches/get-unnamed.yml
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
http_interactions:
|
||||
- request:
|
||||
method: get
|
||||
uri: http://localhost:3001/users?key=blahblahblah&name&user_id=1
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
headers:
|
||||
Accept-Encoding:
|
||||
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
||||
Accept:
|
||||
- "*/*"
|
||||
User-Agent:
|
||||
- Ruby
|
||||
response:
|
||||
status:
|
||||
code: 200
|
||||
message: 'OK '
|
||||
headers:
|
||||
Content-Type:
|
||||
- text/html;charset=utf-8
|
||||
Content-Length:
|
||||
- '7'
|
||||
X-Xss-Protection:
|
||||
- 1; mode=block
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
X-Frame-Options:
|
||||
- SAMEORIGIN
|
||||
Server:
|
||||
- WEBrick/1.3.1 (Ruby/2.1.3/2014-09-19)
|
||||
Date:
|
||||
- Tue, 24 Nov 2015 20:43:18 GMT
|
||||
Connection:
|
||||
- Keep-Alive
|
||||
body:
|
||||
encoding: UTF-8
|
||||
string: '["1","2","3","4"]'
|
||||
http_version:
|
||||
recorded_at: Tue, 24 Nov 2015 20:43:18 GMT
|
||||
recorded_with: VCR 2.9.3
|
||||
@@ -1371,6 +1371,24 @@ class PostTest < ActiveSupport::TestCase
|
||||
assert_equal(1, relation.count)
|
||||
end
|
||||
|
||||
should "return posts for a <search> metatag" do
|
||||
SavedSearch.stubs(:update_listbooru_on_create)
|
||||
post1 = FactoryGirl.create(:post, :tag_string => "aaa")
|
||||
sub = FactoryGirl.create(:saved_search, :tag_query => "aaa", :name => "zzz", :user_id => CurrentUser.id)
|
||||
SavedSearch.expects(:post_ids).returns([post1.id])
|
||||
relation = Post.tag_match("search:#{CurrentUser.name}")
|
||||
assert_equal(1, relation.count)
|
||||
end
|
||||
|
||||
should "return posts for a named <search> metatag" do
|
||||
SavedSearch.stubs(:update_listbooru_on_create)
|
||||
post1 = FactoryGirl.create(:post, :tag_string => "aaa")
|
||||
sub = FactoryGirl.create(:saved_search, :tag_query => "aaa", :name => "zzz", :user_id => CurrentUser.id)
|
||||
SavedSearch.expects(:post_ids).returns([post1.id])
|
||||
relation = Post.tag_match("search:#{CurrentUser.name}:zzz")
|
||||
assert_equal(1, relation.count)
|
||||
end
|
||||
|
||||
should "return posts for a particular rating" do
|
||||
post1 = FactoryGirl.create(:post, :rating => "s")
|
||||
post2 = FactoryGirl.create(:post, :rating => "q")
|
||||
|
||||
@@ -1,6 +1,31 @@
|
||||
require 'test_helper'
|
||||
|
||||
class SavedSearchTest < ActiveSupport::TestCase
|
||||
context "Fetching the post ids for a search" do
|
||||
setup do
|
||||
Danbooru.config.stubs(:listbooru_auth_key).returns("blahblahblah")
|
||||
Danbooru.config.stubs(:listbooru_server).returns("http://localhost:3001")
|
||||
end
|
||||
|
||||
context "with a name" do
|
||||
should "return a list of ids" do
|
||||
VCR.use_cassette("unit/saved_searches/get-named", :record => :once) do
|
||||
post_ids = SavedSearch.post_ids(1, "blah")
|
||||
assert_equal([1,2,3,4], post_ids)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context "without a name" do
|
||||
should "return a list of ids" do
|
||||
VCR.use_cassette("unit/saved_searches/get-unnamed", :record => :once) do
|
||||
post_ids = SavedSearch.post_ids(1)
|
||||
assert_equal([1,2,3,4], post_ids)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context "Creating a saved search" do
|
||||
setup do
|
||||
@user = FactoryGirl.create(:user)
|
||||
|
||||
Reference in New Issue
Block a user