Commit 88d08167e20fb9e44d4b7d8a9246801994d94c8b

Authored by Macartur Sousa
1 parent 33471a56

Adding filter tests to api

Signed-off-by: Macartur Sousa <macartur.sc@gmail.com>
plugins/elasticsearch/test/api/elasticsearch_plugin_api_test.rb
... ... @@ -7,7 +7,53 @@ class ElasticsearchPluginApiTest &lt; ActiveSupport::TestCase
7 7 include ElasticsearchHelper
8 8  
9 9 def indexed_models
10   - [Community, Person]
  10 + [Person,TextArticle,UploadedFile,Community,Event]
  11 + end
  12 +
  13 + def create_instances
  14 + create_instances_environment
  15 + create_instances_environment2
  16 + end
  17 +
  18 + def create_instances_environment2
  19 + create_user "Sample User Environment 2", environment:Environment.second
  20 + fast_create Community, name:"Sample Community Environment 2", created_at: Date.new, environment_id: Environment.second.id
  21 + end
  22 +
  23 + def create_instances_environment
  24 + create_visible_models
  25 + create_private_models
  26 + end
  27 +
  28 + def create_visible_models
  29 + 7.times{ | index | create_user "person #{index}" }
  30 + 4.times{ | index | fast_create Community, name: "community #{index}", created_at: Date.new }
  31 + end
  32 +
  33 + def create_private_models
  34 + secret_user = create_user("Secret Person")
  35 + fast_update(secret_user.person, secret: true, visible: true)
  36 +
  37 + invisible_user= create_user("Invisible Person")
  38 + fast_update(invisible_user.person, secret: false, visible: false, public_profile: false)
  39 +
  40 + fast_create(Community, name: "secret community", secret: true, visible: true)
  41 + fast_create(Community, name: "invisible community", secret: false, visible: false)
  42 +
  43 + create_private_article(TextArticle,public_person: User.first.person, private_person: invisible_user.person)
  44 + create_private_article(UploadedFile,public_person: User.first.person, private_person: invisible_user.person)
  45 + create_private_article(Event,public_person: User.first.person, private_person: invisible_user.person)
  46 +
  47 + end
  48 +
  49 + def create_private_article model,options = {}
  50 + public_person = options[:public_person]
  51 + private_person = options[:private_person]
  52 +
  53 + fast_create(model, name: "#{model.to_s.underscore} not advertise", advertise: false, published: true, profile_id: public_person, created_at: Time.now)
  54 + fast_create(model, name: "#{model.to_s.underscore} not published", advertise: true, published: false, profile_id: public_person, created_at: Time.now)
  55 + fast_create(model, name: "#{model.to_s.underscore} with not visible profile", advertise: true, published: true, profile_id: private_person, created_at: Time.now)
  56 + fast_create(model, name: "#{model.to_s.underscore} with not public_profile", advertise: true, published: true, profile_id: private_person, created_at: Time.now)
11 57 end
12 58  
13 59 def create_instances
... ... @@ -49,4 +95,19 @@ class ElasticsearchPluginApiTest &lt; ActiveSupport::TestCase
49 95 assert_equal 200, last_response.status
50 96 assert_equal 4, json["results"].count
51 97 end
  98 +
  99 + should 'filter person by default environment' do
  100 + get "/api/v1/search?selected_type=person"
  101 + json = JSON.parse(last_response.body)
  102 + assert_equal 200, last_response.status
  103 + assert_equal 7, json["results"].count
  104 + end
  105 +
  106 + should 'not show private text_article' do
  107 + get "/api/v1/search?selected_type=text_article"
  108 + json = JSON.parse(last_response.body)
  109 + assert_equal 200, last_response.status
  110 + assert_equal 7, json["results"].count
  111 + end
  112 +
52 113 end
... ...