You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
2.6 KiB

4 years ago
module NavigationHelpers
def homepage
"/"
end
def login_path
"#{CartoDB.hostname}/login"
end
def logout_path
"/logout"
end
def dashboard_path
"/dashboard"
end
def public_path
"/dashboard/public"
end
def api_query_url
"#{api_url_prefix}/"
end
def api_tables_url(params = {})
api_req "#{api_url_prefix}/tables#{params.empty? ? '' : '?' }#{params.to_query}"
end
def api_table_url(table_identifier, params = {})
url = "#{api_url_prefix}/tables/#{table_identifier}"
url = (url + ".#{params[:format]}") unless params[:format].blank?
api_req(url)
end
def api_tags_url(params = {})
api_req "#{api_url_prefix}/tables/tags"
end
def api_tables_tag_url(tag_name, params = {})
api_req URI.encode("#{api_url_prefix}/tables/tags/#{tag_name}#{params.empty? ? '' : '?' }#{params.to_query}")
end
def api_table_records_url(table_identifier, params = {})
api_req "#{api_url_prefix}/tables/#{table_identifier}/records#{params.empty? ? '' : '?' }#{params.to_query}"
end
def api_table_record_url(table_identifier, row_identifier, params = {})
api_req "#{api_url_prefix}/tables/#{table_identifier}/records/#{row_identifier}#{params.empty? ? '' : '?' }#{params.to_query}"
end
def api_queries_url(params = {})
api_req "#{api_url_prefix}/queries#{params.empty? ? '' : '?' }#{params.to_query}"
end
def api_table_columns_url(table_identifier)
api_req "#{api_url_prefix}/tables/#{table_identifier}/columns"
end
def api_table_column_url(table_identifier, column_name)
api_req "#{api_url_prefix}/tables/#{table_identifier}/columns/#{column_name}"
end
def api_table_record_column_url(table_identifier, row_identifier, column_name)
api_req "#{api_url_prefix}/tables/#{table_identifier}/records/#{row_identifier}/columns/#{column_name}"
end
def api_user_url (user_id)
api_req "#{api_url_prefix}/users/#{user_id}"
end
def superadmin_users_path
"/superadmin/users"
end
def superadmin_user_path(user)
"/superadmin/users/#{user.id}"
end
def api_imports_path(params = {})
api_req "#{api_url_prefix}/tables/#{table_identifier}/export/shp"
end
private
def api_url_prefix
"#{CartoDB.hostname}/api/v1"
end
def api_key
$users_metadata.HMGET("rails:users:test", 'map_key').first
end
def api_req url
url = Addressable::URI.parse(url)
url.query_values = if url.query_values.nil?
{ :api_key => api_key }
else
url.query_values.merge({ :api_key => api_key })
end
url.to_s
end
end
RSpec.configuration.include NavigationHelpers, :type => :acceptance