Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Firefox/dom/manifest/test/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 4 kB image not shown  

Quelle  test_ManifestProcessor_lang.html   Sprache: HTML

 
 products/sources/formale Sprachen/C/Firefox/dom/manifest/test/test_ManifestProcessor_lang.html


<!DOCTYPE HTML>
<meta charset="utf-8">
<!--
Bug 1143879 - Implement lang member of Web manifest
https://bugzilla.mozilla.org/show_bug.cgi?id=1143879
-->

<meta charset="utf-8">
<title>Test for Bug 1143879 - Implement lang member of Web manifest</title>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
<script src="common.js"></script>
<script>
/**
 * lang member
 * https://w3c.github.io/manifest/#lang-member
 **/
/* globals is, typeTests, data, processor, seperators, lineTerminators, todo_is*/
"use strict";
// Type checks: checks that only strings are accepted.

for (const type of typeTests) {
  const expected = `Expect non-string to be undefined.`;
  data.jsonText = JSON.stringify({
    lang: type,
  });
  const result = processor.process(data);
  is(result.lang, undefined, expected);
}

// Test valid language tags - derived from IANA and BCP-47 spec
// and our Intl.js implementation.
var validTags = [
  "aa""ab""ae""af""ak""am""an""ar""as""av""ay""az",
  "ba""be""bg""bi""bm""bn""bo""br""bs""ca""ce",
  "ch""co""cr""cs""cu""cv""cy""da""de""dv""dz""ee",
  "el""en""eo""es""et""eu""fa""ff""fi""fj""fo""fr",
  "fy""ga""gd""gl""gn""gu""gv""ha""he""hi""ho""hr",
  "ht""hu""hy""hz""ia""id""ie""ig""ik""io",
  "is""it""iu""ja""jv""ka""kg""ki""kj",
  "kk""kl""km""kn""ko""kr""ks""ku""kv""kw""ky""la",
  "lb""lg""li""ln""lo""lt""lu""lv""mg""mh""mi""mk",
  "ml""mn""mr""ms""mt""my""na""nb""nd""ne""ng",
  "nl""nn""no""nr""nv""ny""oc""oj""om""or""os""pa",
  "pi""pl""ps""pt""qu""rm""rn""ro""ru""rw""sa""sc",
  "sd""se""sg""si""sk""sl""sm""sn""so""sq""sr",
  "ss""st""su""sv""sw""ta""te""tg""th""ti""tk",
  "tn""to""tr""ts""tt""ty""ug""uk""ur""uz""ve",
  "vi""vo""wa""wo""xh""yi""yo""za""zh""zu""en-US",
  "jp-JS""pt-PT""pt-BR""de-CH""de-DE-1901""es-419""sl-IT-nedis",
  "en-US-boont""mn-Cyrl-MN""sr-Cyrl""sr-Latn",
  "zh-TW""en-GB-boont-posix-r-extended-sequence-x-private",
  "yue-HK""de-CH-x-phonebk""az-Arab-x-aze-derbend",
  "qaa-Qaaa-QM-x-southern",
];


for (var tag of validTags) {
  const expected = `Expect lang to be "${tag}"`;
  data.jsonText = JSON.stringify({
    lang: tag,
  });
  const result = processor.process(data);
  is(result.lang, tag, expected);
}

// Canonical form conversion... old names become new names.
const granfatheredTags = [
  ["bh""bho"],
  ["in""id"],
  ["iw""he"],
  ["ji""yi"],
  ["jw""jv"],
  ["mo""ro"],
  ["sh""sr-Latn"],
  ["tl""fil"],
  ["tw""ak"],
  ["nan-Hans-MM-variant2-variant1-t-zh-latn-u-ca-chinese-x-private",
   "nan-Hans-MM-variant1-variant2-t-zh-latn-u-ca-chinese-x-private"],
  ["cmn-Hans-CN""zh-Hans-CN"],
];

for (const [oldTag, newTag] of granfatheredTags) {
  const expected = `Expect lang to be "${newTag}"`;
  data.jsonText = JSON.stringify({
    lang: oldTag,
  });
  const result = processor.process(data);
  is(result.lang, newTag, expected);
}

// trim tests - check that language tags get trimmed properly.
for (tag of validTags) {
  const expected = `Expect trimmed tag to be returned.`;
  let expandedtag = seperators + lineTerminators + tag;
  expandedtag += lineTerminators + seperators;
  data.jsonText = JSON.stringify({
    lang: expandedtag,
  });
  const result = processor.process(data);
  is(result.lang, tag, expected);
}

// Invalid language tags, derived from BCP-47 and made up.
var invalidTags = [
"de-419-DE"" a-DE ""ar-a-aaa-b-bbb-a-ccc""sdafsdfaadsfdsf""i",
"i-phone""en US""EN-*-US-JP""JA-INVALID-TAG""123123123",
];


for (var item of invalidTags) {
  const expected = `Expect invalid tag (${item}) to be treated as undefined.`;
  data.jsonText = JSON.stringify({
    lang: item,
  });
  const result = processor.process(data);
  is(result.lang, undefined, expected);
}

// Canonical form conversion tests. We convert the following tags, which are in
// canonical form, to upper case and expect the processor to return them
// in canonical form.
var canonicalTags = [
  "jp-JS""pt-PT""pt-BR""de-CH""de-DE-1901""es-419""sl-IT-nedis",
  "en-US-boont""mn-Cyrl-MN""sr-Cyrl""sr-Latn",
  "hy-Latn-IT""zh-TW""en-GB-boont-r-extended-sequence-x-private",
  "yue-HK""de-CH-x-phonebk""az-Arab-x-aze-derbend",
  "qaa-Qaaa-QM-x-southern",
];

for (tag of canonicalTags) {
  var uppedTag = tag.toUpperCase();
  const expected = `Expect tag (${uppedTag}) to be in canonical form (${tag}).`;
  data.jsonText = JSON.stringify({
    lang: uppedTag,
  });
  const result = processor.process(data);
  is(result.lang, tag, expected);
}
</script>

Messung V0.5
C=100 H=100 G=100

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.