@Test
        @FacebookAPIVersion("v2.3")
        public void id_v23() throws Exception {
            facebook.setMockJSON("mock_json/success.json");
            PageCoverUpdate pageCoverUpdate = new PageCoverUpdate("193816910778607").offsetY(20).noFeedStory(true);
            boolean actual = facebook.updatePageCoverPhoto("137246726435626", pageCoverUpdate);
            assertThat(facebook.getHttpMethod(), is(RequestMethod.POST));
            assertThat(facebook.getEndpointURL(), is(pathOf("/v2.3/137246726435626")));
            assertThat(facebook.getHttpParameters(), hasPostParameter("cover", "193816910778607"));
            assertThat(facebook.getHttpParameters(), hasPostParameter("offset_y", "20"));
            assertThat(facebook.getHttpParameters(), hasPostParameter("no_feed_story", "true"));

            assertThat(actual, is(true));
        }
    }

    public static class displayPagePost extends MockFacebookTestBase {
        @Test
        public void hide() throws Exception {
            facebook.setMockJSON("mock_json/true.json");
            boolean actual = facebook.displayPagePost("137246726435626_210759175751047", true);
            assertThat(facebook.getHttpMethod(), is(RequestMethod.POST));
            assertThat(facebook.getEndpointURL(), is(pathOf("/137246726435626_210759175751047")));
            assertThat(facebook.getHttpParameters(), hasPostParameter("is_hidden", "true"));

            assertThat(actual, is(true));
        }

        @Test
        @FacebookAPIVersion("v2.3")
        public void hide_v23() throws Exception {
            facebook.setMockJSON("mock_json/success.json");
            boolean actual = facebook.displayPagePost("137246726435626_210759175751047", true);
            assertThat(facebook.getHttpMethod(), is(RequestMethod.POST));
            assertThat(facebook.getEndpointURL(), is(pathOf("/v2.3/137246726435626_210759175751047")));
            assertThat(facebook.getHttpParameters(), hasPostParameter("is_hidden", "true"));

            assertThat(actual, is(true));
        }

        @Test
        public void show() throws Exception {
            facebook.setMockJSON("mock_json/true.json");
            boolean actual = facebook.displayPagePost("137246726435626_210759175751047", false);
            assertThat(facebook.getHttpMethod(), is(RequestMethod.POST));
            assertThat(facebook.getEndpointURL(), is(pathOf("/137246726435626_210759175751047")));
            assertThat(facebook.getHttpParameters(), hasPostParameter("is_hidden", "false"));

            assertThat(actual, is(true));
        }

        @Test
        @FacebookAPIVersion("v2.3")
        public void show_v23() throws Exception {
            facebook.setMockJSON("mock_json/success.json");
            boolean actual = facebook.displayPagePost("137246726435626_210759175751047", false);
            assertThat(facebook.getHttpMethod(), is(RequestMethod.POST));
            assertThat(facebook.getEndpointURL(), is(pathOf("/v2.3/137246726435626_210759175751047")));
            assertThat(facebook.getHttpParameters(), hasPostParameter("is_hidden", "false"));

            assertThat(actual, is(true));
        }
    }

    public static class updateTab extends MockFacebookTestBase {
        @Test
        public void me() throws Exception {
            facebook.setMockJSON("mock_json/true.json");
            TabUpdate tabUpdate = new TabUpdate()
                                    .position(4)
                                    .nonConnectionLandingTab(true);
            boolean actual = facebook.updateTab("notes", tabUpdate);
            assertThat(facebook.getHttpMethod(), is(RequestMethod.POST));
            assertThat(facebook.getEndpointURL(), is(pathOf("/me/tabs/notes")));
            assertThat(facebook.getHttpParameters(), hasPostParameter("position", "4"));
            assertThat(facebook.getHttpParameters(), hasPostParameter("is_non_connection_landing_tab", "true"));

            assertThat(actual, is(true));
        }

        @Test
        public void id() throws Exception {
            facebook.setMockJSON("mock_json/true.json");
            TabUpdate tabUpdate = new TabUpdate()
                                    .position(4)
                                    .nonConnectionLandingTab(true);
            boolean actual = facebook.updateTab("137246726435626", "notes", tabUpdate);
            assertThat(facebook.getHttpMethod(), is(RequestMethod.POST));
            assertThat(facebook.getEndpointURL(), is(pathOf("/137246726435626/tabs/notes")));
            assertThat(facebook.getHttpParameters(), hasPostParameter("position", "4"));
            assertThat(facebook.getHttpParameters(), hasPostParameter("is_non_connection_landing_tab", "true"));

            assertThat(actual, is(true));
        }

        @Test
        @FacebookAPIVersion("v2.3")
        public void id_v23() throws Exception {
            facebook.setMockJSON("mock_json/success.json");
            TabUpdate tabUpdate = new TabUpdate()
                                    .position(4)
                                    .nonConnectionLandingTab(true);
            boolean actual = facebook.updateTab("137246726435626", "notes", tabUpdate);
            assertThat(facebook.getHttpMethod(), is(RequestMethod.POST));
            assertThat(facebook.getEndpointURL(), is(pathOf("/v2.3/137246726435626/tabs/notes")));
            assertThat(facebook.getHttpParameters(), hasPostParameter("position", "4"));
            assertThat(facebook.getHttpParameters(), hasPostParameter("is_non_connection_landing_tab", "true"));

            assertThat(actual, is(true));
        }
    }

    public static class deleteTab extends MockFacebookTestBase {
        @Test
        public void me() throws Exception {
            facebook.setMockJSON("mock_json/true.json");
            boolean actual = facebook.deleteTab("notes");
            assertThat(facebook.getHttpMethod(), is(RequestMethod.DELETE));
            assertThat(facebook.getEndpointURL(), is(pathOf("/me/tabs/notes")));

            assertThat(actual, is(true));
        }

        @Test
        public void id() throws Exception {
            facebook.setMockJSON("mock_json/true.json");
            boolean actual = facebook.deleteTab("137246726435626", "notes");
            assertThat(facebook.getHttpMethod(), is(RequestMethod.DELETE));
            assertThat(facebook.getEndpointURL(), is(pathOf("/137246726435626/tabs/notes")));

            assertThat(actual, is(true));
        }

        @Test
        @FacebookAPIVersion("v2.3")
        public void id_v23() throws Exception {
            facebook.setMockJSON("mock_json/success.json");
            boolean actual = facebook.deleteTab("137246726435626", "notes");
            assertThat(facebook.getHttpMethod(), is(RequestMethod.DELETE));
            assertThat(facebook.getEndpointURL(), is(pathOf("/v2.3/137246726435626/tabs/notes")));

            assertThat(actual, is(true));
        }