forked from mirrors/gecko-dev
		
	Automatic update from web-platform-testsMoving some encoding files from .html to .any.js -- Generalized test -- converted some encoding tests to use any.js -- wpt-commits: e44b8b3dae4f0f0c874ef0b2a89290d0dd32dcdd, 12b30f56e3dddb896d343a6b6331cd25d3740e1d, dfa045c04225bbd6c1d7b6c1512f446948c12deb wpt-pr: 11930
		
			
				
	
	
		
			46 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// META: title=Encoding API: USVString surrogate handling when encoding
 | 
						|
 | 
						|
var bad = [
 | 
						|
    {
 | 
						|
        input: '\uD800',
 | 
						|
        expected: '\uFFFD',
 | 
						|
        name: 'lone surrogate lead'
 | 
						|
    },
 | 
						|
    {
 | 
						|
        input: '\uDC00',
 | 
						|
        expected: '\uFFFD',
 | 
						|
        name: 'lone surrogate trail'
 | 
						|
    },
 | 
						|
    {
 | 
						|
        input: '\uD800\u0000',
 | 
						|
        expected: '\uFFFD\u0000',
 | 
						|
        name: 'unmatched surrogate lead'
 | 
						|
    },
 | 
						|
    {
 | 
						|
        input: '\uDC00\u0000',
 | 
						|
        expected: '\uFFFD\u0000',
 | 
						|
        name: 'unmatched surrogate trail'
 | 
						|
    },
 | 
						|
    {
 | 
						|
        input: '\uDC00\uD800',
 | 
						|
        expected: '\uFFFD\uFFFD',
 | 
						|
        name: 'swapped surrogate pair'
 | 
						|
    },
 | 
						|
    {
 | 
						|
        input: '\uD834\uDD1E',
 | 
						|
        expected: '\uD834\uDD1E',
 | 
						|
        name: 'properly encoded MUSICAL SYMBOL G CLEF (U+1D11E)'
 | 
						|
    }
 | 
						|
];
 | 
						|
 | 
						|
bad.forEach(function(t) {
 | 
						|
    test(function() {
 | 
						|
        var encoded = new TextEncoder().encode(t.input);
 | 
						|
        var decoded = new TextDecoder().decode(encoded);
 | 
						|
        assert_equals(decoded, t.expected);
 | 
						|
    }, 'USVString handling: ' + t.name);
 | 
						|
});
 | 
						|
 | 
						|
test(function() {
 | 
						|
    assert_equals(new TextEncoder().encode().length, 0, 'Should default to empty string');
 | 
						|
}, 'USVString default');
 |