the Firefox QA plan didn’t incorporate
  testing for certificate expiration (or
  generalized testing of how the browser
  will behave at future dates) and
  therefore the problem wasn’t detected
A few years ago I tried to find a VM or something similar that would let me test software with clock offsets applied. At the time, most of the VMs I looked at had prioritized the much more common requirement of not having the guest OS clock become inaccurate.

Does anyone know the state of the art in integration testing software for future dates?

One way is to override the libc time functions using LD_PRELOAD using something like https://github.com/wolfcw/libfaketime

This doesn't work with everything (for example doesn't work with Go because Go doesn't use libc for such things) but if it does then it's a very simple to use:

  % LD_PRELOAD=src/libfaketime.so.1 FAKETIME='1999-12-31 23:59:59' date
  Fri Dec 31 23:59:59 PST 1999

  % LD_PRELOAD=src/libfaketime.so.1 FAKETIME='1999-12-31 23:59:59' python  -c 'import time;print(time.ctime())'
  Fri Dec 31 23:59:59 1999
or to have the fake clock ticking starting from the specified time:

  % LD_PRELOAD=src/libfaketime.so.1 FAKETIME='@1999-12-31 23:59:59' python  -c 'import time;print(time.ctime());time.sleep(1);print(time.ctime())'
  Fri Dec 31 23:59:59 1999
  Sat Jan  1 00:00:00 2000