<!doctype html>
<title>Scheduling API: TaskController.setPriority()</title>
<link rel="author" title="Scott Haseley" href="mailto:shaseley@chromium.org">
<link rel="help" href="https://github.com/WICG/main-thread-scheduling">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

<script>
'use strict';

async_test(t => {
  let result = '';
  let tc = new TaskController("user-visible");

  for (let i = 0; i < 5; i++) {
    let task = scheduler.postTask(() => {
      result += i.toString();
    }, { signal: tc.signal });
  }

  scheduler.postTask(() => { result += "5"; }, { priority : "user-blocking" });
  scheduler.postTask(() => { result += "6"; }, { priority : "user-visible" });

  tc.setPriority("background");

  scheduler.postTask(t.step_func_done(() => {
    assert_equals(result, '5601234');
  }), { priority: "background" });

}, 'Test that TaskController.setPriority() changes the priority of all associated tasks');

</script>
