src/cm/tests/test_structure.py
author Simon Descarpentries <sid@sopinspace.com>
Mon, 21 Oct 2013 16:37:07 +0200
changeset 553 bf26fb47a14c
parent 278 3d25afbd78ff
permissions -rw-r--r--
To allow scrolling in Safari mobile, we set the content of text_view_comments frame in a jQuery UI layout. So the automated scrolling operations in c_sync.js must be adjustable to the right part to scroll. Also, if a comment have to be shown outside of the current viewport, we scroll the correct part to that viewport and then set the comment top Y offset to juste what it needs to avoid the "Add comment" button after scrolling operation. If not in Safari mobile, we add an offset here to avoid comment to display under the "Add comment" button.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
from django.test import TestCase
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
from django.test.client import Client
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
from django.core import management
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
from cm.models import *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
class StructureTest(TestCase):
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
    fixtures = ['test_comments',]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
    def test_edit_text(self):
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
        self.assertEqual(TextVersion.objects.count(), 1)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
        self.assertEqual(Comment.objects.count(), 8)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
        # edit with duplication, without changing content
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
        text = Text.objects.all()[0]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
        new_text = text.edit(new_title='my title', 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
                  new_format='html', 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
                  new_content=text.get_latest_version().content, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
                  keep_comments = True, 
103
61fd17f9ab78 enh: detached comments
rbernard
parents: 0
diff changeset
    20
                  cancel_modified_scopes=False,                  
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
                  new_version = True)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
        self.assertEqual(TextVersion.objects.count(), 2)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
        self.assertEqual(Comment.objects.count(), 16)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
        # edit with duplication changing content
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
        new_text = text.edit(new_title='my title', 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
                  new_format='html', 
278
3d25afbd78ff fix unit tests
raph
parents: 103
diff changeset
    28
                  new_content=u'simple text <p>simple text</p> <p>simple text</p> ', 
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
                  keep_comments = True, 
103
61fd17f9ab78 enh: detached comments
rbernard
parents: 0
diff changeset
    30
                  cancel_modified_scopes=False,                  
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
                  new_version = True)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
        self.assertEqual(TextVersion.objects.count(), 3)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
        self.assertEqual(Comment.objects.count(), 17) # 22
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
        # edit without duplication, completely changing content
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
        new_text = text.edit(new_title='my title', 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
                  new_format='html', 
278
3d25afbd78ff fix unit tests
raph
parents: 103
diff changeset
    38
                  new_content=u'xxxxxx', 
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
                  keep_comments = True, 
103
61fd17f9ab78 enh: detached comments
rbernard
parents: 0
diff changeset
    40
                  cancel_modified_scopes=False,                  
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
                  new_version = False)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
        self.assertEqual(TextVersion.objects.count(), 3)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
        self.assertEqual(Comment.objects.count(), 16) # 21
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
    def test_edit_text2(self):
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
        self.assertEqual(TextVersion.objects.count(), 1)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
        self.assertEqual(Comment.objects.count(), 8)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
        text = Text.objects.all()[0]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
        new_text = text.edit(new_title='my title', 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
                  new_format='html', 
278
3d25afbd78ff fix unit tests
raph
parents: 103
diff changeset
    51
                  new_content=u'xxxxxx', 
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
                  keep_comments = False, 
103
61fd17f9ab78 enh: detached comments
rbernard
parents: 0
diff changeset
    53
                  cancel_modified_scopes=False,                  
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
                  new_version = False)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
        self.assertEqual(TextVersion.objects.count(), 1)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
        self.assertEqual(Comment.objects.count(), 0)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
    def test_edit_text3(self):
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
        self.assertEqual(TextVersion.objects.count(), 1)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
        self.assertEqual(Comment.objects.count(), 8)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
        text = Text.objects.all()[0]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
        new_text = text.edit(new_title='my title', 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
                  new_format='html', 
278
3d25afbd78ff fix unit tests
raph
parents: 103
diff changeset
    64
                  new_content=u'xxxxxx', 
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
                  keep_comments = False, 
103
61fd17f9ab78 enh: detached comments
rbernard
parents: 0
diff changeset
    66
                  cancel_modified_scopes=False,                  
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
                  new_version = True)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
        self.assertEqual(TextVersion.objects.count(), 2)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
        self.assertEqual(Comment.objects.count(), 8)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70