From 592b61469ce8bdef8260b863bd18498eb7f154fd Mon Sep 17 00:00:00 2001 From: Dave Laird Date: Wed, 30 Mar 2016 10:12:28 -0700 Subject: [PATCH] [Glimmer2] Port {{textarea}} test to ember-glimmer. --- .../integration/helpers/text-area-test.js | 49 +++++++++++++++ .../tests/helpers/text_area_test.js | 61 ------------------- 2 files changed, 49 insertions(+), 61 deletions(-) create mode 100644 packages/ember-glimmer/tests/integration/helpers/text-area-test.js delete mode 100644 packages/ember-htmlbars/tests/helpers/text_area_test.js diff --git a/packages/ember-glimmer/tests/integration/helpers/text-area-test.js b/packages/ember-glimmer/tests/integration/helpers/text-area-test.js new file mode 100644 index 00000000000..45bb04bbd48 --- /dev/null +++ b/packages/ember-glimmer/tests/integration/helpers/text-area-test.js @@ -0,0 +1,49 @@ +import { set } from 'ember-metal/property_set'; +import TextArea from 'ember-views/views/text_area'; +import { RenderingTest, moduleFor } from '../../utils/test-case'; + +class TextAreaRenderingTest extends RenderingTest { + constructor() { + super(); + + this.registerComponent('-text-area', { ComponentClass: TextArea }); + } +} + +moduleFor('Helpers test: {{textarea}}', class extends TextAreaRenderingTest { + + ['@htmlbars Should insert a textarea']() { + this.render('{{textarea}}'); + + equal(this.$('textarea').length, 1); + + this.assertStableRerender(); + } + + ['@htmlbars Should become disabled when the context changes']() { + this.render('{{textarea disabled=disabled}}'); + ok(this.$('textarea').is(':not(:disabled)')); + + this.assertStableRerender(); + + this.runTask(() => set(this.context, 'disabled', true)); + ok(this.$('textarea').is(':disabled')); + + this.runTask(() => set(this.context, 'disabled', false)); + ok(this.$('textarea').is(':not(:disabled)')); + } + + ['@htmlbars Should bind its contents to the specified value']() { + this.render('{{textarea value=val}}', { val: 'A beautiful day in Seattle' }); + ok(this.$('textarea').val('A beautiful day in Seattle')); + + this.assertStableRerender(); + + this.runTask(() => set(this.context, 'val', 'Auckland')); + ok(this.$('textarea').val('Auckland')); + + this.runTask(() => set(this.context, 'val', 'A beautiful day in Seattle')); + ok(this.$('textarea').val('A beautiful day in Seattle')); + } + +}); diff --git a/packages/ember-htmlbars/tests/helpers/text_area_test.js b/packages/ember-htmlbars/tests/helpers/text_area_test.js deleted file mode 100644 index da48dd64cb7..00000000000 --- a/packages/ember-htmlbars/tests/helpers/text_area_test.js +++ /dev/null @@ -1,61 +0,0 @@ -import run from 'ember-metal/run_loop'; -import View from 'ember-views/views/view'; -import compile from 'ember-template-compiler/system/compile'; -import { set as o_set } from 'ember-metal/property_set'; -import { runAppend, runDestroy } from 'ember-runtime/tests/utils'; -import TextArea from 'ember-views/views/text_area'; -import ComponentLookup from 'ember-views/component_lookup'; -import buildOwner from 'container/tests/test-helpers/build-owner'; -import { OWNER } from 'container/owner'; - -var textArea, controller, owner; - -function set(object, key, value) { - run(function() { o_set(object, key, value); }); -} - -import isEnabled from 'ember-metal/features'; -if (!isEnabled('ember-glimmer')) { - // jscs:disable - -QUnit.module('{{textarea}}', { - setup() { - controller = { - val: 'Lorem ipsum dolor' - }; - - owner = buildOwner(); - owner.register('component:-text-area', TextArea); - owner.register('component-lookup:main', ComponentLookup); - - textArea = View.extend({ - [OWNER]: owner, - controller: controller, - template: compile('{{textarea disabled=disabled value=val}}') - }).create(); - - runAppend(textArea); - }, - - teardown() { - runDestroy(textArea); - } -}); - -QUnit.test('Should insert a textarea', function() { - equal(textArea.$('textarea').length, 1, 'There is a single textarea'); -}); - -QUnit.test('Should become disabled when the controller changes', function() { - ok(textArea.$('textarea').is(':not(:disabled)'), 'Nothing is disabled yet'); - set(controller, 'disabled', true); - ok(textArea.$('textarea').is(':disabled'), 'The disabled attribute is updated'); -}); - -QUnit.test('Should bind its contents to the specified value', function() { - equal(textArea.$('textarea').val(), 'Lorem ipsum dolor', 'The contents are included'); - set(controller, 'val', 'sit amet'); - equal(textArea.$('textarea').val(), 'sit amet', 'The new contents are included'); -}); - -}