jobqueue: Follow-up for fc5d51f12936ed (added GenericParameterJob)
authorTimo Tijhof <krinklemail@gmail.com>
Thu, 18 Apr 2019 15:29:41 +0000 (16:29 +0100)
committerKrinkle <krinklemail@gmail.com>
Thu, 25 Apr 2019 15:44:11 +0000 (15:44 +0000)
commit4dce6445966a1fdeb1e635eca534af91188b74bf
tree417d579b16079ce7cf927eb3f9a4f56915f7d6a1
parent86c13ba3ad15f7ab4c567b30c2810fe36db102df
jobqueue: Follow-up for fc5d51f12936ed (added GenericParameterJob)

* Remove duplicate $params check from Job::factory done in Job::__construct.

* In Job::factory(), restore use of a valid title as default for passing as
  constructor arg to old job classes. Their constructor may expect it to
  be valid.
  Keep the invalid dummy in Job::__construct, and document why.

* tests: Update test case for failure mode when using Job::factory
  with a class that requires a title. It asserted getting an invalid
  title. This now restores the behaviour prior to fc5d51f12936ed,
  which is that job classes that require a title, get a valid one.

* tests: Remove test case for testToString that used
  an explicitly passed but invalid params value. I've converted
  that to expect the exception we now throw instead.

* tests: Update getMockJob(), also used by testToString, which was
  relying on undocumented behaviour that 'new Title' is public
  and gets namespace=0 and title=''. Before fc5d51f12936ed,
  title params weren't in toString() and it asserted outputting
  three spaces (delimiter, empty string from formatted title,
  delimiter).
  In fc5d51f12936ed, this changed to asserting "Special:" which
  seems unintentional as we didn't pass it the internally reserved
  NS_SPECIAL/'' value, and yet was caught by the dbkey=='' check.
  Given this test case doesn't deal with titles, omit it for now.

  A job can either have a $title and title/namespace in params,
  or neither. This test was asserting an in-memory scenario
  where $title can be an object, but title/namespace absent from
  params.

Bug: T221368
Depends-On: I89f6ad6967d6f82d87a62c15c0dded901c51b714
Change-Id: I2ec99a12ecc627359a2aae5153d5d7c54156ff46
includes/jobqueue/Job.php
tests/phpunit/includes/jobqueue/JobTest.php