Tests calling getPropertyValue on computed margin styles involving CSS calc

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".

PASS getComputedStyle(document.getElementById('calc'), null).getPropertyValue('margin-left') is getComputedStyle(document.getElementById('control', null)).getPropertyValue('margin-left')
PASS getComputedStyle(document.getElementById('calc'), null).getPropertyValue('margin-top') is getComputedStyle(document.getElementById('control', null)).getPropertyValue('margin-top')
PASS getComputedStyle(document.getElementById('calc'), null).getPropertyValue('margin-right') is getComputedStyle(document.getElementById('control', null)).getPropertyValue('margin-right')
PASS getComputedStyle(document.getElementById('calc'), null).getPropertyValue('margin-bottom') is getComputedStyle(document.getElementById('control', null)).getPropertyValue('margin-bottom')
PASS successfullyParsed is true

TEST COMPLETE

