BookmarkableUrlHelper { public static Set<String> getClosedScreenFromPlace(final PlaceRequest place) { Set<String> screens = getScreensFromPlace(place); Set<String> result = screens.stream() .filter(s -> s.startsWith(CLOSED_PREFIX)) .collect(Collectors.toSet()); return result; }  static String registerOpenedScreen(String bookmarkableUrl,
                                              final PlaceRequest placeRequest); static String registerClose(String bookmarkableUrl,
                                       final String screenName); static PlaceRequest getPerspectiveFromPlace(PlaceRequest place); static boolean isPerspectiveScreen(final String bookmarkableUrl,
                                              final String screen); static boolean isPerspectiveInUrl(final String url); static boolean urlContainsExtraPerspectiveScreen(final String bookmarkableUrl); static String getUrlToken(final String bookmarkableUrl,
                                     final String screen); static Set<String> getDockedScreensFromUrl(final String url); static Set<String> getDockedScreensFromPlace(final PlaceRequest place); static Set<String> getScreensFromPlace(final PlaceRequest place); static Set<String> getClosedScreenFromPlace(final PlaceRequest place); static Set<String> getOpenedScreenFromPlace(final PlaceRequest place); static boolean isScreenClosed(final String bookmarkableUrl,
                                         String screen); static String registerOpenedPerspective(String currentBookmarkableURLStatus,
                                                   PlaceRequest place); static String registerOpenedDock(String currentBookmarkableURLStatus,
                                            UberfireDock targetDock); static String registerClosedDock(String currentBookmarkableURLStatus,
                                            UberfireDock targetDock); static String registerCloseEditor(final String currentBookmarkableURLStatus,
                                             final PlaceRequest place); final static String PERSPECTIVE_SEP; final static String DOCK_BEGIN_SEP; final static String DOCK_CLOSE_SEP; final static String SEPARATOR; final static String OTHER_SCREEN_SEP; final static String CLOSED_PREFIX; final static String CLOSED_DOCK_PREFIX; final static int MAX_NAV_URL_SIZE; }
@Test public void testGetClosedScreenFromPlace() { final String url = "perspective|~screen1,screen2$~screen3,screen4"; final String url2 = "UFWidgets|PagedTableScreen[ESimpleDockScreen,!WSimpleDockScreen,ESimpleDockScreen,]"; final PlaceRequest place = new DefaultPlaceRequest(url); final PlaceRequest place2 = new DefaultPlaceRequest(url2); Set<String> set = BookmarkableUrlHelper.getClosedScreenFromPlace(place); assertNotNull(set); assertFalse(set.isEmpty()); assertEquals(2, set.size()); assertTrue(set.contains("~screen1")); assertTrue(set.contains("~screen3")); set = BookmarkableUrlHelper.getClosedScreenFromPlace(place2); assertNotNull(set); assertTrue(set.isEmpty()); }