Fix boolean POST to view-like endpoints
diff --git a/src/couch_mrview/src/couch_mrview_http.erl b/src/couch_mrview/src/couch_mrview_http.erl
index e1ba9d6..dcb401d 100644
--- a/src/couch_mrview/src/couch_mrview_http.erl
+++ b/src/couch_mrview/src/couch_mrview_http.erl
@@ -539,15 +539,15 @@
             Args#mrargs{stable=true, update=lazy};
         "stale" ->
             throw({query_parse_error, <<"Invalid value for `stale`.">>});
-        "stable" when Val == "true" orelse Val == <<"true">> ->
+        "stable" when Val == "true" orelse Val == <<"true">> orelse Val == true ->
             Args#mrargs{stable=true};
-        "stable" when Val == "false" orelse Val == <<"false">> ->
+        "stable" when Val == "false" orelse Val == <<"false">> orelse Val == false ->
             Args#mrargs{stable=false};
         "stable" ->
             throw({query_parse_error, <<"Invalid value for `stable`.">>});
-        "update" when Val == "true" orelse Val == <<"true">> ->
+        "update" when Val == "true" orelse Val == <<"true">> orelse Val == true ->
             Args#mrargs{update=true};
-        "update" when Val == "false" orelse Val == <<"false">> ->
+        "update" when Val == "false" orelse Val == <<"false">> orelse Val == false ->
             Args#mrargs{update=false};
         "update" when Val == "lazy" orelse Val == <<"lazy">> ->
             Args#mrargs{update=lazy};
diff --git a/test/elixir/test/all_docs_test.exs b/test/elixir/test/all_docs_test.exs
index 0dff2a4..5523565 100644
--- a/test/elixir/test/all_docs_test.exs
+++ b/test/elixir/test/all_docs_test.exs
@@ -427,4 +427,22 @@
     %{"rows" => rows} = resp
     Enum.map(rows, fn row -> row["id"] end)
   end
+
+  @tag :with_db
+  test "POST boolean", context do
+    db_name = context[:db_name]
+
+    resp = Couch.post("/#{db_name}/_bulk_docs", body: %{docs: create_docs(0..3)})
+    assert resp.status_code in [201, 202]
+
+    resp = Couch.post(
+      "/#{db_name}/_all_docs",
+      body: %{
+        :stable => true,
+        :update => true
+      }
+    )
+
+    assert resp.status_code == 200
+  end
 end
diff --git a/test/elixir/test/view_test.exs b/test/elixir/test/view_test.exs
index f768cef..bfe28b5 100644
--- a/test/elixir/test/view_test.exs
+++ b/test/elixir/test/view_test.exs
@@ -141,4 +141,16 @@
     assert resp.status_code == 200
     assert length(Map.get(resp, :body)["rows"]) == 1
   end
+
+  test "POST with boolean parameter", context do
+    resp = Couch.post(
+      "/#{context[:db_name]}/_design/map/_view/some",
+      body: %{
+        :stable => true,
+        :update => true
+      }
+    )
+
+    assert resp.status_code == 200
+  end
 end