diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/filter_test.exs | 85 | ||||
| -rw-r--r-- | test/formatter_test.exs | 10 | ||||
| -rw-r--r-- | test/web/mastodon_api/account_view_test.exs | 44 | ||||
| -rw-r--r-- | test/web/mastodon_api/mastodon_api_controller_test.exs | 119 | ||||
| -rw-r--r-- | test/web/node_info_test.exs | 17 | 
5 files changed, 273 insertions, 2 deletions
diff --git a/test/filter_test.exs b/test/filter_test.exs new file mode 100644 index 000000000..d81c92f08 --- /dev/null +++ b/test/filter_test.exs @@ -0,0 +1,85 @@ +defmodule Pleroma.FilterTest do +  alias Pleroma.{User, Repo} +  use Pleroma.DataCase + +  import Pleroma.Factory +  import Ecto.Query + +  test "creating a filter" do +    user = insert(:user) + +    query = %Pleroma.Filter{ +      user_id: user.id, +      filter_id: 42, +      phrase: "knights", +      context: ["home"] +    } + +    {:ok, %Pleroma.Filter{} = filter} = Pleroma.Filter.create(query) +    result = Pleroma.Filter.get(filter.filter_id, user) +    assert query.phrase == result.phrase +  end + +  test "deleting a filter" do +    user = insert(:user) + +    query = %Pleroma.Filter{ +      user_id: user.id, +      filter_id: 0, +      phrase: "knights", +      context: ["home"] +    } + +    {:ok, filter} = Pleroma.Filter.create(query) +    {:ok, filter} = Pleroma.Filter.delete(query) +    assert is_nil(Repo.get(Pleroma.Filter, filter.filter_id)) +  end + +  test "getting all filters by an user" do +    user = insert(:user) + +    query_one = %Pleroma.Filter{ +      user_id: user.id, +      filter_id: 1, +      phrase: "knights", +      context: ["home"] +    } + +    query_two = %Pleroma.Filter{ +      user_id: user.id, +      filter_id: 2, +      phrase: "who", +      context: ["home"] +    } + +    {:ok, filter_one} = Pleroma.Filter.create(query_one) +    {:ok, filter_two} = Pleroma.Filter.create(query_two) +    filters = Pleroma.Filter.get_filters(user) +    assert filter_one in filters +    assert filter_two in filters +  end + +  test "updating a filter" do +    user = insert(:user) + +    query_one = %Pleroma.Filter{ +      user_id: user.id, +      filter_id: 1, +      phrase: "knights", +      context: ["home"] +    } + +    query_two = %Pleroma.Filter{ +      user_id: user.id, +      filter_id: 1, +      phrase: "who", +      context: ["home", "timeline"] +    } + +    {:ok, filter_one} = Pleroma.Filter.create(query_one) +    {:ok, filter_two} = Pleroma.Filter.update(query_two) +    assert filter_one != filter_two +    assert filter_two.phrase == query_two.phrase +    assert filter_two.context == query_two.context +  end +end diff --git a/test/formatter_test.exs b/test/formatter_test.exs index 8453b72ac..273eefb8a 100644 --- a/test/formatter_test.exs +++ b/test/formatter_test.exs @@ -214,4 +214,14 @@ defmodule Pleroma.FormatterTest do      assert Formatter.get_emoji(text) == [{"moominmamma", "/finmoji/128px/moominmamma-128.png"}]    end + +  test "it returns a nice empty result when no emojis are present" do +    text = "I love moominamma" +    assert Formatter.get_emoji(text) == [] +  end + +  test "it doesn't die when text is absent" do +    text = nil +    assert Formatter.get_emoji(text) == [] +  end  end diff --git a/test/web/mastodon_api/account_view_test.exs b/test/web/mastodon_api/account_view_test.exs index 35c8a1fb0..e1e07fbcd 100644 --- a/test/web/mastodon_api/account_view_test.exs +++ b/test/web/mastodon_api/account_view_test.exs @@ -49,10 +49,48 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do          }        ],        fields: [], +      bot: false,        source: %{          note: "",          privacy: "public", -        sensitive: "false" +        sensitive: false +      } +    } + +    assert expected == AccountView.render("account.json", %{user: user}) +  end + +  test "Represent a Service(bot) account" do +    user = +      insert(:user, %{ +        info: %{"note_count" => 5, "follower_count" => 3, "source_data" => %{"type" => "Service"}}, +        nickname: "shp@shitposter.club", +        inserted_at: ~N[2017-08-15 15:47:06.597036] +      }) + +    expected = %{ +      id: to_string(user.id), +      username: "shp", +      acct: user.nickname, +      display_name: user.name, +      locked: false, +      created_at: "2017-08-15T15:47:06.000Z", +      followers_count: 3, +      following_count: 0, +      statuses_count: 5, +      note: user.bio, +      url: user.ap_id, +      avatar: "http://localhost:4001/images/avi.png", +      avatar_static: "http://localhost:4001/images/avi.png", +      header: "http://localhost:4001/images/banner.png", +      header_static: "http://localhost:4001/images/banner.png", +      emojis: [], +      fields: [], +      bot: true, +      source: %{ +        note: "", +        privacy: "public", +        sensitive: false        }      } @@ -85,8 +123,10 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do        followed_by: false,        blocking: true,        muting: false, +      muting_notifications: false,        requested: false, -      domain_blocking: false +      domain_blocking: false, +      showing_reblogs: false      }      assert expected == AccountView.render("relationship.json", %{user: user, target: other_user}) diff --git a/test/web/mastodon_api/mastodon_api_controller_test.exs b/test/web/mastodon_api/mastodon_api_controller_test.exs index 60dafcf03..e9deae64d 100644 --- a/test/web/mastodon_api/mastodon_api_controller_test.exs +++ b/test/web/mastodon_api/mastodon_api_controller_test.exs @@ -263,6 +263,125 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do      end    end +  describe "filters" do +    test "creating a filter", %{conn: conn} do +      user = insert(:user) + +      filter = %Pleroma.Filter{ +        phrase: "knights", +        context: ["home"] +      } + +      conn = +        conn +        |> assign(:user, user) +        |> post("/api/v1/filters", %{"phrase" => filter.phrase, context: filter.context}) + +      assert response = json_response(conn, 200) +      assert response["phrase"] == filter.phrase +      assert response["context"] == filter.context +    end + +    test "fetching a list of filters", %{conn: conn} do +      user = insert(:user) + +      query_one = %Pleroma.Filter{ +        user_id: user.id, +        filter_id: 1, +        phrase: "knights", +        context: ["home"] +      } + +      query_two = %Pleroma.Filter{ +        user_id: user.id, +        filter_id: 2, +        phrase: "who", +        context: ["home"] +      } + +      {:ok, filter_one} = Pleroma.Filter.create(query_one) +      {:ok, filter_two} = Pleroma.Filter.create(query_two) + +      conn = +        conn +        |> assign(:user, user) +        |> get("/api/v1/filters") + +      assert response = json_response(conn, 200) +    end + +    test "get a filter", %{conn: conn} do +      user = insert(:user) + +      query = %Pleroma.Filter{ +        user_id: user.id, +        filter_id: 2, +        phrase: "knight", +        context: ["home"] +      } + +      {:ok, filter} = Pleroma.Filter.create(query) + +      conn = +        conn +        |> assign(:user, user) +        |> get("/api/v1/filters/#{filter.filter_id}") + +      assert response = json_response(conn, 200) +    end + +    test "update a filter", %{conn: conn} do +      user = insert(:user) + +      query = %Pleroma.Filter{ +        user_id: user.id, +        filter_id: 2, +        phrase: "knight", +        context: ["home"] +      } + +      {:ok, filter} = Pleroma.Filter.create(query) + +      new = %Pleroma.Filter{ +        phrase: "nii", +        context: ["home"] +      } + +      conn = +        conn +        |> assign(:user, user) +        |> put("/api/v1/filters/#{query.filter_id}", %{ +          phrase: new.phrase, +          context: new.context +        }) + +      assert response = json_response(conn, 200) +      assert response["phrase"] == new.phrase +      assert response["context"] == new.context +    end + +    test "delete a filter", %{conn: conn} do +      user = insert(:user) + +      query = %Pleroma.Filter{ +        user_id: user.id, +        filter_id: 2, +        phrase: "knight", +        context: ["home"] +      } + +      {:ok, filter} = Pleroma.Filter.create(query) + +      conn = +        conn +        |> assign(:user, user) +        |> delete("/api/v1/filters/#{filter.filter_id}") + +      assert response = json_response(conn, 200) +      assert response == %{} +    end +  end +    describe "lists" do      test "creating a list", %{conn: conn} do        user = insert(:user) diff --git a/test/web/node_info_test.exs b/test/web/node_info_test.exs new file mode 100644 index 000000000..d48f40e47 --- /dev/null +++ b/test/web/node_info_test.exs @@ -0,0 +1,17 @@ +defmodule Pleroma.Web.NodeInfoTest do +  use Pleroma.Web.ConnCase + +  import Pleroma.Factory + +  test "nodeinfo shows staff accounts", %{conn: conn} do +    user = insert(:user, %{local: true, info: %{"is_moderator" => true}}) + +    conn = +      conn +      |> get("/nodeinfo/2.0.json") + +    assert result = json_response(conn, 200) + +    assert user.ap_id in result["metadata"]["staffAccounts"] +  end +end  | 
