There are a number of places where URLs are compared strictly (as strings) - in the tests mainly, but also in the new check for image tile sources.
These comparisons fail with relative URLs, if case is different, if search string parameters are not in the same order, and if port 80 is explicit (on Firefox).
I'll follow this with a function that could be added to Util.js to allow for more flexible URL comparison. Specifically it returns true for the following calls
// allows relative paths - assuming we're in the examples directory
OpenLayers.Util.isEquivalentUrl('foo', '../examples/foo');
// by default, ignores case - this can be changed with options
OpenLayers.Util.isEquivalentUrl('foo?one=1', 'foo?ONE=1');
// ignores search string parameter order
OpenLayers.Util.isEquivalentUrl('foo?one=1&two=2', 'foo?two=2&one=1');
// ignores port 80 by default
OpenLayers.Util.isEquivalentUrl('http://foo.com:80', 'http://foo.com');
// ignores hash by default
OpenLayers.Util.isEquivalentUrl('foo#ignored', 'foo');