Sorry, I misread the code. I thought it was only testing the bits (i.e.: only checking the READ bit when asking for "+r"), but I see that it is checking all the user permission bits when checking if just the READ bit was set.
However I think my point is still valid for these tests wrt. the sticky bit. For example, if FsPermission had a bug where FsPermission("+r") acted like mode 1444 instead of 0444 then this test in the patch would pass because it's not checking all of the permission bits:
FsPermission fs2 = new FsPermission("+r");
That's why I'd rather see the test just check against the integer value of the permission, so it is testing all of the bits for every test case. It also ends up being a lot less test code.