モジュール:サンドボックス/Ef3/SNSuty/testcases

local p = require('Module:UnitTests')

function p:test_001()
    self:preprocess_equals_many('{{', '}}', {
-- [https://twitter.com/Wikipedia <span xml:lang="ja" lang="ja">ウィキペディア</span>]&nbsp;(@Wikipedia) - [[Twitter]]
        {'Twitter|Wikipedia|ウィキペディア|lang=ja', 
         require("Module:サンドボックス/Ef3/SNSuty").main({
			id="Wikipedia",
			name="ウィキペディア",
			lang="ja",
			idProp="P2002",
			formatterProp="P1630",
			account_pre=" (@",
			account_post=")",
			proc=function(a) return mw.ustring.format('[%s %s]%s - [[Twitter]]',a.urlF(a.id), a.name or "name", a.account or "account"); end
			})},
--})
},{nowiki=1})
end

function p:notest_001()
    self:preprocess_equals_many('{{', '}}', {
-- [https://twitter.com/Wikipedia <span xml:lang="ja" lang="ja">ウィキペディア</span>]&nbsp;(@Wikipedia) - [[Twitter]]
        {'Twitter|Wikipedia|ウィキペディア|lang=ja', 
         require("Module:サンドボックス/Ef3/SNSuty").main({
			id="Wikipedia",
			name="ウィキペディア",
			lang="ja",
			idProp="P2002",
			formatterProp="P1630",
			account_pre=" (@",
			account_post=")",
--			proc=function(a) return mw.ustring.format('[%s %s]%s - [[Twitter]]',a.url, a.name, a.account); end
			})},

		
-- [https://www.facebook.com/Wikipedia <span xml:lang="ja" lang="ja">ウィキペディア</span>] - [[Facebook]]
        {'Facebook|Wikipedia|ウィキペディア', 
         require("Module:サンドボックス/Ef3/SNSuty").main({
			id="Wikipedia",
			name="ウィキペディア",
			idProp="P2013",
			formatterProp="P1630",
			proc=function(a) return mw.ustring.format('[%s %s] - [[Facebook]]',a.url or "URL", a.name or "NAME"); end
			})},

-- [https://www.instagram.com/kevin/ <span xml:lang="en" lang="en">Kevin Systrom</span>] (kevin) - [[Instagram]]
        {'Instagram|kevin|Kevin Systrom', 
         require("Module:サンドボックス/Ef3/SNSuty").main({
			id="kevin",
			name="Kevin Systrom",
			idProp="P2003",
			formatterProp="P1630",
			proc=function(a) return mw.ustring.format('[%s %s] (%s) - [[Instagram]]',a.url, a.name, a.id); end
			})},

-- [http://ameblo.jp/ran1223ran RAN] - [[アメーバブログ|Ameba Blog]]
        {'Ameba ブログ|ran1223ran|name=RAN',
         require("Module:サンドボックス/Ef3/SNSuty").main({
			id="ran1223ran",
			name="RAN",
			formatter="http://ameblo.jp/$1",
			proc=function(a) return mw.ustring.format('[%s %s] - [[アメーバブログ|Ameba Blog]]',a.url, a.name); end
			})},

-- [https://twitter.com/Wikipedia/status/92761860893450240 2011年7月18日の発言]
        {'Twitter status|Wikipedia|92761860893450240|2011年7月18日の発言',
         require("Module:サンドボックス/Ef3/SNSuty").main({
			id="Wikipedia",
			name="2011年7月18日の発言",
			formatter="https://twitter.com/$1/status/92761860893450240",
			proc=function(a) return mw.ustring.format('[%s %s]',a.url, a.name); end
			})},

-- [https://www.facebook.com/JapanOlympicTeam/posts/622836804404776 JapanOlympicTeamの投稿 (622836804404776)] - [[Facebook]]
--        {'id=622836804404776|name=JapanOlympicTeamの投稿 (622836804404776)|formatter=https://www.facebook.com/JapanOlympicTeam/posts/622836804404776|page=[[Facebook]]', 
--		 self.frame:preprocess('{{Facebook post|JapanOlympicTeam|622836804404776}}')},
--})
},{nowiki=1})
end

function p:notest_002()
	self:equals('formatter .vs. formaterProp',
		require("Module:サンドボックス/Ef3/SNSuty").main({
			id="Wikipedia",
			name="ウィキペディア",
			idProp="P2002",
			lang="ja",
			formatter="https://twitter.com/$1",
			account_pre=" (@",
			account_post=") ",
			proc=function(a) return mw.ustring.format('[%s %s] (@%s) - [[Twitter]]',a.url, a.name, a.id); end
			}),
		require("Module:サンドボックス/Ef3/SNSuty").main({
			id="Wikipedia",
			name="ウィキペディア",
			idProp="P2002",
			lang="ja",
			formatterProp="P1630",
			account_pre=" (@",
			account_post=") ",
			proc=function(a) return mw.ustring.format('[%s %s] (@%s) - [[Twitter]]',a.url, a.name, a.id); end
			}) 
	)
end

return p