51 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
| # Pleroma: A lightweight social networking server
 | |
| # Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
 | |
| # SPDX-License-Identifier: AGPL-3.0-only
 | |
| 
 | |
| defmodule Pleroma.Web.MastodonAPI.DomainBlockControllerTest do
 | |
|   use Pleroma.Web.ConnCase
 | |
| 
 | |
|   alias Pleroma.User
 | |
| 
 | |
|   import Pleroma.Factory
 | |
| 
 | |
|   test "blocking / unblocking a domain", %{conn: conn} do
 | |
|     user = insert(:user)
 | |
|     other_user = insert(:user, %{ap_id: "https://dogwhistle.zone/@pundit"})
 | |
| 
 | |
|     conn =
 | |
|       conn
 | |
|       |> assign(:user, user)
 | |
|       |> post("/api/v1/domain_blocks", %{"domain" => "dogwhistle.zone"})
 | |
| 
 | |
|     assert %{} = json_response(conn, 200)
 | |
|     user = User.get_cached_by_ap_id(user.ap_id)
 | |
|     assert User.blocks?(user, other_user)
 | |
| 
 | |
|     conn =
 | |
|       build_conn()
 | |
|       |> assign(:user, user)
 | |
|       |> delete("/api/v1/domain_blocks", %{"domain" => "dogwhistle.zone"})
 | |
| 
 | |
|     assert %{} = json_response(conn, 200)
 | |
|     user = User.get_cached_by_ap_id(user.ap_id)
 | |
|     refute User.blocks?(user, other_user)
 | |
|   end
 | |
| 
 | |
|   test "getting a list of domain blocks", %{conn: conn} do
 | |
|     user = insert(:user)
 | |
| 
 | |
|     {:ok, user} = User.block_domain(user, "bad.site")
 | |
|     {:ok, user} = User.block_domain(user, "even.worse.site")
 | |
| 
 | |
|     conn =
 | |
|       conn
 | |
|       |> assign(:user, user)
 | |
|       |> get("/api/v1/domain_blocks")
 | |
| 
 | |
|     domain_blocks = json_response(conn, 200)
 | |
| 
 | |
|     assert "bad.site" in domain_blocks
 | |
|     assert "even.worse.site" in domain_blocks
 | |
|   end
 | |
| end
 | 
