/** This method to check the 'edit' link is correct */
  @Test
  public void testGetCustomActionUrls() {
    List pkNames = new ArrayList();
    pkNames.add("protocolId");
    final Protocol protocol = new Protocol();
    protocol.setProtocolNumber("100");
    ProtocolDocument document = new ProtocolDocument();
    document.setDocumentNumber("101");
    protocol.setProtocolDocument(document);
    final KcAuthorizationService kraAuthorizationService =
        context.mock(KcAuthorizationService.class);
    final String principalId = GlobalVariables.getUserSession().getPrincipalId();
    context.checking(
        new Expectations() {
          {
            Map<String, String> fieldValues = new HashMap<String, String>();

            one(kraAuthorizationService)
                .hasPermission(principalId, protocol, PermissionConstants.MODIFY_PROTOCOL);
            will(returnValue(true));
            one(kraAuthorizationService)
                .hasPermission(principalId, protocol, PermissionConstants.VIEW_PROTOCOL);
            will(returnValue(true));
          }
        });
    protocolLookupableHelperServiceImpl.setKraAuthorizationService(kraAuthorizationService);

    List<HtmlData> actionUrls =
        protocolLookupableHelperServiceImpl.getCustomActionUrls(protocol, pkNames);
    for (HtmlData htmlData : actionUrls) {
      HtmlData.AnchorHtmlData actionUrl = (HtmlData.AnchorHtmlData) htmlData;
      if (actionUrl.getMethodToCall().equals("copy")) {
        assertEquals(((HtmlData.AnchorHtmlData) actionUrl).getHref(), COPY_URL);
      } else if (actionUrl.getDisplayText().equals("edit")) {
        assertEquals(((HtmlData.AnchorHtmlData) actionUrl).getHref(), EDIT_URL);
      } else if (actionUrl.getDisplayText().equals("view")) {
        assertEquals(((HtmlData.AnchorHtmlData) actionUrl).getHref(), VIEW_URL);
      }
    }
  }