brynary/webrat

View on GitHub
lib/webrat/selenium/location_strategy_javascript/webratlink.js

Summary

Maintainability
A
1 hr
Test Coverage
var links = inDocument.getElementsByTagName('a');

var candidateLinks = $A(links).select(function(candidateLink) {
  var textMatched = false;
  var titleMatched = false;
  var idMatched = false;

  if (getText(candidateLink).toLowerCase().indexOf(locator.toLowerCase()) != -1) {
    textMatched = true;
  }

  if (candidateLink.title.toLowerCase().indexOf(locator.toLowerCase()) != -1) {
    titleMatched = true;
  }

  if (candidateLink.id.toLowerCase().indexOf(locator.toLowerCase()) != -1) {
    idMatched = true;
  }

  return textMatched || idMatched || titleMatched;
});

if (candidateLinks.length == 0) {
  return null;
}

//reverse length sort
candidateLinks = candidateLinks.sortBy(function(s) {
  return s.length * -1;
});

return candidateLinks.first();