<commit_before>/**
 * @fileoverview test render util
 * @author <NAME>.
 *         FE Development Team <<EMAIL>>
 */

'use strict';

var renderUtil = require('../../src/js/helpers/renderUtil.js'),
    dom = require('../../src/js/helpers/domHandler.js');

var isMac = navigator.userAgent.indexOf('Mac') > -1,
    browser = tui.util.browser,
    isOldBrowser = browser.msie && browser.version <= 8,
    isFirefox = browser.firefox,
    isChrome = browser.chrome;

describe('renderUtil', function() {
    describe('concatStr()', function() {
        it('문자들을 인자로 전달하면 붙여진 결과를 반환합니다. ex) concatStr("a", "b", "c") ---> "abc"', function() {
            var result = renderUtil.concatStr();
            expect(result).toBe('');

            result = renderUtil.concatStr('a', 'b', 'c');
            expect(result).toBe('abc');
        });
    });

    describe('makeFontCssText()', function() {
        it('객체로 전달받은 css 속성들을 cssText 문자열로 변환하여 반환합니다.', function() {
            var result = renderUtil.makeFontCssText({
                fontSize: 12,
                fontFamily: 'Verdana',
                color: 'blue'
            });

            expect(result).toBe('font-size:12px;font-family:Verdana;color:blue');
        });
    });

    describe('_createSizeCheckEl()', function() {
        it('동적인 폰트 크기를 체크할 수 있는 HTML Element를 반환합니다.', function() {
            var actual = renderUtil._createSizeCheckEl();

            expect(actual.className).toBe('tui-chart-size-check-element');
            expect(actual.firstChild.nodeName).toBe('SPAN');
        });
    });

    describe('_getRenderedLabelSize()', function() {
        it('전달받은 레이블을 테마 속성을 포함하여 렌더링하여 사이즈 계산 후 결과를 반환합니다.', function() {
            var atual = renderUtil._getRenderedLabelSize('Label1', {
                fontFamily: 'Verdana',
                fontSize: 12
            }, 'offsetWidth');

            if (isOldBrowser || isFirefox) {
                expect(atual).toBe(42);
            } else if (isMac && isChrome) {
                expect(atual).toBe(40);
            } else {
                expect(atual).toBe(39);
            }
        });
    });

    describe('getRenderedLabelWidth()', function() {
        it('렌더링된 레이블의 너비값을 반환합니다.', function() {
            var actual = renderUtil.getRenderedLabelWidth('Label1', {
                fontFamily: 'Verdana',
                fontSize: 12
            });

            if (isOldBrowser || isFirefox) {
                expect(actual).toBe(42);
            } else if (isMac && isChrome) {
                expect(actual).toBe(40);
            } else {
                expect(actual).toBe(39);
            }
        });
    });

    describe('getRenderedLabelHeight()', function() {
        it('렌더링된 레이블의 높이값을 반환합니다.', function() {
            var actual = renderUtil.getRenderedLabelHeight('Label2', {
                fontFamily: 'Verdana',
                fontSize: 12
            });

            if (isOldBrowser) {
                expect(actual).toBe(14);
            } else {
                expect(actual).toBe(15);
            }
        });
    });

    describe('_getRenderedLabelsMaxSize()', function() {
        it('인자로 전달하는 레이블들을 전달한 함수로 실행하여 가장 큰 값을 반환합니다.', function() {
            var actual = renderUtil._getRenderedLabelsMaxSize(['label1', 'label12'], {}, function(label) {
                return label.length;
            });
            expect(actual).toBe(7);
        });
    });

    describe('getRenderedLabelsMaxWidth()', function() {
        it('인자로 전달하는 레이블들의 렌더링된 레이블의 최대 너비를 반환합니다.', function() {
            var actual = renderUtil.getRenderedLabelsMaxWidth(['Label1', 'Label'], {
                fontFamily: 'Verdana',
                fontSize: 12
            });

            if (isOldBrowser || isFirefox) {
                expect(actual).toBe(42);
            } else if (isMac && isChrome) {
                expect(actual).toBe(40);
            } else {
                expect(actual).toBe(39);
            }
        });
    });

    describe('getRenderedLabelsMaxHeight()', function() {
        it('인자로 전달하는 레이블들의 렌더링된 레이블의 최대 높이를 반환합니다.', function() {
            var actual = renderUtil.getRenderedLabelsMaxHeight(['Label1', 'Label'], {
                fontFamily: 'Verdana',
                fontSize: 12
            });

            if (isOldBrowser) {
                expect(actual).toBe(14);
            } else {
                expect(actual).toBe(15);
            }
        });
    });

    describe('renderDimension()', function() {
        it('전달 받은 Element css에 전달 받은 너비, 높이 값을 설정합니다.', function() {
            var el = dom.create('DIV'),
                size = {width: 500, height: 300};
            renderUtil.renderDimension(el, size);
            expect(el.style.width).toBe('500px');
            expect(el.style.height).toBe('300px');
        });
    });

    describe('renderPosition()', function() {
        it('전달 받은 Element style에 전달 받은 위치(top, left)값을 설정합니다.', function() {<commit_msg>test: Update test for firefox.<commit_after>/**
 * @fileoverview test render util
 * @author <NAME>.
 *         FE Development Team <<EMAIL>>
 */

'use strict';

var renderUtil = require('../../src/js/helpers/renderUtil.js'),
    dom = require('../../src/js/helpers/domHandler.js');

var isMac = navigator.userAgent.indexOf('Mac') > -1,
    browser = tui.util.browser,
    isOldBrowser = browser.msie && browser.version <= 8,
    isFirefox = browser.firefox,
    isChrome = browser.chrome;

describe('renderUtil', function() {
    describe('concatStr()', function() {
        it('문자들을 인자로 전달하면 붙여진 결과를 반환합니다. ex) concatStr("a", "b", "c") ---> "abc"', function() {
            var result = renderUtil.concatStr();
            expect(result).toBe('');

            result = renderUtil.concatStr('a', 'b', 'c');
            expect(result).toBe('abc');
        });
    });

    describe('makeFontCssText()', function() {
        it('객체로 전달받은 css 속성들을 cssText 문자열로 변환하여 반환합니다.', function() {
            var result = renderUtil.makeFontCssText({
                fontSize: 12,
                fontFamily: 'Verdana',
                color: 'blue'
            });

            expect(result).toBe('font-size:12px;font-family:Verdana;color:blue');
        });
    });

    describe('_createSizeCheckEl()', function() {
        it('동적인 폰트 크기를 체크할 수 있는 HTML Element를 반환합니다.', function() {
            var actual = renderUtil._createSizeCheckEl();

            expect(actual.className).toBe('tui-chart-size-check-element');
            expect(actual.firstChild.nodeName).toBe('SPAN');
        });
    });

    describe('_getRenderedLabelSize()', function() {
        it('전달받은 레이블을 테마 속성을 포함하여 렌더링하여 사이즈 계산 후 결과를 반환합니다.', function() {
            var atual = renderUtil._getRenderedLabelSize('Label1', {
                fontFamily: 'Verdana',
                fontSize: 12
            }, 'offsetWidth');

            if (isOldBrowser || isFirefox) {
                expect(atual).toBe(42);
            } else if (isMac && isChrome) {
                expect(atual).toBe(40);
            } else {
                expect(atual).toBe(39);
            }
        });
    });

    describe('getRenderedLabelWidth()', function() {
        it('렌더링된 레이블의 너비값을 반환합니다.', function() {
            var actual = renderUtil.getRenderedLabelWidth('Label1', {
                fontFamily: 'Verdana',
                fontSize: 12
            });

            if (isOldBrowser || isFirefox) {
                expect(actual).toBe(42);
            } else if (isMac && isChrome) {
                expect(actual).toBe(40);
            } else {
                expect(actual).toBe(39);
            }
        });
    });

    describe('getRenderedLabelHeight()', function() {
        it('렌더링된 레이블의 높이값을 반환합니다.', function() {
            var actual = renderUtil.getRenderedLabelHeight('Label2', {
                fontFamily: 'Verdana',
                fontSize: 12
            });

            if (isFirefox) {
                expect(actual).toBe(16);
            } else if (isOldBrowser) {
                expect(actual).toBe(14);
            } else {
                expect(actual).toBe(15);
            }
        });
    });

    describe('_getRenderedLabelsMaxSize()', function() {
        it('인자로 전달하는 레이블들을 전달한 함수로 실행하여 가장 큰 값을 반환합니다.', function() {
            var actual = renderUtil._getRenderedLabelsMaxSize(['label1', 'label12'], {}, function(label) {
                return label.length;
            });
            expect(actual).toBe(7);
        });
    });

    describe('getRenderedLabelsMaxWidth()', function() {
        it('인자로 전달하는 레이블들의 렌더링된 레이블의 최대 너비를 반환합니다.', function() {
            var actual = renderUtil.getRenderedLabelsMaxWidth(['Label1', 'Label'], {
                fontFamily: 'Verdana',
                fontSize: 12
            });

            if (isOldBrowser || isFirefox) {
                expect(actual).toBe(42);
            } else if (isMac && isChrome) {
                expect(actual).toBe(40);
            } else {
                expect(actual).toBe(39);
            }
        });
    });

    describe('getRenderedLabelsMaxHeight()', function() {
        it('인자로 전달하는 레이블들의 렌더링된 레이블의 최대 높이를 반환합니다.', function() {
            var actual = renderUtil.getRenderedLabelsMaxHeight(['Label1', 'Label'], {
                fontFamily: 'Verdana',
                fontSize: 12
            });

            if (isFirefox) {
                expect(actual).toBe(16);
            } else if (isOldBrowser) {
                expect(actual).toBe(14);
            } else {
                expect(actual).toBe(15);
            }
        });
    });

    describe('renderDimension()', function() {
        it('전달 받은 Element css에 전달 받은 너비, 높이 값을 설정합니다.', function() {
            var el = dom.create('DIV'),
                size = {width: 500, height: 300};
            renderUtil.renderDimension(el, size);
            expect(el.style.width).toBe('500px');
            expect(el.style.height).toBe('300px');
        });
    });

    describe('renderPosition()', function() {
        it('전달 받은 Element style에 전달 받은 위치(top, left)값을 설정합니다.', function() {
{'fraction_non_alphanumeric': 0.148360899277013, 'fraction_numerical': 0.012875111419233436, 'mean_word_length': 1.768092105263158, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2740181', 'n_tokens_mistral': 3423, 'n_tokens_neox': 3563, 'n_words': 580}