summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/mediacapture-image/MediaStreamTrack-getConstraints.https.html
blob: 70cd2f2b0707762f20a1277ce707f2127ba12146 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="/mediacapture-image/resources/imagecapture-helpers.js"></script>
<script>

const constraints = { whiteBalanceMode     : "single-shot",
                      exposureMode         : "manual",
                      focusMode            : "single-shot",

                      exposureCompensation : 133.77,
                      exposureTime         : 10000, // in nano-seconds.
                      colorTemperature     : 6000,
                      iso                  : 120.0,

                      brightness           : 3,
                      contrast             : 4,
                      saturation           : 5,
                      sharpness            : 6,
                      focusDistance        : 7,

                      pan                  : 8,
                      tilt                 : 9,
                      zoom                 : 3.141592
                      // TODO: torch https://crbug.com/700607.
                    };

// These tests verify that MediaStreamTrack.getConstraints() exists and that,
// returns the constraints passed beforehand with applyConstraints.
function makePromiseTest(constraint) {
  image_capture_test(async function(t) {
    await test_driver.set_permission({name: 'camera', panTiltZoom: true},
        'granted');

    let stream = await navigator.mediaDevices.getUserMedia({video: true});
    let videoTrack = stream.getVideoTracks()[0];

    let constraintsIn = {advanced : [ constraint ]};
    await videoTrack.applyConstraints(constraintsIn);
    assert_object_equals(videoTrack.getConstraints(), constraintsIn, "constraints");

    // Clear constraints by sending an empty constraint set.
    await videoTrack.applyConstraints({});
    assert_object_equals(videoTrack.getConstraints(), {}, "constraints");
  });
};

// Send each line of |constraints| in turn and then the whole dictionary.
for (key in constraints) {
  let one_constraint = {};
  one_constraint[key] = constraints[key];
  generate_tests(
      makePromiseTest,
      [[ 'MediaStreamTrack.getConstraints(), key: ' + key, one_constraint ]]);
}

generate_tests(makePromiseTest, [
  ["MediaStreamTrack.getConstraints(), complete ", constraints],
]);

</script>