add titles to external links, plus tests
This commit is contained in:
		
							parent
							
								
									2113a22511
								
							
						
					
					
						commit
						525066e6ea
					
				
					 4 changed files with 51 additions and 0 deletions
				
			
		
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -127,6 +127,11 @@
 | 
			
		|||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        let externalLinks = Array.from(this.refs.node.querySelectorAll(
 | 
			
		||||
          'a[rel="nofollow noopener"]'))
 | 
			
		||||
        for (let link of externalLinks) {
 | 
			
		||||
          link.setAttribute('title', link.getAttribute('href'))
 | 
			
		||||
        }
 | 
			
		||||
        stop('hydrateContent')
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										46
									
								
								tests/spec/16-external-links.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								tests/spec/16-external-links.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,46 @@
 | 
			
		|||
import { getNthStatus, getUrl } from '../utils'
 | 
			
		||||
import { foobarRole } from '../roles'
 | 
			
		||||
import { Selector as $ } from 'testcafe'
 | 
			
		||||
 | 
			
		||||
fixture`16-external-links.js`
 | 
			
		||||
  .page`http://localhost:4002`
 | 
			
		||||
 | 
			
		||||
function getAnchor (nthStatus, nthAnchor) {
 | 
			
		||||
  return getNthStatus(nthStatus).find('.status-content').find('a').nth(nthAnchor)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function getAnchorInProfile (n) {
 | 
			
		||||
  return $('.account-profile-note').find('a').nth(n)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
test('converts external links in statuses', async t => {
 | 
			
		||||
  await t.useRole(foobarRole)
 | 
			
		||||
    .hover(getNthStatus(0))
 | 
			
		||||
    .navigateTo('/accounts/4')
 | 
			
		||||
    .expect(getUrl()).contains('/accounts/4')
 | 
			
		||||
    .expect(getAnchor(0, 0).getAttribute('href')).eql('/accounts/1')
 | 
			
		||||
    .expect(getAnchor(0, 1).getAttribute('href')).eql('/accounts/3')
 | 
			
		||||
    .expect(getAnchor(1, 0).getAttribute('href')).eql('https://joinmastodon.org')
 | 
			
		||||
    .expect(getAnchor(1, 0).getAttribute('title')).eql('https://joinmastodon.org')
 | 
			
		||||
    .expect(getAnchor(1, 0).getAttribute('rel')).eql('nofollow noopener')
 | 
			
		||||
    .expect(getAnchor(1, 1).getAttribute('href')).eql('https://github.com/tootsuite/mastodon')
 | 
			
		||||
    .expect(getAnchor(1, 1).getAttribute('title')).eql('https://github.com/tootsuite/mastodon')
 | 
			
		||||
    .expect(getAnchor(1, 1).getAttribute('rel')).eql('nofollow noopener')
 | 
			
		||||
    .expect(getAnchor(2, 0).getAttribute('href')).eql('/tags/kitten')
 | 
			
		||||
    .expect(getAnchor(2, 1).getAttribute('href')).eql('/tags/kitties')
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
test('converts external links in profiles', async t => {
 | 
			
		||||
  await t.useRole(foobarRole)
 | 
			
		||||
    .hover(getNthStatus(0))
 | 
			
		||||
    .navigateTo('/accounts/4')
 | 
			
		||||
    .expect(getUrl()).contains('/accounts/4')
 | 
			
		||||
    .expect($('.account-profile-name').innerText).eql('External Lonk')
 | 
			
		||||
    .expect($('.account-profile-name a').getAttribute('href')).eql('http://localhost:3000/@ExternalLinks')
 | 
			
		||||
    .expect($('.account-profile-name a').getAttribute('rel')).eql('nofollow noopener')
 | 
			
		||||
    .expect(getAnchorInProfile(0).getAttribute('href')).eql('https://joinmastodon.org')
 | 
			
		||||
    .expect(getAnchorInProfile(0).getAttribute('rel')).eql('nofollow noopener')
 | 
			
		||||
    .expect(getAnchorInProfile(1).getAttribute('href')).eql('http://localhost:3000/tags/cat')
 | 
			
		||||
    .expect(getAnchorInProfile(2).getAttribute('href')).eql('http://localhost:3000/tags/mastocats')
 | 
			
		||||
    .expect(getAnchorInProfile(3).getAttribute('href')).eql('http://localhost:3000/@quux')
 | 
			
		||||
})
 | 
			
		||||
		Loading…
	
	Add table
		
		Reference in a new issue